xref: /dflybsd-src/sys/dev/sound/pci/hda/hdac.h (revision 8fa945931144abe9f415a9bab98495195f5cd528)
1558a398bSSimon Schubert /*-
2558a398bSSimon Schubert  * Copyright (c) 2006 Stephane E. Potvin <sepotvin@videotron.ca>
3558a398bSSimon Schubert  * All rights reserved.
4558a398bSSimon Schubert  *
5558a398bSSimon Schubert  * Redistribution and use in source and binary forms, with or without
6558a398bSSimon Schubert  * modification, are permitted provided that the following conditions
7558a398bSSimon Schubert  * are met:
8558a398bSSimon Schubert  * 1. Redistributions of source code must retain the above copyright
9558a398bSSimon Schubert  *    notice, this list of conditions and the following disclaimer.
10558a398bSSimon Schubert  * 2. Redistributions in binary form must reproduce the above copyright
11558a398bSSimon Schubert  *    notice, this list of conditions and the following disclaimer in the
12558a398bSSimon Schubert  *    documentation and/or other materials provided with the distribution.
13558a398bSSimon Schubert  *
14558a398bSSimon Schubert  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15558a398bSSimon Schubert  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16558a398bSSimon Schubert  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17558a398bSSimon Schubert  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18558a398bSSimon Schubert  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19558a398bSSimon Schubert  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20558a398bSSimon Schubert  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21558a398bSSimon Schubert  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22558a398bSSimon Schubert  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23558a398bSSimon Schubert  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24558a398bSSimon Schubert  * SUCH DAMAGE.
25558a398bSSimon Schubert  *
262a1ad637SFrançois Tigeot  * $FreeBSD: head/sys/dev/sound/pci/hda/hdac.h 275101 2014-11-26 04:23:21Z mav $
27558a398bSSimon Schubert  */
28558a398bSSimon Schubert 
29558a398bSSimon Schubert #ifndef _HDAC_H_
30558a398bSSimon Schubert #define _HDAC_H_
31558a398bSSimon Schubert 
322a1ad637SFrançois Tigeot #include "hdac_if.h"
33558a398bSSimon Schubert 
34558a398bSSimon Schubert /****************************************************************************
35558a398bSSimon Schubert  * Miscellanious defines
36558a398bSSimon Schubert  ****************************************************************************/
37558a398bSSimon Schubert 
382a1ad637SFrançois Tigeot /* Controller models */
392a1ad637SFrançois Tigeot #define HDA_MODEL_CONSTRUCT(vendor, model)	\
402a1ad637SFrançois Tigeot 		(((uint32_t)(model) << 16) | ((vendor##_VENDORID) & 0xffff))
412a1ad637SFrançois Tigeot 
422a1ad637SFrançois Tigeot /* Intel */
432a1ad637SFrançois Tigeot #define INTEL_VENDORID		0x8086
442a1ad637SFrançois Tigeot #define HDA_INTEL_OAK		HDA_MODEL_CONSTRUCT(INTEL, 0x080a)
452a1ad637SFrançois Tigeot #define HDA_INTEL_BAY		HDA_MODEL_CONSTRUCT(INTEL, 0x0f04)
462a1ad637SFrançois Tigeot #define HDA_INTEL_HSW1		HDA_MODEL_CONSTRUCT(INTEL, 0x0a0c)
472a1ad637SFrançois Tigeot #define HDA_INTEL_HSW2		HDA_MODEL_CONSTRUCT(INTEL, 0x0c0c)
482a1ad637SFrançois Tigeot #define HDA_INTEL_HSW3		HDA_MODEL_CONSTRUCT(INTEL, 0x0d0c)
49edfd9622SSepherosa Ziehau #define HDA_INTEL_BDW1		HDA_MODEL_CONSTRUCT(INTEL, 0x160c)
502a1ad637SFrançois Tigeot #define HDA_INTEL_CPT		HDA_MODEL_CONSTRUCT(INTEL, 0x1c20)
512a1ad637SFrançois Tigeot #define HDA_INTEL_PATSBURG	HDA_MODEL_CONSTRUCT(INTEL, 0x1d20)
522a1ad637SFrançois Tigeot #define HDA_INTEL_PPT1		HDA_MODEL_CONSTRUCT(INTEL, 0x1e20)
532a1ad637SFrançois Tigeot #define HDA_INTEL_82801F	HDA_MODEL_CONSTRUCT(INTEL, 0x2668)
542a1ad637SFrançois Tigeot #define HDA_INTEL_63XXESB	HDA_MODEL_CONSTRUCT(INTEL, 0x269a)
552a1ad637SFrançois Tigeot #define HDA_INTEL_82801G	HDA_MODEL_CONSTRUCT(INTEL, 0x27d8)
562a1ad637SFrançois Tigeot #define HDA_INTEL_82801H	HDA_MODEL_CONSTRUCT(INTEL, 0x284b)
572a1ad637SFrançois Tigeot #define HDA_INTEL_82801I	HDA_MODEL_CONSTRUCT(INTEL, 0x293e)
582a1ad637SFrançois Tigeot #define HDA_INTEL_82801JI	HDA_MODEL_CONSTRUCT(INTEL, 0x3a3e)
592a1ad637SFrançois Tigeot #define HDA_INTEL_82801JD	HDA_MODEL_CONSTRUCT(INTEL, 0x3a6e)
602a1ad637SFrançois Tigeot #define HDA_INTEL_PCH		HDA_MODEL_CONSTRUCT(INTEL, 0x3b56)
612a1ad637SFrançois Tigeot #define HDA_INTEL_PCH2		HDA_MODEL_CONSTRUCT(INTEL, 0x3b57)
622a1ad637SFrançois Tigeot #define HDA_INTEL_MACBOOKPRO92	HDA_MODEL_CONSTRUCT(INTEL, 0x7270)
632a1ad637SFrançois Tigeot #define HDA_INTEL_SCH		HDA_MODEL_CONSTRUCT(INTEL, 0x811b)
642a1ad637SFrançois Tigeot #define HDA_INTEL_LPT1		HDA_MODEL_CONSTRUCT(INTEL, 0x8c20)
652a1ad637SFrançois Tigeot #define HDA_INTEL_LPT2		HDA_MODEL_CONSTRUCT(INTEL, 0x8c21)
662a1ad637SFrançois Tigeot #define HDA_INTEL_WCPT		HDA_MODEL_CONSTRUCT(INTEL, 0x8ca0)
672a1ad637SFrançois Tigeot #define HDA_INTEL_WELLS1	HDA_MODEL_CONSTRUCT(INTEL, 0x8d20)
682a1ad637SFrançois Tigeot #define HDA_INTEL_WELLS2	HDA_MODEL_CONSTRUCT(INTEL, 0x8d21)
692a1ad637SFrançois Tigeot #define HDA_INTEL_LPTLP1	HDA_MODEL_CONSTRUCT(INTEL, 0x9c20)
702a1ad637SFrançois Tigeot #define HDA_INTEL_LPTLP2	HDA_MODEL_CONSTRUCT(INTEL, 0x9c21)
7145328a62SImre Vadász #define HDA_INTEL_WCPTLP	HDA_MODEL_CONSTRUCT(INTEL, 0x9ca0)
72edfd9622SSepherosa Ziehau #define HDA_INTEL_SRPTLP	HDA_MODEL_CONSTRUCT(INTEL, 0x9d70)
73edfd9622SSepherosa Ziehau #define HDA_INTEL_KBLKLP	HDA_MODEL_CONSTRUCT(INTEL, 0x9d71)
74edfd9622SSepherosa Ziehau #define HDA_INTEL_SRPT		HDA_MODEL_CONSTRUCT(INTEL, 0xa170)
75edfd9622SSepherosa Ziehau #define HDA_INTEL_KBLK		HDA_MODEL_CONSTRUCT(INTEL, 0xa171)
762a1ad637SFrançois Tigeot #define HDA_INTEL_ALL		HDA_MODEL_CONSTRUCT(INTEL, 0xffff)
772a1ad637SFrançois Tigeot 
782a1ad637SFrançois Tigeot /* Nvidia */
792a1ad637SFrançois Tigeot #define NVIDIA_VENDORID		0x10de
802a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP51	HDA_MODEL_CONSTRUCT(NVIDIA, 0x026c)
812a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP55	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0371)
822a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP61_1	HDA_MODEL_CONSTRUCT(NVIDIA, 0x03e4)
832a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP61_2	HDA_MODEL_CONSTRUCT(NVIDIA, 0x03f0)
842a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP65_1	HDA_MODEL_CONSTRUCT(NVIDIA, 0x044a)
852a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP65_2	HDA_MODEL_CONSTRUCT(NVIDIA, 0x044b)
862a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP67_1	HDA_MODEL_CONSTRUCT(NVIDIA, 0x055c)
872a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP67_2	HDA_MODEL_CONSTRUCT(NVIDIA, 0x055d)
882a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP78_1	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0774)
892a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP78_2	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0775)
902a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP78_3	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0776)
912a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP78_4	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0777)
922a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP73_1	HDA_MODEL_CONSTRUCT(NVIDIA, 0x07fc)
932a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP73_2	HDA_MODEL_CONSTRUCT(NVIDIA, 0x07fd)
942a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP79_1	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0ac0)
952a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP79_2	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0ac1)
962a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP79_3	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0ac2)
972a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP79_4	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0ac3)
982a1ad637SFrançois Tigeot #define HDA_NVIDIA_0BE2		HDA_MODEL_CONSTRUCT(NVIDIA, 0x0be2)
992a1ad637SFrançois Tigeot #define HDA_NVIDIA_0BE3		HDA_MODEL_CONSTRUCT(NVIDIA, 0x0be3)
1002a1ad637SFrançois Tigeot #define HDA_NVIDIA_0BE4		HDA_MODEL_CONSTRUCT(NVIDIA, 0x0be4)
1012a1ad637SFrançois Tigeot #define HDA_NVIDIA_GT100	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0be5)
1022a1ad637SFrançois Tigeot #define HDA_NVIDIA_GT106	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0be9)
1032a1ad637SFrançois Tigeot #define HDA_NVIDIA_GT108	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0bea)
1042a1ad637SFrançois Tigeot #define HDA_NVIDIA_GT104	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0beb)
1052a1ad637SFrançois Tigeot #define HDA_NVIDIA_GT116	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0bee)
1062a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP89_1	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0d94)
1072a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP89_2	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0d95)
1082a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP89_3	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0d96)
1092a1ad637SFrançois Tigeot #define HDA_NVIDIA_MCP89_4	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0d97)
1102a1ad637SFrançois Tigeot #define HDA_NVIDIA_GF119	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0e08)
1112a1ad637SFrançois Tigeot #define HDA_NVIDIA_GF110_1	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0e09)
1122a1ad637SFrançois Tigeot #define HDA_NVIDIA_GF110_2	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0e0c)
1132a1ad637SFrançois Tigeot #define HDA_NVIDIA_ALL		HDA_MODEL_CONSTRUCT(NVIDIA, 0xffff)
1142a1ad637SFrançois Tigeot 
1152a1ad637SFrançois Tigeot /* ATI */
1162a1ad637SFrançois Tigeot #define ATI_VENDORID		0x1002
1172a1ad637SFrançois Tigeot #define HDA_ATI_SB450		HDA_MODEL_CONSTRUCT(ATI, 0x437b)
1182a1ad637SFrançois Tigeot #define HDA_ATI_SB600		HDA_MODEL_CONSTRUCT(ATI, 0x4383)
1192a1ad637SFrançois Tigeot #define HDA_ATI_RS600		HDA_MODEL_CONSTRUCT(ATI, 0x793b)
1202a1ad637SFrançois Tigeot #define HDA_ATI_RS690		HDA_MODEL_CONSTRUCT(ATI, 0x7919)
1212a1ad637SFrançois Tigeot #define HDA_ATI_RS780		HDA_MODEL_CONSTRUCT(ATI, 0x960f)
1222a1ad637SFrançois Tigeot #define HDA_ATI_R600		HDA_MODEL_CONSTRUCT(ATI, 0xaa00)
1232a1ad637SFrançois Tigeot #define HDA_ATI_RV630		HDA_MODEL_CONSTRUCT(ATI, 0xaa08)
1242a1ad637SFrançois Tigeot #define HDA_ATI_RV610		HDA_MODEL_CONSTRUCT(ATI, 0xaa10)
1252a1ad637SFrançois Tigeot #define HDA_ATI_RV670		HDA_MODEL_CONSTRUCT(ATI, 0xaa18)
1262a1ad637SFrançois Tigeot #define HDA_ATI_RV635		HDA_MODEL_CONSTRUCT(ATI, 0xaa20)
1272a1ad637SFrançois Tigeot #define HDA_ATI_RV620		HDA_MODEL_CONSTRUCT(ATI, 0xaa28)
1282a1ad637SFrançois Tigeot #define HDA_ATI_RV770		HDA_MODEL_CONSTRUCT(ATI, 0xaa30)
1292a1ad637SFrançois Tigeot #define HDA_ATI_RV730		HDA_MODEL_CONSTRUCT(ATI, 0xaa38)
1302a1ad637SFrançois Tigeot #define HDA_ATI_RV710		HDA_MODEL_CONSTRUCT(ATI, 0xaa40)
1312a1ad637SFrançois Tigeot #define HDA_ATI_RV740		HDA_MODEL_CONSTRUCT(ATI, 0xaa48)
1322a1ad637SFrançois Tigeot #define HDA_ATI_RV870		HDA_MODEL_CONSTRUCT(ATI, 0xaa50)
1332a1ad637SFrançois Tigeot #define HDA_ATI_RV840		HDA_MODEL_CONSTRUCT(ATI, 0xaa58)
1342a1ad637SFrançois Tigeot #define HDA_ATI_RV830		HDA_MODEL_CONSTRUCT(ATI, 0xaa60)
1352a1ad637SFrançois Tigeot #define HDA_ATI_RV810		HDA_MODEL_CONSTRUCT(ATI, 0xaa68)
1362a1ad637SFrançois Tigeot #define HDA_ATI_RV970		HDA_MODEL_CONSTRUCT(ATI, 0xaa80)
1372a1ad637SFrançois Tigeot #define HDA_ATI_RV940		HDA_MODEL_CONSTRUCT(ATI, 0xaa88)
1382a1ad637SFrançois Tigeot #define HDA_ATI_RV930		HDA_MODEL_CONSTRUCT(ATI, 0xaa90)
1392a1ad637SFrançois Tigeot #define HDA_ATI_RV910		HDA_MODEL_CONSTRUCT(ATI, 0xaa98)
1402a1ad637SFrançois Tigeot #define HDA_ATI_R1000		HDA_MODEL_CONSTRUCT(ATI, 0xaaa0)
1412a1ad637SFrançois Tigeot #define HDA_ATI_ALL		HDA_MODEL_CONSTRUCT(ATI, 0xffff)
1422a1ad637SFrançois Tigeot 
143edfd9622SSepherosa Ziehau #define AMD_VENDORID		0x1022
144edfd9622SSepherosa Ziehau #define HDA_AMD_HUDSON2		HDA_MODEL_CONSTRUCT(AMD, 0x780d)
145edfd9622SSepherosa Ziehau #define HDA_AMD_ALL		HDA_MODEL_CONSTRUCT(AMD, 0xffff)
146edfd9622SSepherosa Ziehau 
1472a1ad637SFrançois Tigeot /* RDC */
1482a1ad637SFrançois Tigeot #define RDC_VENDORID		0x17f3
1492a1ad637SFrançois Tigeot #define HDA_RDC_M3010		HDA_MODEL_CONSTRUCT(RDC, 0x3010)
1502a1ad637SFrançois Tigeot 
1512a1ad637SFrançois Tigeot /* VIA */
1522a1ad637SFrançois Tigeot #define VIA_VENDORID		0x1106
1532a1ad637SFrançois Tigeot #define HDA_VIA_VT82XX		HDA_MODEL_CONSTRUCT(VIA, 0x3288)
1542a1ad637SFrançois Tigeot #define HDA_VIA_ALL		HDA_MODEL_CONSTRUCT(VIA, 0xffff)
1552a1ad637SFrançois Tigeot 
1562a1ad637SFrançois Tigeot /* SiS */
1572a1ad637SFrançois Tigeot #define SIS_VENDORID		0x1039
1582a1ad637SFrançois Tigeot #define HDA_SIS_966		HDA_MODEL_CONSTRUCT(SIS, 0x7502)
1592a1ad637SFrançois Tigeot #define HDA_SIS_ALL		HDA_MODEL_CONSTRUCT(SIS, 0xffff)
1602a1ad637SFrançois Tigeot 
1612a1ad637SFrançois Tigeot /* ULI */
1622a1ad637SFrançois Tigeot #define ULI_VENDORID		0x10b9
1632a1ad637SFrançois Tigeot #define HDA_ULI_M5461		HDA_MODEL_CONSTRUCT(ULI, 0x5461)
1642a1ad637SFrançois Tigeot #define HDA_ULI_ALL		HDA_MODEL_CONSTRUCT(ULI, 0xffff)
1652a1ad637SFrançois Tigeot 
1662a1ad637SFrançois Tigeot /* OEM/subvendors */
1672a1ad637SFrançois Tigeot 
1682a1ad637SFrançois Tigeot /* Intel */
1692a1ad637SFrançois Tigeot #define	INTEL_DH87RL_SUBVENDOR	HDA_MODEL_CONSTRUCT(INTEL, 0x204a)
1702a1ad637SFrançois Tigeot #define INTEL_D101GGC_SUBVENDOR	HDA_MODEL_CONSTRUCT(INTEL, 0xd600)
1712a1ad637SFrançois Tigeot 
1722a1ad637SFrançois Tigeot /* HP/Compaq */
1732a1ad637SFrançois Tigeot #define HP_VENDORID		0x103c
1742a1ad637SFrançois Tigeot #define HP_V3000_SUBVENDOR	HDA_MODEL_CONSTRUCT(HP, 0x30b5)
1752a1ad637SFrançois Tigeot #define HP_NX7400_SUBVENDOR	HDA_MODEL_CONSTRUCT(HP, 0x30a2)
1762a1ad637SFrançois Tigeot #define HP_NX6310_SUBVENDOR	HDA_MODEL_CONSTRUCT(HP, 0x30aa)
1772a1ad637SFrançois Tigeot #define HP_NX6325_SUBVENDOR	HDA_MODEL_CONSTRUCT(HP, 0x30b0)
1782a1ad637SFrançois Tigeot #define HP_XW4300_SUBVENDOR	HDA_MODEL_CONSTRUCT(HP, 0x3013)
1792a1ad637SFrançois Tigeot #define HP_3010_SUBVENDOR	HDA_MODEL_CONSTRUCT(HP, 0x3010)
1802a1ad637SFrançois Tigeot #define HP_DV5000_SUBVENDOR	HDA_MODEL_CONSTRUCT(HP, 0x30a5)
1812a1ad637SFrançois Tigeot #define HP_DC7700S_SUBVENDOR	HDA_MODEL_CONSTRUCT(HP, 0x2801)
1822a1ad637SFrançois Tigeot #define HP_DC7700_SUBVENDOR	HDA_MODEL_CONSTRUCT(HP, 0x2802)
1832a1ad637SFrançois Tigeot #define HP_ALL_SUBVENDOR	HDA_MODEL_CONSTRUCT(HP, 0xffff)
1842a1ad637SFrançois Tigeot /* What is wrong with XN 2563 anyway? (Got the picture ?) */
1852a1ad637SFrançois Tigeot #define HP_NX6325_SUBVENDORX	0x103c30b0
1862a1ad637SFrançois Tigeot 
1872a1ad637SFrançois Tigeot /* Dell */
1882a1ad637SFrançois Tigeot #define DELL_VENDORID		0x1028
1892a1ad637SFrançois Tigeot #define DELL_D630_SUBVENDOR	HDA_MODEL_CONSTRUCT(DELL, 0x01f9)
1902a1ad637SFrançois Tigeot #define DELL_D820_SUBVENDOR	HDA_MODEL_CONSTRUCT(DELL, 0x01cc)
1912a1ad637SFrançois Tigeot #define DELL_V1400_SUBVENDOR	HDA_MODEL_CONSTRUCT(DELL, 0x0227)
1922a1ad637SFrançois Tigeot #define DELL_V1500_SUBVENDOR	HDA_MODEL_CONSTRUCT(DELL, 0x0228)
1932a1ad637SFrançois Tigeot #define DELL_I1300_SUBVENDOR	HDA_MODEL_CONSTRUCT(DELL, 0x01c9)
1942a1ad637SFrançois Tigeot #define DELL_XPSM1210_SUBVENDOR	HDA_MODEL_CONSTRUCT(DELL, 0x01d7)
1952a1ad637SFrançois Tigeot #define DELL_OPLX745_SUBVENDOR	HDA_MODEL_CONSTRUCT(DELL, 0x01da)
1962a1ad637SFrançois Tigeot #define DELL_ALL_SUBVENDOR	HDA_MODEL_CONSTRUCT(DELL, 0xffff)
1972a1ad637SFrançois Tigeot 
1982a1ad637SFrançois Tigeot /* Clevo */
1992a1ad637SFrançois Tigeot #define CLEVO_VENDORID		0x1558
2002a1ad637SFrançois Tigeot #define CLEVO_D900T_SUBVENDOR	HDA_MODEL_CONSTRUCT(CLEVO, 0x0900)
2012a1ad637SFrançois Tigeot #define CLEVO_ALL_SUBVENDOR	HDA_MODEL_CONSTRUCT(CLEVO, 0xffff)
2022a1ad637SFrançois Tigeot 
2032a1ad637SFrançois Tigeot /* Acer */
2042a1ad637SFrançois Tigeot #define ACER_VENDORID		0x1025
205dad4f08aSMatthew Dillon #define ACER2_VENDORID		0x103c	/* HP vendor id found on a C720P */
2062a1ad637SFrançois Tigeot #define ACER_A5050_SUBVENDOR	HDA_MODEL_CONSTRUCT(ACER, 0x010f)
2072a1ad637SFrançois Tigeot #define ACER_A4520_SUBVENDOR	HDA_MODEL_CONSTRUCT(ACER, 0x0127)
2082a1ad637SFrançois Tigeot #define ACER_A4710_SUBVENDOR	HDA_MODEL_CONSTRUCT(ACER, 0x012f)
2092a1ad637SFrançois Tigeot #define ACER_A4715_SUBVENDOR	HDA_MODEL_CONSTRUCT(ACER, 0x0133)
2102a1ad637SFrançois Tigeot #define ACER_3681WXM_SUBVENDOR	HDA_MODEL_CONSTRUCT(ACER, 0x0110)
2112a1ad637SFrançois Tigeot #define ACER_T6292_SUBVENDOR	HDA_MODEL_CONSTRUCT(ACER, 0x011b)
2122a1ad637SFrançois Tigeot #define ACER_T5320_SUBVENDOR	HDA_MODEL_CONSTRUCT(ACER, 0x011f)
213536a8300SMatthew Dillon #define ACER_C720_SUBVENDOR	HDA_MODEL_CONSTRUCT(ACER, 0x0a11)
214dad4f08aSMatthew Dillon #define ACER_C720_SUBVENDOR2	HDA_MODEL_CONSTRUCT(ACER2, 0x21ed)
2152a1ad637SFrançois Tigeot #define ACER_ALL_SUBVENDOR	HDA_MODEL_CONSTRUCT(ACER, 0xffff)
2162a1ad637SFrançois Tigeot 
2172a1ad637SFrançois Tigeot /* Asus */
2182a1ad637SFrançois Tigeot #define ASUS_VENDORID		0x1043
2192a1ad637SFrançois Tigeot #define ASUS_A8X_SUBVENDOR	HDA_MODEL_CONSTRUCT(ASUS, 0x1153)
2202a1ad637SFrançois Tigeot #define ASUS_U5F_SUBVENDOR	HDA_MODEL_CONSTRUCT(ASUS, 0x1263)
2212a1ad637SFrançois Tigeot #define ASUS_W6F_SUBVENDOR	HDA_MODEL_CONSTRUCT(ASUS, 0x1263)
2222a1ad637SFrançois Tigeot #define ASUS_A7M_SUBVENDOR	HDA_MODEL_CONSTRUCT(ASUS, 0x1323)
2232a1ad637SFrançois Tigeot #define ASUS_F3JC_SUBVENDOR	HDA_MODEL_CONSTRUCT(ASUS, 0x1338)
2242a1ad637SFrançois Tigeot #define ASUS_G2K_SUBVENDOR	HDA_MODEL_CONSTRUCT(ASUS, 0x1339)
2252a1ad637SFrançois Tigeot #define ASUS_A7T_SUBVENDOR	HDA_MODEL_CONSTRUCT(ASUS, 0x13c2)
2262a1ad637SFrançois Tigeot #define ASUS_UX31A_SUBVENDOR	HDA_MODEL_CONSTRUCT(ASUS, 0x1517)
2272a1ad637SFrançois Tigeot #define ASUS_W2J_SUBVENDOR	HDA_MODEL_CONSTRUCT(ASUS, 0x1971)
2282a1ad637SFrançois Tigeot #define ASUS_M5200_SUBVENDOR	HDA_MODEL_CONSTRUCT(ASUS, 0x1993)
2292a1ad637SFrançois Tigeot #define ASUS_P5PL2_SUBVENDOR	HDA_MODEL_CONSTRUCT(ASUS, 0x817f)
2302a1ad637SFrançois Tigeot #define ASUS_P1AH2_SUBVENDOR	HDA_MODEL_CONSTRUCT(ASUS, 0x81cb)
2312a1ad637SFrançois Tigeot #define ASUS_M2NPVMX_SUBVENDOR	HDA_MODEL_CONSTRUCT(ASUS, 0x81cb)
2322a1ad637SFrançois Tigeot #define ASUS_M2V_SUBVENDOR	HDA_MODEL_CONSTRUCT(ASUS, 0x81e7)
2332a1ad637SFrançois Tigeot #define ASUS_P5BWD_SUBVENDOR	HDA_MODEL_CONSTRUCT(ASUS, 0x81ec)
2342a1ad637SFrançois Tigeot #define ASUS_M2N_SUBVENDOR	HDA_MODEL_CONSTRUCT(ASUS, 0x8234)
2352a1ad637SFrançois Tigeot #define ASUS_A8NVMCSM_SUBVENDOR	HDA_MODEL_CONSTRUCT(NVIDIA, 0xcb84)
2362a1ad637SFrançois Tigeot #define ASUS_ALL_SUBVENDOR	HDA_MODEL_CONSTRUCT(ASUS, 0xffff)
2372a1ad637SFrançois Tigeot 
2382a1ad637SFrançois Tigeot /* IBM / Lenovo */
2392a1ad637SFrançois Tigeot #define IBM_VENDORID		0x1014
2402a1ad637SFrançois Tigeot #define IBM_M52_SUBVENDOR	HDA_MODEL_CONSTRUCT(IBM, 0x02f6)
2412a1ad637SFrançois Tigeot #define IBM_ALL_SUBVENDOR	HDA_MODEL_CONSTRUCT(IBM, 0xffff)
2422a1ad637SFrançois Tigeot 
2432a1ad637SFrançois Tigeot /* Lenovo */
2442a1ad637SFrançois Tigeot #define LENOVO_VENDORID		0x17aa
2452a1ad637SFrançois Tigeot #define LENOVO_3KN100_SUBVENDOR	HDA_MODEL_CONSTRUCT(LENOVO, 0x2066)
2462a1ad637SFrançois Tigeot #define LENOVO_3KN200_SUBVENDOR	HDA_MODEL_CONSTRUCT(LENOVO, 0x384e)
2472a1ad637SFrançois Tigeot #define LENOVO_B450_SUBVENDOR HDA_MODEL_CONSTRUCT(LENOVO, 0x3a0d)
2482a1ad637SFrançois Tigeot #define LENOVO_TCA55_SUBVENDOR	HDA_MODEL_CONSTRUCT(LENOVO, 0x1015)
2492a1ad637SFrançois Tigeot #define	LENOVO_X1_SUBVENDOR	HDA_MODEL_CONSTRUCT(LENOVO, 0x21e8)
2502a1ad637SFrançois Tigeot #define	LENOVO_X1CRBN_SUBVENDOR	HDA_MODEL_CONSTRUCT(LENOVO, 0x21f9)
251edfd9622SSepherosa Ziehau #define	LENOVO_X120BS_SUBVENDOR	HDA_MODEL_CONSTRUCT(LENOVO, 0x2227)
2522a1ad637SFrançois Tigeot #define LENOVO_X220_SUBVENDOR	HDA_MODEL_CONSTRUCT(LENOVO, 0x21da)
2532a1ad637SFrançois Tigeot #define LENOVO_X300_SUBVENDOR	HDA_MODEL_CONSTRUCT(LENOVO, 0x20ac)
2542a1ad637SFrançois Tigeot #define	LENOVO_T400_SUBVENDOR	HDA_MODEL_CONSTRUCT(LENOVO, 0x20f2)
2552a1ad637SFrançois Tigeot #define	LENOVO_T420_SUBVENDOR	HDA_MODEL_CONSTRUCT(LENOVO, 0x21ce)
2562a1ad637SFrançois Tigeot #define	LENOVO_T430_SUBVENDOR	HDA_MODEL_CONSTRUCT(LENOVO, 0x21f3)
2572a1ad637SFrançois Tigeot #define	LENOVO_T430S_SUBVENDOR	HDA_MODEL_CONSTRUCT(LENOVO, 0x21fb)
2582a1ad637SFrançois Tigeot #define	LENOVO_T520_SUBVENDOR	HDA_MODEL_CONSTRUCT(LENOVO, 0x21cf)
2592a1ad637SFrançois Tigeot #define	LENOVO_T530_SUBVENDOR	HDA_MODEL_CONSTRUCT(LENOVO, 0x21f6)
2602a1ad637SFrançois Tigeot #define	LENOVO_G580_SUBVENDOR	HDA_MODEL_CONSTRUCT(LENOVO, 0x3977)
2612a1ad637SFrançois Tigeot #define LENOVO_ALL_SUBVENDOR	HDA_MODEL_CONSTRUCT(LENOVO, 0xffff)
2622a1ad637SFrançois Tigeot 
2632a1ad637SFrançois Tigeot /* Samsung */
2642a1ad637SFrançois Tigeot #define SAMSUNG_VENDORID	0x144d
2652a1ad637SFrançois Tigeot #define SAMSUNG_Q1_SUBVENDOR	HDA_MODEL_CONSTRUCT(SAMSUNG, 0xc027)
2662a1ad637SFrançois Tigeot #define SAMSUNG_ALL_SUBVENDOR	HDA_MODEL_CONSTRUCT(SAMSUNG, 0xffff)
2672a1ad637SFrançois Tigeot 
2682a1ad637SFrançois Tigeot /* Medion ? */
2692a1ad637SFrançois Tigeot #define MEDION_VENDORID			0x161f
2702a1ad637SFrançois Tigeot #define MEDION_MD95257_SUBVENDOR	HDA_MODEL_CONSTRUCT(MEDION, 0x203d)
2712a1ad637SFrançois Tigeot #define MEDION_ALL_SUBVENDOR		HDA_MODEL_CONSTRUCT(MEDION, 0xffff)
2722a1ad637SFrançois Tigeot 
2732a1ad637SFrançois Tigeot /* Apple Computer Inc. */
2742a1ad637SFrançois Tigeot #define APPLE_VENDORID		0x106b
2752a1ad637SFrançois Tigeot #define APPLE_MB3_SUBVENDOR	HDA_MODEL_CONSTRUCT(APPLE, 0x00a1)
2762a1ad637SFrançois Tigeot 
2772a1ad637SFrançois Tigeot /* Sony */
2782a1ad637SFrançois Tigeot #define SONY_VENDORID		0x104d
2792a1ad637SFrançois Tigeot #define SONY_S5_SUBVENDOR	HDA_MODEL_CONSTRUCT(SONY, 0x81cc)
2802a1ad637SFrançois Tigeot #define SONY_ALL_SUBVENDOR	HDA_MODEL_CONSTRUCT(SONY, 0xffff)
2812a1ad637SFrançois Tigeot 
2822a1ad637SFrançois Tigeot /*
2832a1ad637SFrançois Tigeot  * Apple Intel MacXXXX seems using Sigmatel codec/vendor id
2842a1ad637SFrançois Tigeot  * instead of their own, which is beyond my comprehension
2852a1ad637SFrançois Tigeot  * (see HDA_CODEC_STAC9221 below).
2862a1ad637SFrançois Tigeot  */
2872a1ad637SFrançois Tigeot #define APPLE_INTEL_MAC		0x76808384
2882a1ad637SFrançois Tigeot #define APPLE_MACBOOKAIR31	0x0d9410de
2892a1ad637SFrançois Tigeot #define APPLE_MACBOOKPRO55	0xcb7910de
2902a1ad637SFrançois Tigeot #define APPLE_MACBOOKPRO71	0xcb8910de
2912a1ad637SFrançois Tigeot 
2922a1ad637SFrançois Tigeot /* LG Electronics */
2932a1ad637SFrançois Tigeot #define LG_VENDORID		0x1854
2942a1ad637SFrançois Tigeot #define LG_LW20_SUBVENDOR	HDA_MODEL_CONSTRUCT(LG, 0x0018)
2952a1ad637SFrançois Tigeot #define LG_ALL_SUBVENDOR	HDA_MODEL_CONSTRUCT(LG, 0xffff)
2962a1ad637SFrançois Tigeot 
2972a1ad637SFrançois Tigeot /* Fujitsu Siemens */
2982a1ad637SFrançois Tigeot #define FS_VENDORID		0x1734
2992a1ad637SFrançois Tigeot #define FS_PA1510_SUBVENDOR	HDA_MODEL_CONSTRUCT(FS, 0x10b8)
3002a1ad637SFrançois Tigeot #define FS_SI1848_SUBVENDOR	HDA_MODEL_CONSTRUCT(FS, 0x10cd)
3012a1ad637SFrançois Tigeot #define FS_ALL_SUBVENDOR	HDA_MODEL_CONSTRUCT(FS, 0xffff)
3022a1ad637SFrançois Tigeot 
3032a1ad637SFrançois Tigeot /* Fujitsu Limited */
3042a1ad637SFrançois Tigeot #define FL_VENDORID		0x10cf
3052a1ad637SFrançois Tigeot #define FL_S7020D_SUBVENDOR	HDA_MODEL_CONSTRUCT(FL, 0x1326)
3062a1ad637SFrançois Tigeot #define FL_U1010_SUBVENDOR	HDA_MODEL_CONSTRUCT(FL, 0x142d)
3072a1ad637SFrançois Tigeot #define FL_ALL_SUBVENDOR	HDA_MODEL_CONSTRUCT(FL, 0xffff)
3082a1ad637SFrançois Tigeot 
3092a1ad637SFrançois Tigeot /* Toshiba */
3102a1ad637SFrançois Tigeot #define TOSHIBA_VENDORID	0x1179
3112a1ad637SFrançois Tigeot #define TOSHIBA_U200_SUBVENDOR	HDA_MODEL_CONSTRUCT(TOSHIBA, 0x0001)
3122a1ad637SFrançois Tigeot #define TOSHIBA_A135_SUBVENDOR	HDA_MODEL_CONSTRUCT(TOSHIBA, 0xff01)
3132a1ad637SFrançois Tigeot #define TOSHIBA_ALL_SUBVENDOR	HDA_MODEL_CONSTRUCT(TOSHIBA, 0xffff)
3142a1ad637SFrançois Tigeot 
3152a1ad637SFrançois Tigeot /* Micro-Star International (MSI) */
3162a1ad637SFrançois Tigeot #define MSI_VENDORID		0x1462
3172a1ad637SFrançois Tigeot #define MSI_MS1034_SUBVENDOR	HDA_MODEL_CONSTRUCT(MSI, 0x0349)
3182a1ad637SFrançois Tigeot #define MSI_MS034A_SUBVENDOR	HDA_MODEL_CONSTRUCT(MSI, 0x034a)
3192a1ad637SFrançois Tigeot #define MSI_ALL_SUBVENDOR	HDA_MODEL_CONSTRUCT(MSI, 0xffff)
3202a1ad637SFrançois Tigeot 
3212a1ad637SFrançois Tigeot /* Giga-Byte Technology */
3222a1ad637SFrançois Tigeot #define GB_VENDORID		0x1458
3232a1ad637SFrançois Tigeot #define GB_G33S2H_SUBVENDOR	HDA_MODEL_CONSTRUCT(GB, 0xa022)
3248bd5748cSMatthew Dillon #define GB_BXBT_SUBVENDOR	HDA_MODEL_CONSTRUCT(GB, 0xfa53)
3252a1ad637SFrançois Tigeot #define GP_ALL_SUBVENDOR	HDA_MODEL_CONSTRUCT(GB, 0xffff)
3262a1ad637SFrançois Tigeot 
3272a1ad637SFrançois Tigeot /* Uniwill ? */
3282a1ad637SFrançois Tigeot #define UNIWILL_VENDORID	0x1584
3292a1ad637SFrançois Tigeot #define UNIWILL_9075_SUBVENDOR	HDA_MODEL_CONSTRUCT(UNIWILL, 0x9075)
3302a1ad637SFrançois Tigeot #define UNIWILL_9080_SUBVENDOR	HDA_MODEL_CONSTRUCT(UNIWILL, 0x9080)
3312a1ad637SFrançois Tigeot 
3322a1ad637SFrançois Tigeot /* All codecs you can eat... */
3332a1ad637SFrançois Tigeot #define HDA_CODEC_CONSTRUCT(vendor, id) \
3342a1ad637SFrançois Tigeot 		(((uint32_t)(vendor##_VENDORID) << 16) | ((id) & 0xffff))
3352a1ad637SFrançois Tigeot 
3362a1ad637SFrançois Tigeot /* Cirrus Logic */
3372a1ad637SFrançois Tigeot #define CIRRUSLOGIC_VENDORID	0x1013
3382a1ad637SFrançois Tigeot #define HDA_CODEC_CS4206	HDA_CODEC_CONSTRUCT(CIRRUSLOGIC, 0x4206)
3392a1ad637SFrançois Tigeot #define HDA_CODEC_CS4207	HDA_CODEC_CONSTRUCT(CIRRUSLOGIC, 0x4207)
3402a1ad637SFrançois Tigeot #define HDA_CODEC_CS4210	HDA_CODEC_CONSTRUCT(CIRRUSLOGIC, 0x4210)
3412a1ad637SFrançois Tigeot #define HDA_CODEC_CSXXXX	HDA_CODEC_CONSTRUCT(CIRRUSLOGIC, 0xffff)
3422a1ad637SFrançois Tigeot 
3432a1ad637SFrançois Tigeot /* Realtek */
3442a1ad637SFrançois Tigeot #define REALTEK_VENDORID	0x10ec
3452a1ad637SFrançois Tigeot #define HDA_CODEC_ALC221	HDA_CODEC_CONSTRUCT(REALTEK, 0x0221)
346edfd9622SSepherosa Ziehau #define HDA_CODEC_ALC233	HDA_CODEC_CONSTRUCT(REALTEK, 0x0233)
347*8fa94593SMatthew Dillon #define HDA_CODEC_ALC256	HDA_CODEC_CONSTRUCT(REALTEK, 0x0256)
3482a1ad637SFrançois Tigeot #define HDA_CODEC_ALC260	HDA_CODEC_CONSTRUCT(REALTEK, 0x0260)
3492a1ad637SFrançois Tigeot #define HDA_CODEC_ALC262	HDA_CODEC_CONSTRUCT(REALTEK, 0x0262)
3502a1ad637SFrançois Tigeot #define HDA_CODEC_ALC267	HDA_CODEC_CONSTRUCT(REALTEK, 0x0267)
3512a1ad637SFrançois Tigeot #define HDA_CODEC_ALC268	HDA_CODEC_CONSTRUCT(REALTEK, 0x0268)
3522a1ad637SFrançois Tigeot #define HDA_CODEC_ALC269	HDA_CODEC_CONSTRUCT(REALTEK, 0x0269)
3532a1ad637SFrançois Tigeot #define HDA_CODEC_ALC270	HDA_CODEC_CONSTRUCT(REALTEK, 0x0270)
3542a1ad637SFrançois Tigeot #define HDA_CODEC_ALC272	HDA_CODEC_CONSTRUCT(REALTEK, 0x0272)
3552a1ad637SFrançois Tigeot #define HDA_CODEC_ALC273	HDA_CODEC_CONSTRUCT(REALTEK, 0x0273)
3562a1ad637SFrançois Tigeot #define HDA_CODEC_ALC275	HDA_CODEC_CONSTRUCT(REALTEK, 0x0275)
3572a1ad637SFrançois Tigeot #define HDA_CODEC_ALC276	HDA_CODEC_CONSTRUCT(REALTEK, 0x0276)
358536a8300SMatthew Dillon #define HDA_CODEC_ALC283	HDA_CODEC_CONSTRUCT(REALTEK, 0x0283)
359edfd9622SSepherosa Ziehau #define HDA_CODEC_ALC292	HDA_CODEC_CONSTRUCT(REALTEK, 0x0292)
360edfd9622SSepherosa Ziehau #define HDA_CODEC_ALC295	HDA_CODEC_CONSTRUCT(REALTEK, 0x0295)
3612a1ad637SFrançois Tigeot #define HDA_CODEC_ALC660	HDA_CODEC_CONSTRUCT(REALTEK, 0x0660)
3622a1ad637SFrançois Tigeot #define HDA_CODEC_ALC662	HDA_CODEC_CONSTRUCT(REALTEK, 0x0662)
3632a1ad637SFrançois Tigeot #define HDA_CODEC_ALC663	HDA_CODEC_CONSTRUCT(REALTEK, 0x0663)
3642a1ad637SFrançois Tigeot #define HDA_CODEC_ALC665	HDA_CODEC_CONSTRUCT(REALTEK, 0x0665)
3652a1ad637SFrançois Tigeot #define HDA_CODEC_ALC670	HDA_CODEC_CONSTRUCT(REALTEK, 0x0670)
3662a1ad637SFrançois Tigeot #define HDA_CODEC_ALC680	HDA_CODEC_CONSTRUCT(REALTEK, 0x0680)
3672a1ad637SFrançois Tigeot #define HDA_CODEC_ALC861	HDA_CODEC_CONSTRUCT(REALTEK, 0x0861)
3682a1ad637SFrançois Tigeot #define HDA_CODEC_ALC861VD	HDA_CODEC_CONSTRUCT(REALTEK, 0x0862)
3692a1ad637SFrançois Tigeot #define HDA_CODEC_ALC880	HDA_CODEC_CONSTRUCT(REALTEK, 0x0880)
3702a1ad637SFrançois Tigeot #define HDA_CODEC_ALC882	HDA_CODEC_CONSTRUCT(REALTEK, 0x0882)
3712a1ad637SFrançois Tigeot #define HDA_CODEC_ALC883	HDA_CODEC_CONSTRUCT(REALTEK, 0x0883)
3722a1ad637SFrançois Tigeot #define HDA_CODEC_ALC885	HDA_CODEC_CONSTRUCT(REALTEK, 0x0885)
3732a1ad637SFrançois Tigeot #define HDA_CODEC_ALC887	HDA_CODEC_CONSTRUCT(REALTEK, 0x0887)
3742a1ad637SFrançois Tigeot #define HDA_CODEC_ALC888	HDA_CODEC_CONSTRUCT(REALTEK, 0x0888)
3752a1ad637SFrançois Tigeot #define HDA_CODEC_ALC889	HDA_CODEC_CONSTRUCT(REALTEK, 0x0889)
3762a1ad637SFrançois Tigeot #define HDA_CODEC_ALC892	HDA_CODEC_CONSTRUCT(REALTEK, 0x0892)
3772a1ad637SFrançois Tigeot #define HDA_CODEC_ALC899	HDA_CODEC_CONSTRUCT(REALTEK, 0x0899)
378edfd9622SSepherosa Ziehau #define HDA_CODEC_ALC1150	HDA_CODEC_CONSTRUCT(REALTEK, 0x0900)
3792a1ad637SFrançois Tigeot #define HDA_CODEC_ALCXXXX	HDA_CODEC_CONSTRUCT(REALTEK, 0xffff)
3802a1ad637SFrançois Tigeot 
3812a1ad637SFrançois Tigeot /* Motorola */
3822a1ad637SFrançois Tigeot #define MOTO_VENDORID		0x1057
3832a1ad637SFrançois Tigeot #define HDA_CODEC_MOTOXXXX	HDA_CODEC_CONSTRUCT(MOTO, 0xffff)
3842a1ad637SFrançois Tigeot 
3852a1ad637SFrançois Tigeot /* Creative */
3862a1ad637SFrançois Tigeot #define CREATIVE_VENDORID	0x1102
3872a1ad637SFrançois Tigeot #define HDA_CODEC_CA0110	HDA_CODEC_CONSTRUCT(CREATIVE, 0x000a)
3882a1ad637SFrançois Tigeot #define HDA_CODEC_CA0110_2	HDA_CODEC_CONSTRUCT(CREATIVE, 0x000b)
3892a1ad637SFrançois Tigeot #define HDA_CODEC_SB0880	HDA_CODEC_CONSTRUCT(CREATIVE, 0x000d)
3902a1ad637SFrançois Tigeot #define HDA_CODEC_CA0132	HDA_CODEC_CONSTRUCT(CREATIVE, 0x0011)
3912a1ad637SFrançois Tigeot #define HDA_CODEC_CAXXXX	HDA_CODEC_CONSTRUCT(CREATIVE, 0xffff)
3922a1ad637SFrançois Tigeot 
3932a1ad637SFrançois Tigeot /* Analog Devices */
3942a1ad637SFrançois Tigeot #define ANALOGDEVICES_VENDORID	0x11d4
3952a1ad637SFrançois Tigeot #define HDA_CODEC_AD1884A	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x184a)
3962a1ad637SFrançois Tigeot #define HDA_CODEC_AD1882	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1882)
3972a1ad637SFrançois Tigeot #define HDA_CODEC_AD1883	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1883)
3982a1ad637SFrançois Tigeot #define HDA_CODEC_AD1884	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1884)
3992a1ad637SFrançois Tigeot #define HDA_CODEC_AD1984A	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x194a)
4002a1ad637SFrançois Tigeot #define HDA_CODEC_AD1984B	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x194b)
4012a1ad637SFrançois Tigeot #define HDA_CODEC_AD1981HD	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1981)
4022a1ad637SFrançois Tigeot #define HDA_CODEC_AD1983	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1983)
4032a1ad637SFrançois Tigeot #define HDA_CODEC_AD1984	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1984)
4042a1ad637SFrançois Tigeot #define HDA_CODEC_AD1986A	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1986)
4052a1ad637SFrançois Tigeot #define HDA_CODEC_AD1987	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1987)
4062a1ad637SFrançois Tigeot #define HDA_CODEC_AD1988	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1988)
4072a1ad637SFrançois Tigeot #define HDA_CODEC_AD1988B	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x198b)
4082a1ad637SFrançois Tigeot #define HDA_CODEC_AD1882A	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x882a)
4092a1ad637SFrançois Tigeot #define HDA_CODEC_AD1989A	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x989a)
4102a1ad637SFrançois Tigeot #define HDA_CODEC_AD1989B	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x989b)
4112a1ad637SFrançois Tigeot #define HDA_CODEC_ADXXXX	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0xffff)
4122a1ad637SFrançois Tigeot 
4132a1ad637SFrançois Tigeot /* CMedia */
4142a1ad637SFrançois Tigeot #define CMEDIA_VENDORID		0x13f6
4152a1ad637SFrançois Tigeot #define HDA_CODEC_CMI9880	HDA_CODEC_CONSTRUCT(CMEDIA, 0x9880)
4162a1ad637SFrançois Tigeot #define HDA_CODEC_CMIXXXX	HDA_CODEC_CONSTRUCT(CMEDIA, 0xffff)
4172a1ad637SFrançois Tigeot 
4182a1ad637SFrançois Tigeot #define CMEDIA2_VENDORID	0x434d
4192a1ad637SFrançois Tigeot #define HDA_CODEC_CMI98802	HDA_CODEC_CONSTRUCT(CMEDIA2, 0x4980)
4202a1ad637SFrançois Tigeot #define HDA_CODEC_CMIXXXX2	HDA_CODEC_CONSTRUCT(CMEDIA2, 0xffff)
4212a1ad637SFrançois Tigeot 
4222a1ad637SFrançois Tigeot /* Sigmatel */
4232a1ad637SFrançois Tigeot #define SIGMATEL_VENDORID	0x8384
4242a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9230X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7612)
4252a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9230D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7613)
4262a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9229X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7614)
4272a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9229D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7615)
4282a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9228X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7616)
4292a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9228D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7617)
4302a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9227X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7618)
4312a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9227D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7619)
4322a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9274	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7620)
4332a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9274D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7621)
4342a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9273X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7622)
4352a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9273D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7623)
4362a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9272X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7624)
4372a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9272D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7625)
4382a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9271X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7626)
4392a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9271D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7627)
4402a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9274X5NH	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7628)
4412a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9274D5NH	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7629)
4422a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9250	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7634)
4432a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9251	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7636)
4442a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD700X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7638)
4452a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD700D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7639)
4462a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD206X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7645)
4472a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD206D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7646)
4482a1ad637SFrançois Tigeot #define HDA_CODEC_CXD9872RDK	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7661)
4492a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9872AK	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7662)
4502a1ad637SFrançois Tigeot #define HDA_CODEC_CXD9872AKD	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7664)
4512a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9221	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7680)
4522a1ad637SFrançois Tigeot #define HDA_CODEC_STAC922XD	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7681)
4532a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9221_A2	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7682)
4542a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9221D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7683)
4552a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9220	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7690)
4562a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9200D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7691)
4572a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD005	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7698)
4582a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD005D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7699)
4592a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9205X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x76a0)
4602a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9205D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x76a1)
4612a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9204X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x76a2)
4622a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9204D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x76a3)
4632a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9255	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x76a4)
4642a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9255D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x76a5)
4652a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9254	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x76a6)
4662a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9254D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x76a7)
4672a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9220_A2	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7880)
4682a1ad637SFrançois Tigeot #define HDA_CODEC_STAC9220_A1	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7882)
4692a1ad637SFrançois Tigeot #define HDA_CODEC_STACXXXX	HDA_CODEC_CONSTRUCT(SIGMATEL, 0xffff)
4702a1ad637SFrançois Tigeot 
4712a1ad637SFrançois Tigeot /* IDT */
4722a1ad637SFrançois Tigeot #define IDT_VENDORID		0x111d
4732a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD75BX	HDA_CODEC_CONSTRUCT(IDT, 0x7603)
4742a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD83C1X	HDA_CODEC_CONSTRUCT(IDT, 0x7604)
4752a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD81B1X	HDA_CODEC_CONSTRUCT(IDT, 0x7605)
4762a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD75B3	HDA_CODEC_CONSTRUCT(IDT, 0x7608)
4772a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD73D1	HDA_CODEC_CONSTRUCT(IDT, 0x7674)
4782a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD73C1	HDA_CODEC_CONSTRUCT(IDT, 0x7675)
4792a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD73E1	HDA_CODEC_CONSTRUCT(IDT, 0x7676)
4802a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD71B8	HDA_CODEC_CONSTRUCT(IDT, 0x76b0)
4812a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD71B8_2	HDA_CODEC_CONSTRUCT(IDT, 0x76b1)
4822a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD71B7	HDA_CODEC_CONSTRUCT(IDT, 0x76b2)
4832a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD71B7_2	HDA_CODEC_CONSTRUCT(IDT, 0x76b3)
4842a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD71B6	HDA_CODEC_CONSTRUCT(IDT, 0x76b4)
4852a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD71B6_2	HDA_CODEC_CONSTRUCT(IDT, 0x76b5)
4862a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD71B5	HDA_CODEC_CONSTRUCT(IDT, 0x76b6)
4872a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD71B5_2	HDA_CODEC_CONSTRUCT(IDT, 0x76b7)
4882a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD89C3	HDA_CODEC_CONSTRUCT(IDT, 0x76c0)
4892a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD89C2	HDA_CODEC_CONSTRUCT(IDT, 0x76c1)
4902a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD89C1	HDA_CODEC_CONSTRUCT(IDT, 0x76c2)
4912a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD89B3	HDA_CODEC_CONSTRUCT(IDT, 0x76c3)
4922a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD89B2	HDA_CODEC_CONSTRUCT(IDT, 0x76c4)
4932a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD89B1	HDA_CODEC_CONSTRUCT(IDT, 0x76c5)
4942a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD89E3	HDA_CODEC_CONSTRUCT(IDT, 0x76c6)
4952a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD89E2	HDA_CODEC_CONSTRUCT(IDT, 0x76c7)
4962a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD89E1	HDA_CODEC_CONSTRUCT(IDT, 0x76c8)
4972a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD89D3	HDA_CODEC_CONSTRUCT(IDT, 0x76c9)
4982a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD89D2	HDA_CODEC_CONSTRUCT(IDT, 0x76ca)
4992a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD89D1	HDA_CODEC_CONSTRUCT(IDT, 0x76cb)
5002a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD89F3	HDA_CODEC_CONSTRUCT(IDT, 0x76cc)
5012a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD89F2	HDA_CODEC_CONSTRUCT(IDT, 0x76cd)
5022a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD89F1	HDA_CODEC_CONSTRUCT(IDT, 0x76ce)
5032a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD87B1_3	HDA_CODEC_CONSTRUCT(IDT, 0x76d1)
5042a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD83C1C	HDA_CODEC_CONSTRUCT(IDT, 0x76d4)
5052a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD81B1C	HDA_CODEC_CONSTRUCT(IDT, 0x76d5)
5062a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD87B2_4	HDA_CODEC_CONSTRUCT(IDT, 0x76d9)
5072a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD93BXX	HDA_CODEC_CONSTRUCT(IDT, 0x76df)
5082a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD91BXX	HDA_CODEC_CONSTRUCT(IDT, 0x76e0)
5092a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD98BXX	HDA_CODEC_CONSTRUCT(IDT, 0x76e3)
5102a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD99BXX	HDA_CODEC_CONSTRUCT(IDT, 0x76e5)
5112a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD90BXX	HDA_CODEC_CONSTRUCT(IDT, 0x76e7)
5122a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD66B1X5	HDA_CODEC_CONSTRUCT(IDT, 0x76e8)
5132a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD66B2X5	HDA_CODEC_CONSTRUCT(IDT, 0x76e9)
5142a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD66B3X5	HDA_CODEC_CONSTRUCT(IDT, 0x76ea)
5152a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD66C1X5	HDA_CODEC_CONSTRUCT(IDT, 0x76eb)
5162a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD66C2X5	HDA_CODEC_CONSTRUCT(IDT, 0x76ec)
5172a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD66C3X5	HDA_CODEC_CONSTRUCT(IDT, 0x76ed)
5182a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD66B1X3	HDA_CODEC_CONSTRUCT(IDT, 0x76ee)
5192a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD66B2X3	HDA_CODEC_CONSTRUCT(IDT, 0x76ef)
5202a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD66B3X3	HDA_CODEC_CONSTRUCT(IDT, 0x76f0)
5212a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD66C1X3	HDA_CODEC_CONSTRUCT(IDT, 0x76f1)
5222a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD66C2X3	HDA_CODEC_CONSTRUCT(IDT, 0x76f2)
5232a1ad637SFrançois Tigeot #define HDA_CODEC_IDT92HD66C3_65	HDA_CODEC_CONSTRUCT(IDT, 0x76f3)
5242a1ad637SFrançois Tigeot #define HDA_CODEC_IDTXXXX	HDA_CODEC_CONSTRUCT(IDT, 0xffff)
5252a1ad637SFrançois Tigeot 
5262a1ad637SFrançois Tigeot /* Silicon Image */
5272a1ad637SFrançois Tigeot #define SII_VENDORID	0x1095
5282a1ad637SFrançois Tigeot #define HDA_CODEC_SII1390	HDA_CODEC_CONSTRUCT(SII, 0x1390)
5292a1ad637SFrançois Tigeot #define HDA_CODEC_SII1392	HDA_CODEC_CONSTRUCT(SII, 0x1392)
5302a1ad637SFrançois Tigeot #define HDA_CODEC_SIIXXXX	HDA_CODEC_CONSTRUCT(SII, 0xffff)
5312a1ad637SFrançois Tigeot 
5322a1ad637SFrançois Tigeot /* Lucent/Agere */
5332a1ad637SFrançois Tigeot #define AGERE_VENDORID	0x11c1
5342a1ad637SFrançois Tigeot #define HDA_CODEC_AGEREXXXX	HDA_CODEC_CONSTRUCT(AGERE, 0xffff)
5352a1ad637SFrançois Tigeot 
5362a1ad637SFrançois Tigeot /* Conexant */
5372a1ad637SFrançois Tigeot #define CONEXANT_VENDORID	0x14f1
5382a1ad637SFrançois Tigeot #define HDA_CODEC_CX20549	HDA_CODEC_CONSTRUCT(CONEXANT, 0x5045)
5392a1ad637SFrançois Tigeot #define HDA_CODEC_CX20551	HDA_CODEC_CONSTRUCT(CONEXANT, 0x5047)
5402a1ad637SFrançois Tigeot #define HDA_CODEC_CX20561	HDA_CODEC_CONSTRUCT(CONEXANT, 0x5051)
5412a1ad637SFrançois Tigeot #define HDA_CODEC_CX20582	HDA_CODEC_CONSTRUCT(CONEXANT, 0x5066)
5422a1ad637SFrançois Tigeot #define HDA_CODEC_CX20583	HDA_CODEC_CONSTRUCT(CONEXANT, 0x5067)
5432a1ad637SFrançois Tigeot #define HDA_CODEC_CX20584	HDA_CODEC_CONSTRUCT(CONEXANT, 0x5068)
5442a1ad637SFrançois Tigeot #define HDA_CODEC_CX20585	HDA_CODEC_CONSTRUCT(CONEXANT, 0x5069)
5452a1ad637SFrançois Tigeot #define HDA_CODEC_CX20588	HDA_CODEC_CONSTRUCT(CONEXANT, 0x506c)
5462a1ad637SFrançois Tigeot #define HDA_CODEC_CX20590	HDA_CODEC_CONSTRUCT(CONEXANT, 0x506e)
5472a1ad637SFrançois Tigeot #define HDA_CODEC_CX20631	HDA_CODEC_CONSTRUCT(CONEXANT, 0x5097)
5482a1ad637SFrançois Tigeot #define HDA_CODEC_CX20632	HDA_CODEC_CONSTRUCT(CONEXANT, 0x5098)
5492a1ad637SFrançois Tigeot #define HDA_CODEC_CX20641	HDA_CODEC_CONSTRUCT(CONEXANT, 0x50a1)
5502a1ad637SFrançois Tigeot #define HDA_CODEC_CX20642	HDA_CODEC_CONSTRUCT(CONEXANT, 0x50a2)
5512a1ad637SFrançois Tigeot #define HDA_CODEC_CX20651	HDA_CODEC_CONSTRUCT(CONEXANT, 0x50ab)
5522a1ad637SFrançois Tigeot #define HDA_CODEC_CX20652	HDA_CODEC_CONSTRUCT(CONEXANT, 0x50ac)
5532a1ad637SFrançois Tigeot #define HDA_CODEC_CX20664	HDA_CODEC_CONSTRUCT(CONEXANT, 0x50b8)
5542a1ad637SFrançois Tigeot #define HDA_CODEC_CX20665	HDA_CODEC_CONSTRUCT(CONEXANT, 0x50b9)
5552a1ad637SFrançois Tigeot #define HDA_CODEC_CXXXXX	HDA_CODEC_CONSTRUCT(CONEXANT, 0xffff)
5562a1ad637SFrançois Tigeot 
5572a1ad637SFrançois Tigeot /* VIA */
5582a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708_8	HDA_CODEC_CONSTRUCT(VIA, 0x1708)
5592a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708_9	HDA_CODEC_CONSTRUCT(VIA, 0x1709)
5602a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708_A	HDA_CODEC_CONSTRUCT(VIA, 0x170a)
5612a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708_B	HDA_CODEC_CONSTRUCT(VIA, 0x170b)
5622a1ad637SFrançois Tigeot #define HDA_CODEC_VT1709_0	HDA_CODEC_CONSTRUCT(VIA, 0xe710)
5632a1ad637SFrançois Tigeot #define HDA_CODEC_VT1709_1	HDA_CODEC_CONSTRUCT(VIA, 0xe711)
5642a1ad637SFrançois Tigeot #define HDA_CODEC_VT1709_2	HDA_CODEC_CONSTRUCT(VIA, 0xe712)
5652a1ad637SFrançois Tigeot #define HDA_CODEC_VT1709_3	HDA_CODEC_CONSTRUCT(VIA, 0xe713)
5662a1ad637SFrançois Tigeot #define HDA_CODEC_VT1709_4	HDA_CODEC_CONSTRUCT(VIA, 0xe714)
5672a1ad637SFrançois Tigeot #define HDA_CODEC_VT1709_5	HDA_CODEC_CONSTRUCT(VIA, 0xe715)
5682a1ad637SFrançois Tigeot #define HDA_CODEC_VT1709_6	HDA_CODEC_CONSTRUCT(VIA, 0xe716)
5692a1ad637SFrançois Tigeot #define HDA_CODEC_VT1709_7	HDA_CODEC_CONSTRUCT(VIA, 0xe717)
5702a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708B_0	HDA_CODEC_CONSTRUCT(VIA, 0xe720)
5712a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708B_1	HDA_CODEC_CONSTRUCT(VIA, 0xe721)
5722a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708B_2	HDA_CODEC_CONSTRUCT(VIA, 0xe722)
5732a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708B_3	HDA_CODEC_CONSTRUCT(VIA, 0xe723)
5742a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708B_4	HDA_CODEC_CONSTRUCT(VIA, 0xe724)
5752a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708B_5	HDA_CODEC_CONSTRUCT(VIA, 0xe725)
5762a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708B_6	HDA_CODEC_CONSTRUCT(VIA, 0xe726)
5772a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708B_7	HDA_CODEC_CONSTRUCT(VIA, 0xe727)
5782a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708S_0	HDA_CODEC_CONSTRUCT(VIA, 0x0397)
5792a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708S_1	HDA_CODEC_CONSTRUCT(VIA, 0x1397)
5802a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708S_2	HDA_CODEC_CONSTRUCT(VIA, 0x2397)
5812a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708S_3	HDA_CODEC_CONSTRUCT(VIA, 0x3397)
5822a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708S_4	HDA_CODEC_CONSTRUCT(VIA, 0x4397)
5832a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708S_5	HDA_CODEC_CONSTRUCT(VIA, 0x5397)
5842a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708S_6	HDA_CODEC_CONSTRUCT(VIA, 0x6397)
5852a1ad637SFrançois Tigeot #define HDA_CODEC_VT1708S_7	HDA_CODEC_CONSTRUCT(VIA, 0x7397)
5862a1ad637SFrançois Tigeot #define HDA_CODEC_VT1702_0	HDA_CODEC_CONSTRUCT(VIA, 0x0398)
5872a1ad637SFrançois Tigeot #define HDA_CODEC_VT1702_1	HDA_CODEC_CONSTRUCT(VIA, 0x1398)
5882a1ad637SFrançois Tigeot #define HDA_CODEC_VT1702_2	HDA_CODEC_CONSTRUCT(VIA, 0x2398)
5892a1ad637SFrançois Tigeot #define HDA_CODEC_VT1702_3	HDA_CODEC_CONSTRUCT(VIA, 0x3398)
5902a1ad637SFrançois Tigeot #define HDA_CODEC_VT1702_4	HDA_CODEC_CONSTRUCT(VIA, 0x4398)
5912a1ad637SFrançois Tigeot #define HDA_CODEC_VT1702_5	HDA_CODEC_CONSTRUCT(VIA, 0x5398)
5922a1ad637SFrançois Tigeot #define HDA_CODEC_VT1702_6	HDA_CODEC_CONSTRUCT(VIA, 0x6398)
5932a1ad637SFrançois Tigeot #define HDA_CODEC_VT1702_7	HDA_CODEC_CONSTRUCT(VIA, 0x7398)
5942a1ad637SFrançois Tigeot #define HDA_CODEC_VT1716S_0	HDA_CODEC_CONSTRUCT(VIA, 0x0433)
5952a1ad637SFrançois Tigeot #define HDA_CODEC_VT1716S_1	HDA_CODEC_CONSTRUCT(VIA, 0xa721)
5962a1ad637SFrançois Tigeot #define HDA_CODEC_VT1718S_0	HDA_CODEC_CONSTRUCT(VIA, 0x0428)
5972a1ad637SFrançois Tigeot #define HDA_CODEC_VT1718S_1	HDA_CODEC_CONSTRUCT(VIA, 0x4428)
5982a1ad637SFrançois Tigeot #define HDA_CODEC_VT1802_0	HDA_CODEC_CONSTRUCT(VIA, 0x0446)
5992a1ad637SFrançois Tigeot #define HDA_CODEC_VT1802_1	HDA_CODEC_CONSTRUCT(VIA, 0x8446)
6002a1ad637SFrançois Tigeot #define HDA_CODEC_VT1812	HDA_CODEC_CONSTRUCT(VIA, 0x0448)
6012a1ad637SFrançois Tigeot #define HDA_CODEC_VT1818S	HDA_CODEC_CONSTRUCT(VIA, 0x0440)
6022a1ad637SFrançois Tigeot #define HDA_CODEC_VT1828S	HDA_CODEC_CONSTRUCT(VIA, 0x4441)
6032a1ad637SFrançois Tigeot #define HDA_CODEC_VT2002P_0	HDA_CODEC_CONSTRUCT(VIA, 0x0438)
6042a1ad637SFrançois Tigeot #define HDA_CODEC_VT2002P_1	HDA_CODEC_CONSTRUCT(VIA, 0x4438)
6052a1ad637SFrançois Tigeot #define HDA_CODEC_VT2020	HDA_CODEC_CONSTRUCT(VIA, 0x0441)
6062a1ad637SFrançois Tigeot #define HDA_CODEC_VTXXXX	HDA_CODEC_CONSTRUCT(VIA, 0xffff)
6072a1ad637SFrançois Tigeot 
6082a1ad637SFrançois Tigeot /* ATI */
6092a1ad637SFrançois Tigeot #define HDA_CODEC_ATIRS600_1	HDA_CODEC_CONSTRUCT(ATI, 0x793c)
6102a1ad637SFrançois Tigeot #define HDA_CODEC_ATIRS600_2	HDA_CODEC_CONSTRUCT(ATI, 0x7919)
6112a1ad637SFrançois Tigeot #define HDA_CODEC_ATIRS690	HDA_CODEC_CONSTRUCT(ATI, 0x791a)
6122a1ad637SFrançois Tigeot #define HDA_CODEC_ATIR6XX	HDA_CODEC_CONSTRUCT(ATI, 0xaa01)
6132a1ad637SFrançois Tigeot #define HDA_CODEC_ATIXXXX	HDA_CODEC_CONSTRUCT(ATI, 0xffff)
6142a1ad637SFrançois Tigeot 
6152a1ad637SFrançois Tigeot /* NVIDIA */
6162a1ad637SFrançois Tigeot #define HDA_CODEC_NVIDIAMCP78	HDA_CODEC_CONSTRUCT(NVIDIA, 0x0002)
6172a1ad637SFrançois Tigeot #define HDA_CODEC_NVIDIAMCP78_2	HDA_CODEC_CONSTRUCT(NVIDIA, 0x0003)
6182a1ad637SFrançois Tigeot #define HDA_CODEC_NVIDIAMCP78_3	HDA_CODEC_CONSTRUCT(NVIDIA, 0x0005)
6192a1ad637SFrançois Tigeot #define HDA_CODEC_NVIDIAMCP78_4	HDA_CODEC_CONSTRUCT(NVIDIA, 0x0006)
6202a1ad637SFrançois Tigeot #define HDA_CODEC_NVIDIAMCP7A	HDA_CODEC_CONSTRUCT(NVIDIA, 0x0007)
6212a1ad637SFrançois Tigeot #define HDA_CODEC_NVIDIAGT220	HDA_CODEC_CONSTRUCT(NVIDIA, 0x000a)
6222a1ad637SFrançois Tigeot #define HDA_CODEC_NVIDIAGT21X	HDA_CODEC_CONSTRUCT(NVIDIA, 0x000b)
6232a1ad637SFrançois Tigeot #define HDA_CODEC_NVIDIAMCP89	HDA_CODEC_CONSTRUCT(NVIDIA, 0x000c)
6242a1ad637SFrançois Tigeot #define HDA_CODEC_NVIDIAGT240	HDA_CODEC_CONSTRUCT(NVIDIA, 0x000d)
6252a1ad637SFrançois Tigeot #define HDA_CODEC_NVIDIAGTS450	HDA_CODEC_CONSTRUCT(NVIDIA, 0x0011)
6262a1ad637SFrançois Tigeot #define HDA_CODEC_NVIDIAGT440	HDA_CODEC_CONSTRUCT(NVIDIA, 0x0014)
6272a1ad637SFrançois Tigeot #define HDA_CODEC_NVIDIAGTX550	HDA_CODEC_CONSTRUCT(NVIDIA, 0x0015)
6282a1ad637SFrançois Tigeot #define HDA_CODEC_NVIDIAGTX570	HDA_CODEC_CONSTRUCT(NVIDIA, 0x0018)
629edfd9622SSepherosa Ziehau #define HDA_CODEC_NVIDIATEGRA30	HDA_CODEC_CONSTRUCT(NVIDIA, 0x0020)
630edfd9622SSepherosa Ziehau #define HDA_CODEC_NVIDIATEGRA114 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0022)
631edfd9622SSepherosa Ziehau #define HDA_CODEC_NVIDIATEGRA124 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0028)
632edfd9622SSepherosa Ziehau #define HDA_CODEC_NVIDIATEGRA210 HDA_CODEC_CONSTRUCT(NVIDIA, 0x0029)
6332a1ad637SFrançois Tigeot #define HDA_CODEC_NVIDIAMCP67	HDA_CODEC_CONSTRUCT(NVIDIA, 0x0067)
6342a1ad637SFrançois Tigeot #define HDA_CODEC_NVIDIAMCP73	HDA_CODEC_CONSTRUCT(NVIDIA, 0x8001)
6352a1ad637SFrançois Tigeot #define HDA_CODEC_NVIDIAXXXX	HDA_CODEC_CONSTRUCT(NVIDIA, 0xffff)
6362a1ad637SFrançois Tigeot 
6372a1ad637SFrançois Tigeot /* Chrontel */
6382a1ad637SFrançois Tigeot #define CHRONTEL_VENDORID	0x17e8
6392a1ad637SFrançois Tigeot #define HDA_CODEC_CHXXXX	HDA_CODEC_CONSTRUCT(CHRONTEL, 0xffff)
6402a1ad637SFrançois Tigeot 
6412a1ad637SFrançois Tigeot /* INTEL */
6422a1ad637SFrançois Tigeot #define HDA_CODEC_INTELIP	HDA_CODEC_CONSTRUCT(INTEL, 0x0054)
6432a1ad637SFrançois Tigeot #define HDA_CODEC_INTELBL	HDA_CODEC_CONSTRUCT(INTEL, 0x2801)
6442a1ad637SFrançois Tigeot #define HDA_CODEC_INTELCA	HDA_CODEC_CONSTRUCT(INTEL, 0x2802)
6452a1ad637SFrançois Tigeot #define HDA_CODEC_INTELEL	HDA_CODEC_CONSTRUCT(INTEL, 0x2803)
6462a1ad637SFrançois Tigeot #define HDA_CODEC_INTELIP2	HDA_CODEC_CONSTRUCT(INTEL, 0x2804)
6472a1ad637SFrançois Tigeot #define HDA_CODEC_INTELCPT	HDA_CODEC_CONSTRUCT(INTEL, 0x2805)
6482a1ad637SFrançois Tigeot #define HDA_CODEC_INTELPPT	HDA_CODEC_CONSTRUCT(INTEL, 0x2806)
6492a1ad637SFrançois Tigeot #define HDA_CODEC_INTELHSW	HDA_CODEC_CONSTRUCT(INTEL, 0x2807)
650edfd9622SSepherosa Ziehau #define HDA_CODEC_INTELBDW	HDA_CODEC_CONSTRUCT(INTEL, 0x2808)
651edfd9622SSepherosa Ziehau #define HDA_CODEC_INTELSKLK	HDA_CODEC_CONSTRUCT(INTEL, 0x2809)
6522a1ad637SFrançois Tigeot #define HDA_CODEC_INTELCL	HDA_CODEC_CONSTRUCT(INTEL, 0x29fb)
6532a1ad637SFrançois Tigeot #define HDA_CODEC_INTELXXXX	HDA_CODEC_CONSTRUCT(INTEL, 0xffff)
6542a1ad637SFrançois Tigeot 
655558a398bSSimon Schubert /****************************************************************************
656558a398bSSimon Schubert  * Helper Macros
657558a398bSSimon Schubert  ****************************************************************************/
658558a398bSSimon Schubert 
6592a1ad637SFrançois Tigeot #define HDA_DMA_ALIGNMENT	128
6602a1ad637SFrançois Tigeot 
6612a1ad637SFrançois Tigeot #define HDA_BDL_MIN		2
6622a1ad637SFrançois Tigeot #define HDA_BDL_MAX		256
6632a1ad637SFrançois Tigeot #define HDA_BDL_DEFAULT		HDA_BDL_MIN
6642a1ad637SFrançois Tigeot 
6652a1ad637SFrançois Tigeot #define HDA_BLK_MIN		HDA_DMA_ALIGNMENT
6662a1ad637SFrançois Tigeot #define HDA_BLK_ALIGN		(~(HDA_BLK_MIN - 1))
6672a1ad637SFrançois Tigeot 
6682a1ad637SFrançois Tigeot #define HDA_BUFSZ_MIN		(HDA_BDL_MIN * HDA_BLK_MIN)
6692a1ad637SFrançois Tigeot #define HDA_BUFSZ_MAX		262144
6702a1ad637SFrançois Tigeot #define HDA_BUFSZ_DEFAULT	65536
6712a1ad637SFrançois Tigeot 
6722a1ad637SFrançois Tigeot #define HDA_GPIO_MAX		8
6732a1ad637SFrançois Tigeot 
6742a1ad637SFrançois Tigeot #define HDA_DEV_MATCH(fl, v)	((fl) == (v) || \
6752a1ad637SFrançois Tigeot 				(fl) == 0xffffffff || \
6762a1ad637SFrançois Tigeot 				(((fl) & 0xffff0000) == 0xffff0000 && \
6772a1ad637SFrançois Tigeot 				((fl) & 0x0000ffff) == ((v) & 0x0000ffff)) || \
6782a1ad637SFrançois Tigeot 				(((fl) & 0x0000ffff) == 0x0000ffff && \
6792a1ad637SFrançois Tigeot 				((fl) & 0xffff0000) == ((v) & 0xffff0000)))
6802a1ad637SFrançois Tigeot #define HDA_MATCH_ALL		0xffffffff
6812a1ad637SFrançois Tigeot #define HDA_INVALID		0xffffffff
6822a1ad637SFrançois Tigeot 
6832a1ad637SFrançois Tigeot #define HDA_BOOTVERBOSE(stmt)	do {			\
6842a1ad637SFrançois Tigeot 	if (bootverbose != 0 || snd_verbose > 3) {	\
6852a1ad637SFrançois Tigeot 		stmt					\
6862a1ad637SFrançois Tigeot 	}						\
6872a1ad637SFrançois Tigeot } while (0)
6882a1ad637SFrançois Tigeot 
6892a1ad637SFrançois Tigeot #define HDA_BOOTHVERBOSE(stmt)	do {			\
6902a1ad637SFrançois Tigeot 	if (snd_verbose > 3) {				\
6912a1ad637SFrançois Tigeot 		stmt					\
6922a1ad637SFrançois Tigeot 	}						\
6932a1ad637SFrançois Tigeot } while (0)
6942a1ad637SFrançois Tigeot 
6952a1ad637SFrançois Tigeot #define hda_command(dev, verb)					\
6962a1ad637SFrançois Tigeot     HDAC_CODEC_COMMAND(device_get_parent(dev), (dev), (verb))
6972a1ad637SFrançois Tigeot 
6982a1ad637SFrançois Tigeot typedef int nid_t;
6992a1ad637SFrançois Tigeot 
700558a398bSSimon Schubert /****************************************************************************
701558a398bSSimon Schubert  * Simplified Accessors for HDA devices
702558a398bSSimon Schubert  ****************************************************************************/
7032a1ad637SFrançois Tigeot 
704558a398bSSimon Schubert enum hdac_device_ivars {
7052a1ad637SFrançois Tigeot     HDA_IVAR_CODEC_ID,
7062a1ad637SFrançois Tigeot     HDA_IVAR_NODE_ID,
7072a1ad637SFrançois Tigeot     HDA_IVAR_VENDOR_ID,
7082a1ad637SFrançois Tigeot     HDA_IVAR_DEVICE_ID,
7092a1ad637SFrançois Tigeot     HDA_IVAR_REVISION_ID,
7102a1ad637SFrançois Tigeot     HDA_IVAR_STEPPING_ID,
7112a1ad637SFrançois Tigeot     HDA_IVAR_SUBVENDOR_ID,
7122a1ad637SFrançois Tigeot     HDA_IVAR_SUBDEVICE_ID,
7132a1ad637SFrançois Tigeot     HDA_IVAR_SUBSYSTEM_ID,
7142a1ad637SFrançois Tigeot     HDA_IVAR_NODE_TYPE,
7152a1ad637SFrançois Tigeot     HDA_IVAR_DMA_NOCACHE,
716558a398bSSimon Schubert };
717558a398bSSimon Schubert 
7182a1ad637SFrançois Tigeot #define HDA_ACCESSOR(var, ivar, type)					\
7192a1ad637SFrançois Tigeot     __BUS_ACCESSOR(hda, var, HDA, ivar, type)
720558a398bSSimon Schubert 
7212a1ad637SFrançois Tigeot HDA_ACCESSOR(codec_id,		CODEC_ID,	uint8_t);
7222a1ad637SFrançois Tigeot HDA_ACCESSOR(node_id,		NODE_ID,	uint8_t);
7232a1ad637SFrançois Tigeot HDA_ACCESSOR(vendor_id,		VENDOR_ID,	uint16_t);
7242a1ad637SFrançois Tigeot HDA_ACCESSOR(device_id,		DEVICE_ID,	uint16_t);
7252a1ad637SFrançois Tigeot HDA_ACCESSOR(revision_id,	REVISION_ID,	uint8_t);
7262a1ad637SFrançois Tigeot HDA_ACCESSOR(stepping_id,	STEPPING_ID,	uint8_t);
7272a1ad637SFrançois Tigeot HDA_ACCESSOR(subvendor_id,	SUBVENDOR_ID,	uint16_t);
7282a1ad637SFrançois Tigeot HDA_ACCESSOR(subdevice_id,	SUBDEVICE_ID,	uint16_t);
7292a1ad637SFrançois Tigeot HDA_ACCESSOR(subsystem_id,	SUBSYSTEM_ID,	uint32_t);
7302a1ad637SFrançois Tigeot HDA_ACCESSOR(node_type,		NODE_TYPE,	uint8_t);
7312a1ad637SFrançois Tigeot HDA_ACCESSOR(dma_nocache,	DMA_NOCACHE,	uint8_t);
732558a398bSSimon Schubert 
733558a398bSSimon Schubert #define PCIS_MULTIMEDIA_HDA    0x03
734558a398bSSimon Schubert 
735558a398bSSimon Schubert #endif
736