xref: /freebsd/usr.sbin/bhyve/hda_reg.h (revision b3e7694832e81d7a904a10f525f8797b753bf0d3)
16b021cc2SWarner Losh /*-
2*4d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
33e21da8aSMarcelo Araujo  *
46b021cc2SWarner Losh  * Copyright (c) 2006 Stephane E. Potvin <sepotvin@videotron.ca>
56b021cc2SWarner Losh  * All rights reserved.
66b021cc2SWarner Losh  *
76b021cc2SWarner Losh  * Redistribution and use in source and binary forms, with or without
86b021cc2SWarner Losh  * modification, are permitted provided that the following conditions
96b021cc2SWarner Losh  * are met:
106b021cc2SWarner Losh  * 1. Redistributions of source code must retain the above copyright
116b021cc2SWarner Losh  *    notice, this list of conditions and the following disclaimer.
126b021cc2SWarner Losh  * 2. Redistributions in binary form must reproduce the above copyright
136b021cc2SWarner Losh  *    notice, this list of conditions and the following disclaimer in the
146b021cc2SWarner Losh  *    documentation and/or other materials provided with the distribution.
156b021cc2SWarner Losh  *
166b021cc2SWarner Losh  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
176b021cc2SWarner Losh  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
186b021cc2SWarner Losh  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
196b021cc2SWarner Losh  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
206b021cc2SWarner Losh  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
216b021cc2SWarner Losh  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
226b021cc2SWarner Losh  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
236b021cc2SWarner Losh  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
246b021cc2SWarner Losh  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
256b021cc2SWarner Losh  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
266b021cc2SWarner Losh  * SUCH DAMAGE.
276b021cc2SWarner Losh  */
286b021cc2SWarner Losh 
296b021cc2SWarner Losh #ifndef _HDA_REG_H_
306b021cc2SWarner Losh #define _HDA_REG_H_
316b021cc2SWarner Losh 
326b021cc2SWarner Losh /****************************************************************************
336b021cc2SWarner Losh  * HDA Device Verbs
346b021cc2SWarner Losh  ****************************************************************************/
356b021cc2SWarner Losh 
366b021cc2SWarner Losh /* HDA Command */
376b021cc2SWarner Losh #define HDA_CMD_VERB_MASK				0x000fffff
386b021cc2SWarner Losh #define HDA_CMD_VERB_SHIFT				0
396b021cc2SWarner Losh #define HDA_CMD_NID_MASK				0x0ff00000
406b021cc2SWarner Losh #define HDA_CMD_NID_SHIFT				20
416b021cc2SWarner Losh #define HDA_CMD_CAD_MASK				0xf0000000
426b021cc2SWarner Losh #define HDA_CMD_CAD_SHIFT				28
436b021cc2SWarner Losh 
446b021cc2SWarner Losh #define HDA_CMD_VERB_4BIT_SHIFT				16
456b021cc2SWarner Losh #define HDA_CMD_VERB_12BIT_SHIFT			8
466b021cc2SWarner Losh 
476b021cc2SWarner Losh #define HDA_CMD_VERB_4BIT(verb, payload)				\
486b021cc2SWarner Losh     (((verb) << HDA_CMD_VERB_4BIT_SHIFT) | (payload))
496b021cc2SWarner Losh #define HDA_CMD_4BIT(cad, nid, verb, payload)				\
506b021cc2SWarner Losh     (((cad) << HDA_CMD_CAD_SHIFT) |					\
516b021cc2SWarner Losh     ((nid) << HDA_CMD_NID_SHIFT) |					\
526b021cc2SWarner Losh     (HDA_CMD_VERB_4BIT((verb), (payload))))
536b021cc2SWarner Losh 
546b021cc2SWarner Losh #define HDA_CMD_VERB_12BIT(verb, payload)				\
556b021cc2SWarner Losh     (((verb) << HDA_CMD_VERB_12BIT_SHIFT) | (payload))
566b021cc2SWarner Losh #define HDA_CMD_12BIT(cad, nid, verb, payload)				\
576b021cc2SWarner Losh     (((cad) << HDA_CMD_CAD_SHIFT) |					\
586b021cc2SWarner Losh     ((nid) << HDA_CMD_NID_SHIFT) |					\
596b021cc2SWarner Losh     (HDA_CMD_VERB_12BIT((verb), (payload))))
606b021cc2SWarner Losh 
616b021cc2SWarner Losh /* Get Parameter */
626b021cc2SWarner Losh #define HDA_CMD_VERB_GET_PARAMETER			0xf00
636b021cc2SWarner Losh 
646b021cc2SWarner Losh #define HDA_CMD_GET_PARAMETER(cad, nid, payload)			\
656b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
666b021cc2SWarner Losh     HDA_CMD_VERB_GET_PARAMETER, (payload)))
676b021cc2SWarner Losh 
686b021cc2SWarner Losh /* Connection Select Control */
696b021cc2SWarner Losh #define HDA_CMD_VERB_GET_CONN_SELECT_CONTROL		0xf01
706b021cc2SWarner Losh #define HDA_CMD_VERB_SET_CONN_SELECT_CONTROL		0x701
716b021cc2SWarner Losh 
726b021cc2SWarner Losh #define HDA_CMD_GET_CONN_SELECT_CONTROL(cad, nid)			\
736b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
746b021cc2SWarner Losh     HDA_CMD_VERB_GET_CONN_SELECT_CONTROL, 0x0))
756b021cc2SWarner Losh #define HDA_CMD_SET_CONNECTION_SELECT_CONTROL(cad, nid, payload)	\
766b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
776b021cc2SWarner Losh     HDA_CMD_VERB_SET_CONN_SELECT_CONTROL, (payload)))
786b021cc2SWarner Losh 
796b021cc2SWarner Losh /* Connection List Entry */
806b021cc2SWarner Losh #define HDA_CMD_VERB_GET_CONN_LIST_ENTRY		0xf02
816b021cc2SWarner Losh 
826b021cc2SWarner Losh #define HDA_CMD_GET_CONN_LIST_ENTRY(cad, nid, payload)			\
836b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
846b021cc2SWarner Losh     HDA_CMD_VERB_GET_CONN_LIST_ENTRY, (payload)))
856b021cc2SWarner Losh 
866b021cc2SWarner Losh #define HDA_CMD_GET_CONN_LIST_ENTRY_SIZE_SHORT		1
876b021cc2SWarner Losh #define HDA_CMD_GET_CONN_LIST_ENTRY_SIZE_LONG		2
886b021cc2SWarner Losh 
896b021cc2SWarner Losh /* Processing State */
906b021cc2SWarner Losh #define HDA_CMD_VERB_GET_PROCESSING_STATE		0xf03
916b021cc2SWarner Losh #define HDA_CMD_VERB_SET_PROCESSING_STATE		0x703
926b021cc2SWarner Losh 
936b021cc2SWarner Losh #define HDA_CMD_GET_PROCESSING_STATE(cad, nid)				\
946b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
956b021cc2SWarner Losh     HDA_CMD_VERB_GET_PROCESSING_STATE, 0x0))
966b021cc2SWarner Losh #define HDA_CMD_SET_PROCESSING_STATE(cad, nid, payload)			\
976b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
986b021cc2SWarner Losh     HDA_CMD_VERB_SET_PROCESSING_STATE, (payload)))
996b021cc2SWarner Losh 
1006b021cc2SWarner Losh #define HDA_CMD_GET_PROCESSING_STATE_STATE_OFF		0x00
1016b021cc2SWarner Losh #define HDA_CMD_GET_PROCESSING_STATE_STATE_ON		0x01
1026b021cc2SWarner Losh #define HDA_CMD_GET_PROCESSING_STATE_STATE_BENIGN	0x02
1036b021cc2SWarner Losh 
1046b021cc2SWarner Losh /* Coefficient Index */
1056b021cc2SWarner Losh #define HDA_CMD_VERB_GET_COEFF_INDEX			0xd
1066b021cc2SWarner Losh #define HDA_CMD_VERB_SET_COEFF_INDEX			0x5
1076b021cc2SWarner Losh 
1086b021cc2SWarner Losh #define HDA_CMD_GET_COEFF_INDEX(cad, nid)				\
1096b021cc2SWarner Losh     (HDA_CMD_4BIT((cad), (nid),						\
1106b021cc2SWarner Losh     HDA_CMD_VERB_GET_COEFF_INDEX, 0x0))
1116b021cc2SWarner Losh #define HDA_CMD_SET_COEFF_INDEX(cad, nid, payload)			\
1126b021cc2SWarner Losh     (HDA_CMD_4BIT((cad), (nid),						\
1136b021cc2SWarner Losh     HDA_CMD_VERB_SET_COEFF_INDEX, (payload)))
1146b021cc2SWarner Losh 
1156b021cc2SWarner Losh /* Processing Coefficient */
1166b021cc2SWarner Losh #define HDA_CMD_VERB_GET_PROCESSING_COEFF		0xc
1176b021cc2SWarner Losh #define HDA_CMD_VERB_SET_PROCESSING_COEFF		0x4
1186b021cc2SWarner Losh 
1196b021cc2SWarner Losh #define HDA_CMD_GET_PROCESSING_COEFF(cad, nid)				\
1206b021cc2SWarner Losh     (HDA_CMD_4BIT((cad), (nid),						\
1216b021cc2SWarner Losh     HDA_CMD_VERB_GET_PROCESSING_COEFF, 0x0))
1226b021cc2SWarner Losh #define HDA_CMD_SET_PROCESSING_COEFF(cad, nid, payload)			\
1236b021cc2SWarner Losh     (HDA_CMD_4BIT((cad), (nid),						\
1246b021cc2SWarner Losh     HDA_CMD_VERB_SET_PROCESSING_COEFF, (payload)))
1256b021cc2SWarner Losh 
1266b021cc2SWarner Losh /* Amplifier Gain/Mute */
1276b021cc2SWarner Losh #define HDA_CMD_VERB_GET_AMP_GAIN_MUTE			0xb
1286b021cc2SWarner Losh #define HDA_CMD_VERB_SET_AMP_GAIN_MUTE			0x3
1296b021cc2SWarner Losh 
1306b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE(cad, nid, payload)			\
1316b021cc2SWarner Losh     (HDA_CMD_4BIT((cad), (nid),						\
1326b021cc2SWarner Losh     HDA_CMD_VERB_GET_AMP_GAIN_MUTE, (payload)))
1336b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE(cad, nid, payload)			\
1346b021cc2SWarner Losh     (HDA_CMD_4BIT((cad), (nid),						\
1356b021cc2SWarner Losh     HDA_CMD_VERB_SET_AMP_GAIN_MUTE, (payload)))
1366b021cc2SWarner Losh 
1376b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_INPUT		0x0000
1386b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_OUTPUT	0x8000
1396b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_RIGHT		0x0000
1406b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_LEFT		0x2000
1416b021cc2SWarner Losh 
1426b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_MASK	0x00000008
1436b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_SHIFT	7
1446b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_MASK	0x00000007
1456b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_SHIFT	0
1466b021cc2SWarner Losh 
1476b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_MUTE(rsp)				\
1486b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_MASK) >>			\
1496b021cc2SWarner Losh     HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_SHIFT)
1506b021cc2SWarner Losh #define HDA_CMD_GET_AMP_GAIN_MUTE_GAIN(rsp)				\
1516b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_MASK) >>			\
1526b021cc2SWarner Losh     HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_SHIFT)
1536b021cc2SWarner Losh 
1546b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_OUTPUT	0x8000
1556b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_INPUT		0x4000
1566b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_LEFT		0x2000
1576b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_RIGHT		0x1000
1586b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_MASK	0x0f00
1596b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_SHIFT	8
1606b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_MUTE		0x0080
1616b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_MASK	0x0007
1626b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_SHIFT	0
1636b021cc2SWarner Losh 
1646b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_INDEX(index)				\
1656b021cc2SWarner Losh     (((index) << HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_SHIFT) &		\
1666b021cc2SWarner Losh     HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_MASK)
1676b021cc2SWarner Losh #define HDA_CMD_SET_AMP_GAIN_MUTE_GAIN(index)				\
1686b021cc2SWarner Losh     (((index) << HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_SHIFT) &		\
1696b021cc2SWarner Losh     HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_MASK)
1706b021cc2SWarner Losh 
1716b021cc2SWarner Losh /* Converter format */
1726b021cc2SWarner Losh #define HDA_CMD_VERB_GET_CONV_FMT			0xa
1736b021cc2SWarner Losh #define HDA_CMD_VERB_SET_CONV_FMT			0x2
1746b021cc2SWarner Losh 
1756b021cc2SWarner Losh #define HDA_CMD_GET_CONV_FMT(cad, nid)					\
1766b021cc2SWarner Losh     (HDA_CMD_4BIT((cad), (nid),						\
1776b021cc2SWarner Losh     HDA_CMD_VERB_GET_CONV_FMT, 0x0))
1786b021cc2SWarner Losh #define HDA_CMD_SET_CONV_FMT(cad, nid, payload)				\
1796b021cc2SWarner Losh     (HDA_CMD_4BIT((cad), (nid),						\
1806b021cc2SWarner Losh     HDA_CMD_VERB_SET_CONV_FMT, (payload)))
1816b021cc2SWarner Losh 
1826b021cc2SWarner Losh /* Digital Converter Control */
1836b021cc2SWarner Losh #define HDA_CMD_VERB_GET_DIGITAL_CONV_FMT1		0xf0d
1846b021cc2SWarner Losh #define HDA_CMD_VERB_GET_DIGITAL_CONV_FMT2		0xf0e
1856b021cc2SWarner Losh #define HDA_CMD_VERB_SET_DIGITAL_CONV_FMT1		0x70d
1866b021cc2SWarner Losh #define HDA_CMD_VERB_SET_DIGITAL_CONV_FMT2		0x70e
1876b021cc2SWarner Losh 
1886b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT(cad, nid)				\
1896b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
1906b021cc2SWarner Losh     HDA_CMD_VERB_GET_DIGITAL_CONV_FMT1, 0x0))
1916b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT1(cad, nid, payload)		\
1926b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
1936b021cc2SWarner Losh     HDA_CMD_VERB_SET_DIGITAL_CONV_FMT1, (payload)))
1946b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT2(cad, nid, payload)		\
1956b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
1966b021cc2SWarner Losh     HDA_CMD_VERB_SET_DIGITAL_CONV_FMT2, (payload)))
1976b021cc2SWarner Losh 
1986b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_CC_MASK		0x7f00
1996b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_CC_SHIFT		8
2006b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_L_MASK		0x0080
2016b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_L_SHIFT		7
2026b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_MASK		0x0040
2036b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_SHIFT		6
2046b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_MASK	0x0020
2056b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_SHIFT	5
2066b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_MASK		0x0010
2076b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_SHIFT		4
2086b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_MASK		0x0008
2096b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_SHIFT		3
2106b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_MASK		0x0004
2116b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_SHIFT		2
2126b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_V_MASK		0x0002
2136b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_V_SHIFT		1
2146b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_MASK		0x0001
2156b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_SHIFT	0
2166b021cc2SWarner Losh 
2176b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_CC(rsp)				\
2186b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_CC_MASK) >>			\
2196b021cc2SWarner Losh     HDA_CMD_GET_DIGITAL_CONV_FMT_CC_SHIFT)
2206b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_L(rsp)				\
2216b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_L_MASK) >>			\
2226b021cc2SWarner Losh     HDA_CMD_GET_DIGITAL_CONV_FMT_L_SHIFT)
2236b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRO(rsp)				\
2246b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_MASK) >>			\
2256b021cc2SWarner Losh     HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_SHIFT)
2266b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO(rsp)			\
2276b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_MASK) >>		\
2286b021cc2SWarner Losh     HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_SHIFT)
2296b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_COPY(rsp)				\
2306b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_MASK) >>		\
2316b021cc2SWarner Losh     HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_SHIFT)
2326b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRE(rsp)				\
2336b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_MASK) >>			\
2346b021cc2SWarner Losh     HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_SHIFT)
2356b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG(rsp)				\
2366b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_MASK) >>		\
2376b021cc2SWarner Losh     HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_SHIFT)
2386b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_V(rsp)				\
2396b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_V_MASK) >>			\
2406b021cc2SWarner Losh     HDA_CMD_GET_DIGITAL_CONV_FMT_V_SHIFT)
2416b021cc2SWarner Losh #define HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN(rsp)				\
2426b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_MASK) >>		\
2436b021cc2SWarner Losh     HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_SHIFT)
2446b021cc2SWarner Losh 
2456b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT1_L			0x80
2466b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT1_PRO		0x40
2476b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT1_NAUDIO		0x20
2486b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT1_COPY		0x10
2496b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT1_PRE		0x08
2506b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT1_VCFG		0x04
2516b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT1_V			0x02
2526b021cc2SWarner Losh #define HDA_CMD_SET_DIGITAL_CONV_FMT1_DIGEN		0x01
2536b021cc2SWarner Losh 
2546b021cc2SWarner Losh /* Power State */
2556b021cc2SWarner Losh #define HDA_CMD_VERB_GET_POWER_STATE			0xf05
2566b021cc2SWarner Losh #define HDA_CMD_VERB_SET_POWER_STATE			0x705
2576b021cc2SWarner Losh 
2586b021cc2SWarner Losh #define HDA_CMD_GET_POWER_STATE(cad, nid)				\
2596b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
2606b021cc2SWarner Losh     HDA_CMD_VERB_GET_POWER_STATE, 0x0))
2616b021cc2SWarner Losh #define HDA_CMD_SET_POWER_STATE(cad, nid, payload)			\
2626b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
2636b021cc2SWarner Losh     HDA_CMD_VERB_SET_POWER_STATE, (payload)))
2646b021cc2SWarner Losh 
2656b021cc2SWarner Losh #define HDA_CMD_POWER_STATE_D0				0x00
2666b021cc2SWarner Losh #define HDA_CMD_POWER_STATE_D1				0x01
2676b021cc2SWarner Losh #define HDA_CMD_POWER_STATE_D2				0x02
2686b021cc2SWarner Losh #define HDA_CMD_POWER_STATE_D3				0x03
2696b021cc2SWarner Losh 
2706b021cc2SWarner Losh #define HDA_CMD_POWER_STATE_ACT_MASK			0x000000f0
2716b021cc2SWarner Losh #define HDA_CMD_POWER_STATE_ACT_SHIFT			4
2726b021cc2SWarner Losh #define HDA_CMD_POWER_STATE_SET_MASK			0x0000000f
2736b021cc2SWarner Losh #define HDA_CMD_POWER_STATE_SET_SHIFT			0
2746b021cc2SWarner Losh 
2756b021cc2SWarner Losh #define HDA_CMD_GET_POWER_STATE_ACT(rsp)				\
2766b021cc2SWarner Losh     (((rsp) & HDA_CMD_POWER_STATE_ACT_MASK) >>				\
2776b021cc2SWarner Losh     HDA_CMD_POWER_STATE_ACT_SHIFT)
2786b021cc2SWarner Losh #define HDA_CMD_GET_POWER_STATE_SET(rsp)				\
2796b021cc2SWarner Losh     (((rsp) & HDA_CMD_POWER_STATE_SET_MASK) >>				\
2806b021cc2SWarner Losh     HDA_CMD_POWER_STATE_SET_SHIFT)
2816b021cc2SWarner Losh 
2826b021cc2SWarner Losh #define HDA_CMD_SET_POWER_STATE_ACT(ps)					\
2836b021cc2SWarner Losh     (((ps) << HDA_CMD_POWER_STATE_ACT_SHIFT) &				\
2846b021cc2SWarner Losh     HDA_CMD_POWER_STATE_ACT_MASK)
2856b021cc2SWarner Losh #define HDA_CMD_SET_POWER_STATE_SET(ps)					\
2866b021cc2SWarner Losh     (((ps) << HDA_CMD_POWER_STATE_SET_SHIFT) &				\
2876b021cc2SWarner Losh     HDA_CMD_POWER_STATE_ACT_MASK)
2886b021cc2SWarner Losh 
2896b021cc2SWarner Losh /* Converter Stream, Channel */
2906b021cc2SWarner Losh #define HDA_CMD_VERB_GET_CONV_STREAM_CHAN		0xf06
2916b021cc2SWarner Losh #define HDA_CMD_VERB_SET_CONV_STREAM_CHAN		0x706
2926b021cc2SWarner Losh 
2936b021cc2SWarner Losh #define HDA_CMD_GET_CONV_STREAM_CHAN(cad, nid)				\
2946b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
2956b021cc2SWarner Losh     HDA_CMD_VERB_GET_CONV_STREAM_CHAN, 0x0))
2966b021cc2SWarner Losh #define HDA_CMD_SET_CONV_STREAM_CHAN(cad, nid, payload)			\
2976b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
2986b021cc2SWarner Losh     HDA_CMD_VERB_SET_CONV_STREAM_CHAN, (payload)))
2996b021cc2SWarner Losh 
3006b021cc2SWarner Losh #define HDA_CMD_CONV_STREAM_CHAN_STREAM_MASK		0x000000f0
3016b021cc2SWarner Losh #define HDA_CMD_CONV_STREAM_CHAN_STREAM_SHIFT		4
3026b021cc2SWarner Losh #define HDA_CMD_CONV_STREAM_CHAN_CHAN_MASK		0x0000000f
3036b021cc2SWarner Losh #define HDA_CMD_CONV_STREAM_CHAN_CHAN_SHIFT		0
3046b021cc2SWarner Losh 
3056b021cc2SWarner Losh #define HDA_CMD_GET_CONV_STREAM_CHAN_STREAM(rsp)			\
3066b021cc2SWarner Losh     (((rsp) & HDA_CMD_CONV_STREAM_CHAN_STREAM_MASK) >>			\
3076b021cc2SWarner Losh     HDA_CMD_CONV_STREAM_CHAN_STREAM_SHIFT)
3086b021cc2SWarner Losh #define HDA_CMD_GET_CONV_STREAM_CHAN_CHAN(rsp)				\
3096b021cc2SWarner Losh     (((rsp) & HDA_CMD_CONV_STREAM_CHAN_CHAN_MASK) >>			\
3106b021cc2SWarner Losh     HDA_CMD_CONV_STREAM_CHAN_CHAN_SHIFT)
3116b021cc2SWarner Losh 
3126b021cc2SWarner Losh #define HDA_CMD_SET_CONV_STREAM_CHAN_STREAM(param)			\
3136b021cc2SWarner Losh     (((param) << HDA_CMD_CONV_STREAM_CHAN_STREAM_SHIFT) &		\
3146b021cc2SWarner Losh     HDA_CMD_CONV_STREAM_CHAN_STREAM_MASK)
3156b021cc2SWarner Losh #define HDA_CMD_SET_CONV_STREAM_CHAN_CHAN(param)			\
3166b021cc2SWarner Losh     (((param) << HDA_CMD_CONV_STREAM_CHAN_CHAN_SHIFT) &			\
3176b021cc2SWarner Losh     HDA_CMD_CONV_STREAM_CHAN_CHAN_MASK)
3186b021cc2SWarner Losh 
3196b021cc2SWarner Losh /* Input Converter SDI Select */
3206b021cc2SWarner Losh #define HDA_CMD_VERB_GET_INPUT_CONVERTER_SDI_SELECT	0xf04
3216b021cc2SWarner Losh #define HDA_CMD_VERB_SET_INPUT_CONVERTER_SDI_SELECT	0x704
3226b021cc2SWarner Losh 
3236b021cc2SWarner Losh #define HDA_CMD_GET_INPUT_CONVERTER_SDI_SELECT(cad, nid)		\
3246b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
3256b021cc2SWarner Losh     HDA_CMD_VERB_GET_INPUT_CONVERTER_SDI_SELECT, 0x0))
3266b021cc2SWarner Losh #define HDA_CMD_SET_INPUT_CONVERTER_SDI_SELECT(cad, nid, payload)	\
3276b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
3286b021cc2SWarner Losh     HDA_CMD_VERB_SET_INPUT_CONVERTER_SDI_SELECT, (payload)))
3296b021cc2SWarner Losh 
3306b021cc2SWarner Losh /* Pin Widget Control */
3316b021cc2SWarner Losh #define HDA_CMD_VERB_GET_PIN_WIDGET_CTRL		0xf07
3326b021cc2SWarner Losh #define HDA_CMD_VERB_SET_PIN_WIDGET_CTRL		0x707
3336b021cc2SWarner Losh 
3346b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL(cad, nid)				\
3356b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
3366b021cc2SWarner Losh     HDA_CMD_VERB_GET_PIN_WIDGET_CTRL, 0x0))
3376b021cc2SWarner Losh #define HDA_CMD_SET_PIN_WIDGET_CTRL(cad, nid, payload)			\
3386b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
3396b021cc2SWarner Losh     HDA_CMD_VERB_SET_PIN_WIDGET_CTRL, (payload)))
3406b021cc2SWarner Losh 
3416b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_MASK	0x00000080
3426b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_SHIFT	7
3436b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE_MASK	0x00000040
3446b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE_SHIFT	6
3456b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_MASK	0x00000020
3466b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_SHIFT	5
3476b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK	0x00000007
3486b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT	0
3496b021cc2SWarner Losh 
3506b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE(rsp)			\
3516b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_MASK) >>		\
3526b021cc2SWarner Losh     HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_SHIFT)
3536b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE(rsp)			\
3546b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE_MASK) >>		\
3556b021cc2SWarner Losh     HDA_GET_CMD_PIN_WIDGET_CTRL_OUT_ENABLE_SHIFT)
3566b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE(rsp)			\
3576b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_MASK) >>		\
3586b021cc2SWarner Losh     HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_SHIFT)
3596b021cc2SWarner Losh #define HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE(rsp)			\
3606b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK) >>		\
3616b021cc2SWarner Losh     HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT)
3626b021cc2SWarner Losh 
3636b021cc2SWarner Losh #define HDA_CMD_SET_PIN_WIDGET_CTRL_HPHN_ENABLE		0x80
3646b021cc2SWarner Losh #define HDA_CMD_SET_PIN_WIDGET_CTRL_OUT_ENABLE		0x40
3656b021cc2SWarner Losh #define HDA_CMD_SET_PIN_WIDGET_CTRL_IN_ENABLE		0x20
3666b021cc2SWarner Losh #define HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK	0x07
3676b021cc2SWarner Losh #define HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT	0
3686b021cc2SWarner Losh 
3696b021cc2SWarner Losh #define HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE(param)			\
3706b021cc2SWarner Losh     (((param) << HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT) &	\
3716b021cc2SWarner Losh     HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK)
3726b021cc2SWarner Losh 
3736b021cc2SWarner Losh #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_HIZ		0
3746b021cc2SWarner Losh #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_50		1
3756b021cc2SWarner Losh #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_GROUND	2
3766b021cc2SWarner Losh #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_80		4
3776b021cc2SWarner Losh #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_100		5
3786b021cc2SWarner Losh 
3796b021cc2SWarner Losh /* Unsolicited Response */
3806b021cc2SWarner Losh #define HDA_CMD_VERB_GET_UNSOLICITED_RESPONSE		0xf08
3816b021cc2SWarner Losh #define HDA_CMD_VERB_SET_UNSOLICITED_RESPONSE		0x708
3826b021cc2SWarner Losh 
3836b021cc2SWarner Losh #define HDA_CMD_GET_UNSOLICITED_RESPONSE(cad, nid)			\
3846b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
3856b021cc2SWarner Losh     HDA_CMD_VERB_GET_UNSOLICITED_RESPONSE, 0x0))
3866b021cc2SWarner Losh #define HDA_CMD_SET_UNSOLICITED_RESPONSE(cad, nid, payload)		\
3876b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
3886b021cc2SWarner Losh     HDA_CMD_VERB_SET_UNSOLICITED_RESPONSE, (payload)))
3896b021cc2SWarner Losh 
3906b021cc2SWarner Losh #define HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_MASK	0x00000080
3916b021cc2SWarner Losh #define HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_SHIFT	7
3926b021cc2SWarner Losh #define HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_MASK	0x0000001f
3936b021cc2SWarner Losh #define HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_SHIFT	0
3946b021cc2SWarner Losh 
3956b021cc2SWarner Losh #define HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE(rsp)			\
3966b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_MASK) >>		\
3976b021cc2SWarner Losh     HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_SHIFT)
3986b021cc2SWarner Losh #define HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG(rsp)			\
3996b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_MASK) >>		\
4006b021cc2SWarner Losh     HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_SHIFT)
4016b021cc2SWarner Losh 
4026b021cc2SWarner Losh #define HDA_CMD_SET_UNSOLICITED_RESPONSE_ENABLE		0x80
4036b021cc2SWarner Losh #define HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_MASK	0x3f
4046b021cc2SWarner Losh #define HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_SHIFT	0
4056b021cc2SWarner Losh 
4066b021cc2SWarner Losh #define HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG(param)			\
4076b021cc2SWarner Losh     (((param) << HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_SHIFT) &		\
4086b021cc2SWarner Losh     HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_MASK)
4096b021cc2SWarner Losh 
4106b021cc2SWarner Losh /* Pin Sense */
4116b021cc2SWarner Losh #define HDA_CMD_VERB_GET_PIN_SENSE			0xf09
4126b021cc2SWarner Losh #define HDA_CMD_VERB_SET_PIN_SENSE			0x709
4136b021cc2SWarner Losh 
4146b021cc2SWarner Losh #define HDA_CMD_GET_PIN_SENSE(cad, nid)					\
4156b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
4166b021cc2SWarner Losh     HDA_CMD_VERB_GET_PIN_SENSE, 0x0))
4176b021cc2SWarner Losh #define HDA_CMD_SET_PIN_SENSE(cad, nid, payload)			\
4186b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
4196b021cc2SWarner Losh     HDA_CMD_VERB_SET_PIN_SENSE, (payload)))
4206b021cc2SWarner Losh 
4216b021cc2SWarner Losh #define HDA_CMD_GET_PIN_SENSE_PRESENCE_DETECT		0x80000000
4226b021cc2SWarner Losh #define HDA_CMD_GET_PIN_SENSE_ELD_VALID			0x40000000
4236b021cc2SWarner Losh #define HDA_CMD_GET_PIN_SENSE_IMP_SENSE_MASK		0x7fffffff
4246b021cc2SWarner Losh #define HDA_CMD_GET_PIN_SENSE_IMP_SENSE_SHIFT		0
4256b021cc2SWarner Losh 
4266b021cc2SWarner Losh #define HDA_CMD_GET_PIN_SENSE_IMP_SENSE(rsp)				\
4276b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_PIN_SENSE_IMP_SENSE_MASK) >>			\
4286b021cc2SWarner Losh     HDA_CMD_GET_PIN_SENSE_IMP_SENSE_SHIFT)
4296b021cc2SWarner Losh 
4306b021cc2SWarner Losh #define HDA_CMD_GET_PIN_SENSE_IMP_SENSE_INVALID		0x7fffffff
4316b021cc2SWarner Losh 
4326b021cc2SWarner Losh #define HDA_CMD_SET_PIN_SENSE_LEFT_CHANNEL		0x00
4336b021cc2SWarner Losh #define HDA_CMD_SET_PIN_SENSE_RIGHT_CHANNEL		0x01
4346b021cc2SWarner Losh 
4356b021cc2SWarner Losh /* EAPD/BTL Enable */
4366b021cc2SWarner Losh #define HDA_CMD_VERB_GET_EAPD_BTL_ENABLE		0xf0c
4376b021cc2SWarner Losh #define HDA_CMD_VERB_SET_EAPD_BTL_ENABLE		0x70c
4386b021cc2SWarner Losh 
4396b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE(cad, nid)				\
4406b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
4416b021cc2SWarner Losh     HDA_CMD_VERB_GET_EAPD_BTL_ENABLE, 0x0))
4426b021cc2SWarner Losh #define HDA_CMD_SET_EAPD_BTL_ENABLE(cad, nid, payload)			\
4436b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
4446b021cc2SWarner Losh     HDA_CMD_VERB_SET_EAPD_BTL_ENABLE, (payload)))
4456b021cc2SWarner Losh 
4466b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_MASK	0x00000004
4476b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_SHIFT	2
4486b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_MASK		0x00000002
4496b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_SHIFT		1
4506b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_MASK		0x00000001
4516b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_SHIFT		0
4526b021cc2SWarner Losh 
4536b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP(rsp)			\
4546b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_MASK) >>		\
4556b021cc2SWarner Losh     HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_SHIFT)
4566b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD(rsp)				\
4576b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_MASK) >>			\
4586b021cc2SWarner Losh     HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_SHIFT)
4596b021cc2SWarner Losh #define HDA_CMD_GET_EAPD_BTL_ENABLE_BTL(rsp)				\
4606b021cc2SWarner Losh     (((rsp) & HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_MASK) >>			\
4616b021cc2SWarner Losh     HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_SHIFT)
4626b021cc2SWarner Losh 
4636b021cc2SWarner Losh #define HDA_CMD_SET_EAPD_BTL_ENABLE_LR_SWAP		0x04
4646b021cc2SWarner Losh #define HDA_CMD_SET_EAPD_BTL_ENABLE_EAPD		0x02
4656b021cc2SWarner Losh #define HDA_CMD_SET_EAPD_BTL_ENABLE_BTL			0x01
4666b021cc2SWarner Losh 
4676b021cc2SWarner Losh /* GPI Data */
4686b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPI_DATA			0xf10
4696b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPI_DATA			0x710
4706b021cc2SWarner Losh 
4716b021cc2SWarner Losh #define HDA_CMD_GET_GPI_DATA(cad, nid)					\
4726b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
4736b021cc2SWarner Losh     HDA_CMD_VERB_GET_GPI_DATA, 0x0))
4746b021cc2SWarner Losh #define HDA_CMD_SET_GPI_DATA(cad, nid)					\
4756b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
4766b021cc2SWarner Losh     HDA_CMD_VERB_SET_GPI_DATA, (payload)))
4776b021cc2SWarner Losh 
4786b021cc2SWarner Losh /* GPI Wake Enable Mask */
4796b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPI_WAKE_ENABLE_MASK		0xf11
4806b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPI_WAKE_ENABLE_MASK		0x711
4816b021cc2SWarner Losh 
4826b021cc2SWarner Losh #define HDA_CMD_GET_GPI_WAKE_ENABLE_MASK(cad, nid)			\
4836b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
4846b021cc2SWarner Losh     HDA_CMD_VERB_GET_GPI_WAKE_ENABLE_MASK, 0x0))
4856b021cc2SWarner Losh #define HDA_CMD_SET_GPI_WAKE_ENABLE_MASK(cad, nid, payload)		\
4866b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
4876b021cc2SWarner Losh     HDA_CMD_VERB_SET_GPI_WAKE_ENABLE_MASK, (payload)))
4886b021cc2SWarner Losh 
4896b021cc2SWarner Losh /* GPI Unsolicited Enable Mask */
4906b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPI_UNSOLICITED_ENABLE_MASK	0xf12
4916b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPI_UNSOLICITED_ENABLE_MASK	0x712
4926b021cc2SWarner Losh 
4936b021cc2SWarner Losh #define HDA_CMD_GET_GPI_UNSOLICITED_ENABLE_MASK(cad, nid)		\
4946b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
4956b021cc2SWarner Losh     HDA_CMD_VERB_GET_GPI_UNSOLICITED_ENABLE_MASK, 0x0))
4966b021cc2SWarner Losh #define HDA_CMD_SET_GPI_UNSOLICITED_ENABLE_MASK(cad, nid, payload)	\
4976b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
4986b021cc2SWarner Losh     HDA_CMD_VERB_SET_GPI_UNSOLICITED_ENABLE_MASK, (payload)))
4996b021cc2SWarner Losh 
5006b021cc2SWarner Losh /* GPI Sticky Mask */
5016b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPI_STICKY_MASK		0xf13
5026b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPI_STICKY_MASK		0x713
5036b021cc2SWarner Losh 
5046b021cc2SWarner Losh #define HDA_CMD_GET_GPI_STICKY_MASK(cad, nid)				\
5056b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
5066b021cc2SWarner Losh     HDA_CMD_VERB_GET_GPI_STICKY_MASK, 0x0))
5076b021cc2SWarner Losh #define HDA_CMD_SET_GPI_STICKY_MASK(cad, nid, payload)			\
5086b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
5096b021cc2SWarner Losh     HDA_CMD_VERB_SET_GPI_STICKY_MASK, (payload)))
5106b021cc2SWarner Losh 
5116b021cc2SWarner Losh /* GPO Data */
5126b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPO_DATA			0xf14
5136b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPO_DATA			0x714
5146b021cc2SWarner Losh 
5156b021cc2SWarner Losh #define HDA_CMD_GET_GPO_DATA(cad, nid)					\
5166b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
5176b021cc2SWarner Losh     HDA_CMD_VERB_GET_GPO_DATA, 0x0))
5186b021cc2SWarner Losh #define HDA_CMD_SET_GPO_DATA(cad, nid, payload)				\
5196b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
5206b021cc2SWarner Losh     HDA_CMD_VERB_SET_GPO_DATA, (payload)))
5216b021cc2SWarner Losh 
5226b021cc2SWarner Losh /* GPIO Data */
5236b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPIO_DATA			0xf15
5246b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPIO_DATA			0x715
5256b021cc2SWarner Losh 
5266b021cc2SWarner Losh #define HDA_CMD_GET_GPIO_DATA(cad, nid)					\
5276b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
5286b021cc2SWarner Losh     HDA_CMD_VERB_GET_GPIO_DATA, 0x0))
5296b021cc2SWarner Losh #define HDA_CMD_SET_GPIO_DATA(cad, nid, payload)			\
5306b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
5316b021cc2SWarner Losh     HDA_CMD_VERB_SET_GPIO_DATA, (payload)))
5326b021cc2SWarner Losh 
5336b021cc2SWarner Losh /* GPIO Enable Mask */
5346b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPIO_ENABLE_MASK		0xf16
5356b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPIO_ENABLE_MASK		0x716
5366b021cc2SWarner Losh 
5376b021cc2SWarner Losh #define HDA_CMD_GET_GPIO_ENABLE_MASK(cad, nid)				\
5386b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
5396b021cc2SWarner Losh     HDA_CMD_VERB_GET_GPIO_ENABLE_MASK, 0x0))
5406b021cc2SWarner Losh #define HDA_CMD_SET_GPIO_ENABLE_MASK(cad, nid, payload)			\
5416b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
5426b021cc2SWarner Losh     HDA_CMD_VERB_SET_GPIO_ENABLE_MASK, (payload)))
5436b021cc2SWarner Losh 
5446b021cc2SWarner Losh /* GPIO Direction */
5456b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPIO_DIRECTION			0xf17
5466b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPIO_DIRECTION			0x717
5476b021cc2SWarner Losh 
5486b021cc2SWarner Losh #define HDA_CMD_GET_GPIO_DIRECTION(cad, nid)				\
5496b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
5506b021cc2SWarner Losh     HDA_CMD_VERB_GET_GPIO_DIRECTION, 0x0))
5516b021cc2SWarner Losh #define HDA_CMD_SET_GPIO_DIRECTION(cad, nid, payload)			\
5526b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
5536b021cc2SWarner Losh     HDA_CMD_VERB_SET_GPIO_DIRECTION, (payload)))
5546b021cc2SWarner Losh 
5556b021cc2SWarner Losh /* GPIO Wake Enable Mask */
5566b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPIO_WAKE_ENABLE_MASK		0xf18
5576b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPIO_WAKE_ENABLE_MASK		0x718
5586b021cc2SWarner Losh 
5596b021cc2SWarner Losh #define HDA_CMD_GET_GPIO_WAKE_ENABLE_MASK(cad, nid)			\
5606b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
5616b021cc2SWarner Losh     HDA_CMD_VERB_GET_GPIO_WAKE_ENABLE_MASK, 0x0))
5626b021cc2SWarner Losh #define HDA_CMD_SET_GPIO_WAKE_ENABLE_MASK(cad, nid, payload)		\
5636b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
5646b021cc2SWarner Losh     HDA_CMD_VERB_SET_GPIO_WAKE_ENABLE_MASK, (payload)))
5656b021cc2SWarner Losh 
5666b021cc2SWarner Losh /* GPIO Unsolicited Enable Mask */
5676b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPIO_UNSOLICITED_ENABLE_MASK	0xf19
5686b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPIO_UNSOLICITED_ENABLE_MASK	0x719
5696b021cc2SWarner Losh 
5706b021cc2SWarner Losh #define HDA_CMD_GET_GPIO_UNSOLICITED_ENABLE_MASK(cad, nid)		\
5716b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
5726b021cc2SWarner Losh     HDA_CMD_VERB_GET_GPIO_UNSOLICITED_ENABLE_MASK, 0x0))
5736b021cc2SWarner Losh #define HDA_CMD_SET_GPIO_UNSOLICITED_ENABLE_MASK(cad, nid, payload)	\
5746b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
5756b021cc2SWarner Losh     HDA_CMD_VERB_SET_GPIO_UNSOLICITED_ENABLE_MASK, (payload)))
5766b021cc2SWarner Losh 
5776b021cc2SWarner Losh /* GPIO_STICKY_MASK */
5786b021cc2SWarner Losh #define HDA_CMD_VERB_GET_GPIO_STICKY_MASK		0xf1a
5796b021cc2SWarner Losh #define HDA_CMD_VERB_SET_GPIO_STICKY_MASK		0x71a
5806b021cc2SWarner Losh 
5816b021cc2SWarner Losh #define HDA_CMD_GET_GPIO_STICKY_MASK(cad, nid)				\
5826b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
5836b021cc2SWarner Losh     HDA_CMD_VERB_GET_GPIO_STICKY_MASK, 0x0))
5846b021cc2SWarner Losh #define HDA_CMD_SET_GPIO_STICKY_MASK(cad, nid, payload)			\
5856b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
5866b021cc2SWarner Losh     HDA_CMD_VERB_SET_GPIO_STICKY_MASK, (payload)))
5876b021cc2SWarner Losh 
5886b021cc2SWarner Losh /* Beep Generation */
5896b021cc2SWarner Losh #define HDA_CMD_VERB_GET_BEEP_GENERATION		0xf0a
5906b021cc2SWarner Losh #define HDA_CMD_VERB_SET_BEEP_GENERATION		0x70a
5916b021cc2SWarner Losh 
5926b021cc2SWarner Losh #define HDA_CMD_GET_BEEP_GENERATION(cad, nid)				\
5936b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
5946b021cc2SWarner Losh     HDA_CMD_VERB_GET_BEEP_GENERATION, 0x0))
5956b021cc2SWarner Losh #define HDA_CMD_SET_BEEP_GENERATION(cad, nid, payload)			\
5966b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
5976b021cc2SWarner Losh     HDA_CMD_VERB_SET_BEEP_GENERATION, (payload)))
5986b021cc2SWarner Losh 
5996b021cc2SWarner Losh /* Volume Knob */
6006b021cc2SWarner Losh #define HDA_CMD_VERB_GET_VOLUME_KNOB			0xf0f
6016b021cc2SWarner Losh #define HDA_CMD_VERB_SET_VOLUME_KNOB			0x70f
6026b021cc2SWarner Losh 
6036b021cc2SWarner Losh #define HDA_CMD_GET_VOLUME_KNOB(cad, nid)				\
6046b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6056b021cc2SWarner Losh     HDA_CMD_VERB_GET_VOLUME_KNOB, 0x0))
6066b021cc2SWarner Losh #define HDA_CMD_SET_VOLUME_KNOB(cad, nid, payload)			\
6076b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6086b021cc2SWarner Losh     HDA_CMD_VERB_SET_VOLUME_KNOB, (payload)))
6096b021cc2SWarner Losh 
6106b021cc2SWarner Losh /* Subsystem ID */
6116b021cc2SWarner Losh #define HDA_CMD_VERB_GET_SUBSYSTEM_ID			0xf20
6126b021cc2SWarner Losh #define HDA_CMD_VERB_SET_SUSBYSTEM_ID1			0x720
6136b021cc2SWarner Losh #define HDA_CMD_VERB_SET_SUBSYSTEM_ID2			0x721
6146b021cc2SWarner Losh #define HDA_CMD_VERB_SET_SUBSYSTEM_ID3			0x722
6156b021cc2SWarner Losh #define HDA_CMD_VERB_SET_SUBSYSTEM_ID4			0x723
6166b021cc2SWarner Losh 
6176b021cc2SWarner Losh #define HDA_CMD_GET_SUBSYSTEM_ID(cad, nid)				\
6186b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6196b021cc2SWarner Losh     HDA_CMD_VERB_GET_SUBSYSTEM_ID, 0x0))
6206b021cc2SWarner Losh #define HDA_CMD_SET_SUBSYSTEM_ID1(cad, nid, payload)			\
6216b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6226b021cc2SWarner Losh     HDA_CMD_VERB_SET_SUSBYSTEM_ID1, (payload)))
6236b021cc2SWarner Losh #define HDA_CMD_SET_SUBSYSTEM_ID2(cad, nid, payload)			\
6246b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6256b021cc2SWarner Losh     HDA_CMD_VERB_SET_SUSBYSTEM_ID2, (payload)))
6266b021cc2SWarner Losh #define HDA_CMD_SET_SUBSYSTEM_ID3(cad, nid, payload)			\
6276b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6286b021cc2SWarner Losh     HDA_CMD_VERB_SET_SUSBYSTEM_ID3, (payload)))
6296b021cc2SWarner Losh #define HDA_CMD_SET_SUBSYSTEM_ID4(cad, nid, payload)			\
6306b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6316b021cc2SWarner Losh     HDA_CMD_VERB_SET_SUSBYSTEM_ID4, (payload)))
6326b021cc2SWarner Losh 
6336b021cc2SWarner Losh /* Configuration Default */
6346b021cc2SWarner Losh #define HDA_CMD_VERB_GET_CONFIGURATION_DEFAULT		0xf1c
6356b021cc2SWarner Losh #define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT1		0x71c
6366b021cc2SWarner Losh #define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT2		0x71d
6376b021cc2SWarner Losh #define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT3		0x71e
6386b021cc2SWarner Losh #define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT4		0x71f
6396b021cc2SWarner Losh 
6406b021cc2SWarner Losh #define HDA_CMD_GET_CONFIGURATION_DEFAULT(cad, nid)			\
6416b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6426b021cc2SWarner Losh     HDA_CMD_VERB_GET_CONFIGURATION_DEFAULT, 0x0))
6436b021cc2SWarner Losh #define HDA_CMD_SET_CONFIGURATION_DEFAULT1(cad, nid, payload)		\
6446b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6456b021cc2SWarner Losh     HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT1, (payload)))
6466b021cc2SWarner Losh #define HDA_CMD_SET_CONFIGURATION_DEFAULT2(cad, nid, payload)		\
6476b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6486b021cc2SWarner Losh     HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT2, (payload)))
6496b021cc2SWarner Losh #define HDA_CMD_SET_CONFIGURATION_DEFAULT3(cad, nid, payload)		\
6506b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6516b021cc2SWarner Losh     HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT3, (payload)))
6526b021cc2SWarner Losh #define HDA_CMD_SET_CONFIGURATION_DEFAULT4(cad, nid, payload)		\
6536b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6546b021cc2SWarner Losh     HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT4, (payload)))
6556b021cc2SWarner Losh 
6566b021cc2SWarner Losh /* Stripe Control */
6576b021cc2SWarner Losh #define HDA_CMD_VERB_GET_STRIPE_CONTROL			0xf24
6586b021cc2SWarner Losh #define HDA_CMD_VERB_SET_STRIPE_CONTROL			0x724
6596b021cc2SWarner Losh 
6606b021cc2SWarner Losh #define HDA_CMD_GET_STRIPE_CONTROL(cad, nid)				\
6616b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6626b021cc2SWarner Losh     HDA_CMD_VERB_GET_STRIPE_CONTROL, 0x0))
6636b021cc2SWarner Losh #define HDA_CMD_SET_STRIPE_CONTROL(cad, nid, payload)			\
6646b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6656b021cc2SWarner Losh     HDA_CMD_VERB_SET_STRIPE_CONTROL, (payload)))
6666b021cc2SWarner Losh 
6676b021cc2SWarner Losh /* Channel Count Control */
6686b021cc2SWarner Losh #define HDA_CMD_VERB_GET_CONV_CHAN_COUNT			0xf2d
6696b021cc2SWarner Losh #define HDA_CMD_VERB_SET_CONV_CHAN_COUNT			0x72d
6706b021cc2SWarner Losh 
6716b021cc2SWarner Losh #define HDA_CMD_GET_CONV_CHAN_COUNT(cad, nid)				\
6726b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6736b021cc2SWarner Losh     HDA_CMD_VERB_GET_CONV_CHAN_COUNT, 0x0))
6746b021cc2SWarner Losh #define HDA_CMD_SET_CONV_CHAN_COUNT(cad, nid, payload)			\
6756b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6766b021cc2SWarner Losh     HDA_CMD_VERB_SET_CONV_CHAN_COUNT, (payload)))
6776b021cc2SWarner Losh 
6786b021cc2SWarner Losh #define HDA_CMD_VERB_GET_HDMI_DIP_SIZE			0xf2e
6796b021cc2SWarner Losh 
6806b021cc2SWarner Losh #define HDA_CMD_GET_HDMI_DIP_SIZE(cad, nid, arg)			\
6816b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6826b021cc2SWarner Losh     HDA_CMD_VERB_GET_HDMI_DIP_SIZE, (arg)))
6836b021cc2SWarner Losh 
6846b021cc2SWarner Losh #define HDA_CMD_VERB_GET_HDMI_ELDD			0xf2f
6856b021cc2SWarner Losh 
6866b021cc2SWarner Losh #define HDA_CMD_GET_HDMI_ELDD(cad, nid, off)				\
6876b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6886b021cc2SWarner Losh     HDA_CMD_VERB_GET_HDMI_ELDD, (off)))
6896b021cc2SWarner Losh 
6906b021cc2SWarner Losh #define HDA_CMD_VERB_GET_HDMI_DIP_INDEX			0xf30
6916b021cc2SWarner Losh #define HDA_CMD_VERB_SET_HDMI_DIP_INDEX			0x730
6926b021cc2SWarner Losh 
6936b021cc2SWarner Losh #define HDA_CMD_GET_HDMI_DIP_INDEX(cad, nid)				\
6946b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6956b021cc2SWarner Losh     HDA_CMD_VERB_GET_HDMI_DIP_INDEX, 0x0))
6966b021cc2SWarner Losh #define HDA_CMD_SET_HDMI_DIP_INDEX(cad, nid, payload)			\
6976b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
6986b021cc2SWarner Losh     HDA_CMD_VERB_SET_HDMI_DIP_INDEX, (payload)))
6996b021cc2SWarner Losh 
7006b021cc2SWarner Losh #define HDA_CMD_VERB_GET_HDMI_DIP_DATA			0xf31
7016b021cc2SWarner Losh #define HDA_CMD_VERB_SET_HDMI_DIP_DATA			0x731
7026b021cc2SWarner Losh 
7036b021cc2SWarner Losh #define HDA_CMD_GET_HDMI_DIP_DATA(cad, nid)				\
7046b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
7056b021cc2SWarner Losh     HDA_CMD_VERB_GET_HDMI_DIP_DATA, 0x0))
7066b021cc2SWarner Losh #define HDA_CMD_SET_HDMI_DIP_DATA(cad, nid, payload)			\
7076b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
7086b021cc2SWarner Losh     HDA_CMD_VERB_SET_HDMI_DIP_DATA, (payload)))
7096b021cc2SWarner Losh 
7106b021cc2SWarner Losh #define HDA_CMD_VERB_GET_HDMI_DIP_XMIT			0xf32
7116b021cc2SWarner Losh #define HDA_CMD_VERB_SET_HDMI_DIP_XMIT			0x732
7126b021cc2SWarner Losh 
7136b021cc2SWarner Losh #define HDA_CMD_GET_HDMI_DIP_XMIT(cad, nid)				\
7146b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
7156b021cc2SWarner Losh     HDA_CMD_VERB_GET_HDMI_DIP_XMIT, 0x0))
7166b021cc2SWarner Losh #define HDA_CMD_SET_HDMI_DIP_XMIT(cad, nid, payload)			\
7176b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
7186b021cc2SWarner Losh     HDA_CMD_VERB_SET_HDMI_DIP_XMIT, (payload)))
7196b021cc2SWarner Losh 
7206b021cc2SWarner Losh #define HDA_CMD_VERB_GET_HDMI_CP_CTRL			0xf33
7216b021cc2SWarner Losh #define HDA_CMD_VERB_SET_HDMI_CP_CTRL			0x733
7226b021cc2SWarner Losh 
7236b021cc2SWarner Losh #define HDA_CMD_VERB_GET_HDMI_CHAN_SLOT			0xf34
7246b021cc2SWarner Losh #define HDA_CMD_VERB_SET_HDMI_CHAN_SLOT			0x734
7256b021cc2SWarner Losh 
7266b021cc2SWarner Losh #define HDA_CMD_GET_HDMI_CHAN_SLOT(cad, nid)				\
7276b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
7286b021cc2SWarner Losh     HDA_CMD_VERB_GET_HDMI_CHAN_SLOT, 0x0))
7296b021cc2SWarner Losh #define HDA_CMD_SET_HDMI_CHAN_SLOT(cad, nid, payload)			\
7306b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
7316b021cc2SWarner Losh     HDA_CMD_VERB_SET_HDMI_CHAN_SLOT, (payload)))
7326b021cc2SWarner Losh 
7336b021cc2SWarner Losh #define	HDA_HDMI_CODING_TYPE_REF_STREAM_HEADER		0
7346b021cc2SWarner Losh #define	HDA_HDMI_CODING_TYPE_LPCM			1
7356b021cc2SWarner Losh #define	HDA_HDMI_CODING_TYPE_AC3			2
7366b021cc2SWarner Losh #define	HDA_HDMI_CODING_TYPE_MPEG1			3
7376b021cc2SWarner Losh #define	HDA_HDMI_CODING_TYPE_MP3			4
7386b021cc2SWarner Losh #define	HDA_HDMI_CODING_TYPE_MPEG2			5
7396b021cc2SWarner Losh #define	HDA_HDMI_CODING_TYPE_AACLC			6
7406b021cc2SWarner Losh #define	HDA_HDMI_CODING_TYPE_DTS			7
7416b021cc2SWarner Losh #define	HDA_HDMI_CODING_TYPE_ATRAC			8
7426b021cc2SWarner Losh #define	HDA_HDMI_CODING_TYPE_SACD			9
7436b021cc2SWarner Losh #define	HDA_HDMI_CODING_TYPE_EAC3			10
7446b021cc2SWarner Losh #define	HDA_HDMI_CODING_TYPE_DTS_HD			11
7456b021cc2SWarner Losh #define	HDA_HDMI_CODING_TYPE_MLP			12
7466b021cc2SWarner Losh #define	HDA_HDMI_CODING_TYPE_DST			13
7476b021cc2SWarner Losh #define	HDA_HDMI_CODING_TYPE_WMAPRO			14
7486b021cc2SWarner Losh #define	HDA_HDMI_CODING_TYPE_REF_CTX			15
7496b021cc2SWarner Losh 
7506b021cc2SWarner Losh /* Function Reset */
7516b021cc2SWarner Losh #define HDA_CMD_VERB_FUNCTION_RESET			0x7ff
7526b021cc2SWarner Losh 
7536b021cc2SWarner Losh #define HDA_CMD_FUNCTION_RESET(cad, nid)				\
7546b021cc2SWarner Losh     (HDA_CMD_12BIT((cad), (nid),					\
7556b021cc2SWarner Losh     HDA_CMD_VERB_FUNCTION_RESET, 0x0))
7566b021cc2SWarner Losh 
7576b021cc2SWarner Losh 
7586b021cc2SWarner Losh /****************************************************************************
7596b021cc2SWarner Losh  * HDA Device Parameters
7606b021cc2SWarner Losh  ****************************************************************************/
7616b021cc2SWarner Losh 
7626b021cc2SWarner Losh /* Vendor ID */
7636b021cc2SWarner Losh #define HDA_PARAM_VENDOR_ID				0x00
7646b021cc2SWarner Losh 
7656b021cc2SWarner Losh #define HDA_PARAM_VENDOR_ID_VENDOR_ID_MASK		0xffff0000
7666b021cc2SWarner Losh #define HDA_PARAM_VENDOR_ID_VENDOR_ID_SHIFT		16
7676b021cc2SWarner Losh #define HDA_PARAM_VENDOR_ID_DEVICE_ID_MASK		0x0000ffff
7686b021cc2SWarner Losh #define HDA_PARAM_VENDOR_ID_DEVICE_ID_SHIFT		0
7696b021cc2SWarner Losh 
7706b021cc2SWarner Losh #define HDA_PARAM_VENDOR_ID_VENDOR_ID(param)				\
7716b021cc2SWarner Losh     (((param) & HDA_PARAM_VENDOR_ID_VENDOR_ID_MASK) >>			\
7726b021cc2SWarner Losh     HDA_PARAM_VENDOR_ID_VENDOR_ID_SHIFT)
7736b021cc2SWarner Losh #define HDA_PARAM_VENDOR_ID_DEVICE_ID(param)				\
7746b021cc2SWarner Losh     (((param) & HDA_PARAM_VENDOR_ID_DEVICE_ID_MASK) >>			\
7756b021cc2SWarner Losh     HDA_PARAM_VENDOR_ID_DEVICE_ID_SHIFT)
7766b021cc2SWarner Losh 
7776b021cc2SWarner Losh /* Revision ID */
7786b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID				0x02
7796b021cc2SWarner Losh 
7806b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_MAJREV_MASK		0x00f00000
7816b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_MAJREV_SHIFT		20
7826b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_MINREV_MASK		0x000f0000
7836b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_MINREV_SHIFT		16
7846b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_REVISION_ID_MASK		0x0000ff00
7856b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_REVISION_ID_SHIFT		8
7866b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_STEPPING_ID_MASK		0x000000ff
7876b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_STEPPING_ID_SHIFT		0
7886b021cc2SWarner Losh 
7896b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_MAJREV(param)				\
7906b021cc2SWarner Losh     (((param) & HDA_PARAM_REVISION_ID_MAJREV_MASK) >>			\
7916b021cc2SWarner Losh     HDA_PARAM_REVISION_ID_MAJREV_SHIFT)
7926b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_MINREV(param)				\
7936b021cc2SWarner Losh     (((param) & HDA_PARAM_REVISION_ID_MINREV_MASK) >>			\
7946b021cc2SWarner Losh     HDA_PARAM_REVISION_ID_MINREV_SHIFT)
7956b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_REVISION_ID(param)			\
7966b021cc2SWarner Losh     (((param) & HDA_PARAM_REVISION_ID_REVISION_ID_MASK) >>		\
7976b021cc2SWarner Losh     HDA_PARAM_REVISION_ID_REVISION_ID_SHIFT)
7986b021cc2SWarner Losh #define HDA_PARAM_REVISION_ID_STEPPING_ID(param)			\
7996b021cc2SWarner Losh     (((param) & HDA_PARAM_REVISION_ID_STEPPING_ID_MASK) >>		\
8006b021cc2SWarner Losh     HDA_PARAM_REVISION_ID_STEPPING_ID_SHIFT)
8016b021cc2SWarner Losh 
8026b021cc2SWarner Losh /* Subordinate Node Cound */
8036b021cc2SWarner Losh #define HDA_PARAM_SUB_NODE_COUNT			0x04
8046b021cc2SWarner Losh 
8056b021cc2SWarner Losh #define HDA_PARAM_SUB_NODE_COUNT_START_MASK		0x00ff0000
8066b021cc2SWarner Losh #define HDA_PARAM_SUB_NODE_COUNT_START_SHIFT		16
8076b021cc2SWarner Losh #define HDA_PARAM_SUB_NODE_COUNT_TOTAL_MASK		0x000000ff
8086b021cc2SWarner Losh #define HDA_PARAM_SUB_NODE_COUNT_TOTAL_SHIFT		0
8096b021cc2SWarner Losh 
8106b021cc2SWarner Losh #define HDA_PARAM_SUB_NODE_COUNT_START(param)				\
8116b021cc2SWarner Losh     (((param) & HDA_PARAM_SUB_NODE_COUNT_START_MASK) >>			\
8126b021cc2SWarner Losh     HDA_PARAM_SUB_NODE_COUNT_START_SHIFT)
8136b021cc2SWarner Losh #define HDA_PARAM_SUB_NODE_COUNT_TOTAL(param)				\
8146b021cc2SWarner Losh     (((param) & HDA_PARAM_SUB_NODE_COUNT_TOTAL_MASK) >>			\
8156b021cc2SWarner Losh     HDA_PARAM_SUB_NODE_COUNT_TOTAL_SHIFT)
8166b021cc2SWarner Losh 
8176b021cc2SWarner Losh /* Function Group Type */
8186b021cc2SWarner Losh #define HDA_PARAM_FCT_GRP_TYPE				0x05
8196b021cc2SWarner Losh 
8206b021cc2SWarner Losh #define HDA_PARAM_FCT_GRP_TYPE_UNSOL_MASK		0x00000100
8216b021cc2SWarner Losh #define HDA_PARAM_FCT_GRP_TYPE_UNSOL_SHIFT		8
8226b021cc2SWarner Losh #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_MASK		0x000000ff
8236b021cc2SWarner Losh #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_SHIFT	0
8246b021cc2SWarner Losh 
8256b021cc2SWarner Losh #define HDA_PARAM_FCT_GRP_TYPE_UNSOL(param)				\
8266b021cc2SWarner Losh     (((param) & HDA_PARAM_FCT_GRP_TYPE_UNSOL_MASK) >>			\
8276b021cc2SWarner Losh     HDA_PARAM_FCT_GROUP_TYPE_UNSOL_SHIFT)
8286b021cc2SWarner Losh #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE(param)				\
8296b021cc2SWarner Losh     (((param) & HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_MASK) >>		\
8306b021cc2SWarner Losh     HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_SHIFT)
8316b021cc2SWarner Losh 
8326b021cc2SWarner Losh #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_AUDIO		0x01
8336b021cc2SWarner Losh #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_MODEM		0x02
8346b021cc2SWarner Losh 
8356b021cc2SWarner Losh /* Audio Function Group Capabilities */
8366b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP			0x08
8376b021cc2SWarner Losh 
8386b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_MASK	0x00010000
8396b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_SHIFT	16
8406b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_MASK	0x00000f00
8416b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_SHIFT	8
8426b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_MASK	0x0000000f
8436b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_SHIFT	0
8446b021cc2SWarner Losh 
8456b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN(param)			\
8466b021cc2SWarner Losh     (((param) & HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_MASK) >>		\
8476b021cc2SWarner Losh     HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_SHIFT)
8486b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY(param)			\
8496b021cc2SWarner Losh     (((param) & HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_MASK) >>	\
8506b021cc2SWarner Losh     HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_SHIFT)
8516b021cc2SWarner Losh #define HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY(param)			\
8526b021cc2SWarner Losh     (((param) & HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_MASK) >>	\
8536b021cc2SWarner Losh     HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_SHIFT)
8546b021cc2SWarner Losh 
8556b021cc2SWarner Losh /* Audio Widget Capabilities */
8566b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP			0x09
8576b021cc2SWarner Losh 
8586b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_MASK		0x00f00000
8596b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_SHIFT		20
8606b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_MASK		0x000f0000
8616b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_SHIFT		16
8626b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_MASK		0x0000e000
8636b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_SHIFT		13
8646b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_CP_MASK		0x00001000
8656b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_CP_SHIFT		12
8666b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_MASK		0x00000800
8676b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_SHIFT	11
8686b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_MASK	0x00000400
8696b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_SHIFT	10
8706b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_MASK		0x00000200
8716b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_SHIFT	9
8726b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_MASK	0x00000100
8736b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_SHIFT	8
8746b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_MASK	0x00000080
8756b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_SHIFT	7
8766b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_MASK	0x00000040
8776b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_SHIFT	6
8786b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_MASK		0x00000020
8796b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_SHIFT		5
8806b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_MASK	0x00000010
8816b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_SHIFT	4
8826b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_MASK		0x00000008
8836b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_SHIFT	3
8846b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_MASK		0x00000004
8856b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_SHIFT	2
8866b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_MASK		0x00000002
8876b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_SHIFT		1
8886b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_MASK		0x00000001
8896b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_SHIFT		0
8906b021cc2SWarner Losh 
8916b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE(param)				\
8926b021cc2SWarner Losh     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_MASK) >>		\
8936b021cc2SWarner Losh     HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_SHIFT)
8946b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_DELAY(param)				\
8956b021cc2SWarner Losh     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_MASK) >>		\
8966b021cc2SWarner Losh     HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_SHIFT)
8976b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_CC(param)				\
8986b021cc2SWarner Losh     ((((param) & HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_MASK) >>		\
8996b021cc2SWarner Losh     (HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_SHIFT - 1)) |			\
9006b021cc2SWarner Losh     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_MASK) >>		\
9016b021cc2SWarner Losh     HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_SHIFT))
9026b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_CP(param)				\
9036b021cc2SWarner Losh     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_CP_MASK) >>			\
9046b021cc2SWarner Losh     HDA_PARAM_AUDIO_WIDGET_CAP_CP_SHIFT)
9056b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP(param)			\
9066b021cc2SWarner Losh     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_MASK) >>		\
9076b021cc2SWarner Losh     HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_SHIFT)
9086b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL(param)			\
9096b021cc2SWarner Losh     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_MASK) >>		\
9106b021cc2SWarner Losh     HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_SHIFT)
9116b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL(param)			\
9126b021cc2SWarner Losh     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_MASK) >>		\
9136b021cc2SWarner Losh     HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_SHIFT)
9146b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST(param)			\
9156b021cc2SWarner Losh     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_MASK) >>		\
9166b021cc2SWarner Losh     HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_SHIFT)
9176b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP(param)			\
9186b021cc2SWarner Losh     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_MASK) >>		\
9196b021cc2SWarner Losh     HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_SHIFT)
9206b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET(param)			\
9216b021cc2SWarner Losh     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_MASK) >>		\
9226b021cc2SWarner Losh     HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_SHIFT)
9236b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE(param)			\
9246b021cc2SWarner Losh     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_MASK) >>		\
9256b021cc2SWarner Losh     HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_SHIFT)
9266b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR(param)			\
9276b021cc2SWarner Losh     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_MASK) >>		\
9286b021cc2SWarner Losh     HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_SHIFT)
9296b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR(param)			\
9306b021cc2SWarner Losh     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_MASK) >>		\
9316b021cc2SWarner Losh     HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_SHIFT)
9326b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP(param)			\
9336b021cc2SWarner Losh     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_MASK) >>		\
9346b021cc2SWarner Losh     HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_SHIFT)
9356b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP(param)			\
9366b021cc2SWarner Losh     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_MASK) >>		\
9376b021cc2SWarner Losh     HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_SHIFT)
9386b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_STEREO(param)			\
9396b021cc2SWarner Losh     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_MASK) >>		\
9406b021cc2SWarner Losh     HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_SHIFT)
9416b021cc2SWarner Losh 
9426b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_OUTPUT	0x0
9436b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_INPUT	0x1
9446b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_MIXER	0x2
9456b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_SELECTOR	0x3
9466b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_PIN_COMPLEX	0x4
9476b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_POWER_WIDGET	0x5
9486b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_VOLUME_WIDGET	0x6
9496b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_BEEP_WIDGET	0x7
9506b021cc2SWarner Losh #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_VENDOR_WIDGET	0xf
9516b021cc2SWarner Losh 
9526b021cc2SWarner Losh /* Supported PCM Size, Rates */
9536b021cc2SWarner Losh 
9546b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE			0x0a
9556b021cc2SWarner Losh 
9566b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_MASK		0x00100000
9576b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_SHIFT	20
9586b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_MASK		0x00080000
9596b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_SHIFT	19
9606b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_MASK		0x00040000
9616b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_SHIFT	18
9626b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_MASK		0x00020000
9636b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_SHIFT	17
9646b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_MASK		0x00010000
9656b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_SHIFT		16
9666b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_MASK		0x00000001
9676b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_SHIFT		0
9686b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_MASK		0x00000002
9696b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_SHIFT	1
9706b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_MASK		0x00000004
9716b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_SHIFT	2
9726b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_MASK		0x00000008
9736b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_SHIFT	3
9746b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_MASK		0x00000010
9756b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_SHIFT	4
9766b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_MASK		0x00000020
9776b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_SHIFT	5
9786b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_MASK		0x00000040
9796b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_SHIFT	6
9806b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_MASK		0x00000080
9816b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_SHIFT	7
9826b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_MASK		0x00000100
9836b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_SHIFT	8
9846b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_MASK	0x00000200
9856b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_SHIFT	9
9866b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_MASK	0x00000400
9876b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_SHIFT	10
9886b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_MASK	0x00000800
9896b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_SHIFT	11
9906b021cc2SWarner Losh 
9916b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT(param)			\
9926b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_MASK) >>		\
9936b021cc2SWarner Losh     HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_SHIFT)
9946b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT(param)			\
9956b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_MASK) >>		\
9966b021cc2SWarner Losh     HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_SHIFT)
9976b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT(param)			\
9986b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_MASK) >>		\
9996b021cc2SWarner Losh     HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_SHIFT)
10006b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT(param)			\
10016b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_MASK) >>		\
10026b021cc2SWarner Losh     HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_SHIFT)
10036b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT(param)			\
10046b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_MASK) >>		\
10056b021cc2SWarner Losh     HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_SHIFT)
10066b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ(param)			\
10076b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_MASK) >>		\
10086b021cc2SWarner Losh     HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_SHIFT)
10096b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ(param)			\
10106b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_MASK) >>		\
10116b021cc2SWarner Losh     HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_SHIFT)
10126b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ(param)			\
10136b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_MASK) >>		\
10146b021cc2SWarner Losh     HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_SHIFT)
10156b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ(param)			\
10166b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_MASK) >>		\
10176b021cc2SWarner Losh     HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_SHIFT)
10186b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ(param)			\
10196b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_MASK) >>		\
10206b021cc2SWarner Losh     HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_SHIFT)
10216b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ(param)			\
10226b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_MASK) >>		\
10236b021cc2SWarner Losh     HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_SHIFT)
10246b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ(param)			\
10256b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_MASK) >>		\
10266b021cc2SWarner Losh     HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_SHIFT)
10276b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ(param)			\
10286b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_MASK) >>		\
10296b021cc2SWarner Losh     HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_SHIFT)
10306b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ(param)			\
10316b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_MASK) >>		\
10326b021cc2SWarner Losh     HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_SHIFT)
10336b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ(param)			\
10346b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_MASK) >>		\
10356b021cc2SWarner Losh     HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_SHIFT)
10366b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ(param)			\
10376b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_MASK) >>		\
10386b021cc2SWarner Losh     HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_SHIFT)
10396b021cc2SWarner Losh #define HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ(param)			\
10406b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_MASK) >>		\
10416b021cc2SWarner Losh     HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_SHIFT)
10426b021cc2SWarner Losh 
10436b021cc2SWarner Losh /* Supported Stream Formats */
10446b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS			0x0b
10456b021cc2SWarner Losh 
10466b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS_AC3_MASK		0x00000004
10476b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS_AC3_SHIFT		2
10486b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_MASK	0x00000002
10496b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_SHIFT	1
10506b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS_PCM_MASK		0x00000001
10516b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS_PCM_SHIFT		0
10526b021cc2SWarner Losh 
10536b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS_AC3(param)			\
10546b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_STREAM_FORMATS_AC3_MASK) >>		\
10556b021cc2SWarner Losh     HDA_PARAM_SUPP_STREAM_FORMATS_AC3_SHIFT)
10566b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32(param)			\
10576b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_MASK) >>		\
10586b021cc2SWarner Losh     HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_SHIFT)
10596b021cc2SWarner Losh #define HDA_PARAM_SUPP_STREAM_FORMATS_PCM(param)			\
10606b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_STREAM_FORMATS_PCM_MASK) >>		\
10616b021cc2SWarner Losh     HDA_PARAM_SUPP_STREAM_FORMATS_PCM_SHIFT)
10626b021cc2SWarner Losh 
10636b021cc2SWarner Losh /* Pin Capabilities */
10646b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP				0x0c
10656b021cc2SWarner Losh 
10666b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_HBR_MASK			0x08000000
10676b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_HBR_SHIFT			27
10686b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_DP_MASK			0x01000000
10696b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_DP_SHIFT			24
10706b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_EAPD_CAP_MASK			0x00010000
10716b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_EAPD_CAP_SHIFT		16
10726b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_MASK		0x0000ff00
10736b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_SHIFT		8
10746b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_100_MASK		0x00002000
10756b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_100_SHIFT		13
10766b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_80_MASK		0x00001000
10776b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_80_SHIFT		12
10786b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_MASK		0x00000400
10796b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_SHIFT	10
10806b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_50_MASK		0x00000200
10816b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_50_SHIFT		9
10826b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_MASK		0x00000100
10836b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_SHIFT		8
10846b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_HDMI_MASK			0x00000080
10856b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_HDMI_SHIFT			7
10866b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_MASK		0x00000040
10876b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_SHIFT	6
10886b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_INPUT_CAP_MASK		0x00000020
10896b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_INPUT_CAP_SHIFT		5
10906b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_OUTPUT_CAP_MASK		0x00000010
10916b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_OUTPUT_CAP_SHIFT		4
10926b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_HEADPHONE_CAP_MASK		0x00000008
10936b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_HEADPHONE_CAP_SHIFT		3
10946b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_MASK	0x00000004
10956b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_SHIFT	2
10966b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_TRIGGER_REQD_MASK		0x00000002
10976b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_TRIGGER_REQD_SHIFT		1
10986b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_MASK		0x00000001
10996b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_SHIFT		0
11006b021cc2SWarner Losh 
11016b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_HBR(param)					\
11026b021cc2SWarner Losh     (((param) & HDA_PARAM_PIN_CAP_HBR_MASK) >>				\
11036b021cc2SWarner Losh     HDA_PARAM_PIN_CAP_HBR_SHIFT)
11046b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_DP(param)					\
11056b021cc2SWarner Losh     (((param) & HDA_PARAM_PIN_CAP_DP_MASK) >>				\
11066b021cc2SWarner Losh     HDA_PARAM_PIN_CAP_DP_SHIFT)
11076b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_EAPD_CAP(param)				\
11086b021cc2SWarner Losh     (((param) & HDA_PARAM_PIN_CAP_EAPD_CAP_MASK) >>			\
11096b021cc2SWarner Losh     HDA_PARAM_PIN_CAP_EAPD_CAP_SHIFT)
11106b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL(param)				\
11116b021cc2SWarner Losh     (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_MASK) >>			\
11126b021cc2SWarner Losh     HDA_PARAM_PIN_CAP_VREF_CTRL_SHIFT)
11136b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_100(param)				\
11146b021cc2SWarner Losh     (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_100_MASK) >>		\
11156b021cc2SWarner Losh     HDA_PARAM_PIN_CAP_VREF_CTRL_100_SHIFT)
11166b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_80(param)				\
11176b021cc2SWarner Losh     (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_80_MASK) >>			\
11186b021cc2SWarner Losh     HDA_PARAM_PIN_CAP_VREF_CTRL_80_SHIFT)
11196b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND(param)			\
11206b021cc2SWarner Losh     (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_MASK) >>		\
11216b021cc2SWarner Losh     HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_SHIFT)
11226b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_50(param)				\
11236b021cc2SWarner Losh     (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_50_MASK) >>			\
11246b021cc2SWarner Losh     HDA_PARAM_PIN_CAP_VREF_CTRL_50_SHIFT)
11256b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ(param)				\
11266b021cc2SWarner Losh     (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_MASK) >>		\
11276b021cc2SWarner Losh     HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_SHIFT)
11286b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_HDMI(param)					\
11296b021cc2SWarner Losh     (((param) & HDA_PARAM_PIN_CAP_HDMI_MASK) >>				\
11306b021cc2SWarner Losh     HDA_PARAM_PIN_CAP_HDMI_SHIFT)
11316b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_BALANCED_IO_PINS(param)			\
11326b021cc2SWarner Losh     (((param) & HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_MASK) >>		\
11336b021cc2SWarner Losh     HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_SHIFT)
11346b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_INPUT_CAP(param)				\
11356b021cc2SWarner Losh     (((param) & HDA_PARAM_PIN_CAP_INPUT_CAP_MASK) >>			\
11366b021cc2SWarner Losh     HDA_PARAM_PIN_CAP_INPUT_CAP_SHIFT)
11376b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_OUTPUT_CAP(param)				\
11386b021cc2SWarner Losh     (((param) & HDA_PARAM_PIN_CAP_OUTPUT_CAP_MASK) >>			\
11396b021cc2SWarner Losh     HDA_PARAM_PIN_CAP_OUTPUT_CAP_SHIFT)
11406b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_HEADPHONE_CAP(param)				\
11416b021cc2SWarner Losh     (((param) & HDA_PARAM_PIN_CAP_HEADPHONE_CAP_MASK) >>		\
11426b021cc2SWarner Losh     HDA_PARAM_PIN_CAP_HEADPHONE_CAP_SHIFT)
11436b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP(param)			\
11446b021cc2SWarner Losh     (((param) & HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_MASK) >>		\
11456b021cc2SWarner Losh     HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_SHIFT)
11466b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_TRIGGER_REQD(param)				\
11476b021cc2SWarner Losh     (((param) & HDA_PARAM_PIN_CAP_TRIGGER_REQD_MASK) >>			\
11486b021cc2SWarner Losh     HDA_PARAM_PIN_CAP_TRIGGER_REQD_SHIFT)
11496b021cc2SWarner Losh #define HDA_PARAM_PIN_CAP_IMP_SENSE_CAP(param)				\
11506b021cc2SWarner Losh     (((param) & HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_MASK) >>		\
11516b021cc2SWarner Losh     HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_SHIFT)
11526b021cc2SWarner Losh 
11536b021cc2SWarner Losh /* Input Amplifier Capabilities */
11546b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP				0x0d
11556b021cc2SWarner Losh 
11566b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_MASK		0x80000000
11576b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_SHIFT		31
11586b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_MASK		0x007f0000
11596b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_SHIFT		16
11606b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_MASK		0x00007f00
11616b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_SHIFT		8
11626b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_OFFSET_MASK		0x0000007f
11636b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_OFFSET_SHIFT		0
11646b021cc2SWarner Losh 
11656b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP(param)				\
11666b021cc2SWarner Losh     (((param) & HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_MASK) >>		\
11676b021cc2SWarner Losh     HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_SHIFT)
11686b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_STEPSIZE(param)				\
11696b021cc2SWarner Losh     (((param) & HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_MASK) >>		\
11706b021cc2SWarner Losh     HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_SHIFT)
11716b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS(param)				\
11726b021cc2SWarner Losh     (((param) & HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_MASK) >>		\
11736b021cc2SWarner Losh     HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_SHIFT)
11746b021cc2SWarner Losh #define HDA_PARAM_INPUT_AMP_CAP_OFFSET(param)				\
11756b021cc2SWarner Losh     (((param) & HDA_PARAM_INPUT_AMP_CAP_OFFSET_MASK) >>			\
11766b021cc2SWarner Losh     HDA_PARAM_INPUT_AMP_CAP_OFFSET_SHIFT)
11776b021cc2SWarner Losh 
11786b021cc2SWarner Losh /* Output Amplifier Capabilities */
11796b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP			0x12
11806b021cc2SWarner Losh 
11816b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_MASK		0x80000000
11826b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_SHIFT		31
11836b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_MASK		0x007f0000
11846b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_SHIFT		16
11856b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_MASK		0x00007f00
11866b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_SHIFT		8
11876b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_MASK		0x0000007f
11886b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_SHIFT		0
11896b021cc2SWarner Losh 
11906b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP(param)			\
11916b021cc2SWarner Losh     (((param) & HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_MASK) >>		\
11926b021cc2SWarner Losh     HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_SHIFT)
11936b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE(param)			\
11946b021cc2SWarner Losh     (((param) & HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_MASK) >>		\
11956b021cc2SWarner Losh     HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_SHIFT)
11966b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS(param)			\
11976b021cc2SWarner Losh     (((param) & HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_MASK) >>		\
11986b021cc2SWarner Losh     HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_SHIFT)
11996b021cc2SWarner Losh #define HDA_PARAM_OUTPUT_AMP_CAP_OFFSET(param)				\
12006b021cc2SWarner Losh     (((param) & HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_MASK) >>		\
12016b021cc2SWarner Losh     HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_SHIFT)
12026b021cc2SWarner Losh 
12036b021cc2SWarner Losh /* Connection List Length */
12046b021cc2SWarner Losh #define HDA_PARAM_CONN_LIST_LENGTH			0x0e
12056b021cc2SWarner Losh 
12066b021cc2SWarner Losh #define HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_MASK	0x00000080
12076b021cc2SWarner Losh #define HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_SHIFT	7
12086b021cc2SWarner Losh #define HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_MASK	0x0000007f
12096b021cc2SWarner Losh #define HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_SHIFT	0
12106b021cc2SWarner Losh 
12116b021cc2SWarner Losh #define HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM(param)			\
12126b021cc2SWarner Losh     (((param) & HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_MASK) >>		\
12136b021cc2SWarner Losh     HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_SHIFT)
12146b021cc2SWarner Losh #define HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH(param)			\
12156b021cc2SWarner Losh     (((param) & HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_MASK) >>		\
12166b021cc2SWarner Losh     HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_SHIFT)
12176b021cc2SWarner Losh 
12186b021cc2SWarner Losh /* Supported Power States */
12196b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES			0x0f
12206b021cc2SWarner Losh 
12216b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D3_MASK		0x00000008
12226b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D3_SHIFT		3
12236b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D2_MASK		0x00000004
12246b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D2_SHIFT		2
12256b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D1_MASK		0x00000002
12266b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D1_SHIFT		1
12276b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D0_MASK		0x00000001
12286b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D0_SHIFT		0
12296b021cc2SWarner Losh 
12306b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D3(param)				\
12316b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_POWER_STATES_D3_MASK) >>			\
12326b021cc2SWarner Losh     HDA_PARAM_SUPP_POWER_STATES_D3_SHIFT)
12336b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D2(param)				\
12346b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_POWER_STATES_D2_MASK) >>			\
12356b021cc2SWarner Losh     HDA_PARAM_SUPP_POWER_STATES_D2_SHIFT)
12366b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D1(param)				\
12376b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_POWER_STATES_D1_MASK) >>			\
12386b021cc2SWarner Losh     HDA_PARAM_SUPP_POWER_STATES_D1_SHIFT)
12396b021cc2SWarner Losh #define HDA_PARAM_SUPP_POWER_STATES_D0(param)				\
12406b021cc2SWarner Losh     (((param) & HDA_PARAM_SUPP_POWER_STATES_D0_MASK) >>			\
12416b021cc2SWarner Losh     HDA_PARAM_SUPP_POWER_STATES_D0_SHIFT)
12426b021cc2SWarner Losh 
12436b021cc2SWarner Losh /* Processing Capabilities */
12446b021cc2SWarner Losh #define HDA_PARAM_PROCESSING_CAP			0x10
12456b021cc2SWarner Losh 
12466b021cc2SWarner Losh #define HDA_PARAM_PROCESSING_CAP_NUMCOEFF_MASK		0x0000ff00
12476b021cc2SWarner Losh #define HDA_PARAM_PROCESSING_CAP_NUMCOEFF_SHIFT		8
12486b021cc2SWarner Losh #define HDA_PARAM_PROCESSING_CAP_BENIGN_MASK		0x00000001
12496b021cc2SWarner Losh #define HDA_PARAM_PROCESSING_CAP_BENIGN_SHIFT		0
12506b021cc2SWarner Losh 
12516b021cc2SWarner Losh #define HDA_PARAM_PROCESSING_CAP_NUMCOEFF(param)			\
12526b021cc2SWarner Losh     (((param) & HDA_PARAM_PROCESSING_CAP_NUMCOEFF_MASK) >>		\
12536b021cc2SWarner Losh     HDA_PARAM_PROCESSING_CAP_NUMCOEFF_SHIFT)
12546b021cc2SWarner Losh #define HDA_PARAM_PROCESSING_CAP_BENIGN(param)				\
12556b021cc2SWarner Losh     (((param) & HDA_PARAM_PROCESSING_CAP_BENIGN_MASK) >>		\
12566b021cc2SWarner Losh     HDA_PARAM_PROCESSING_CAP_BENIGN_SHIFT)
12576b021cc2SWarner Losh 
12586b021cc2SWarner Losh /* GPIO Count */
12596b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT				0x11
12606b021cc2SWarner Losh 
12616b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_GPI_WAKE_MASK		0x80000000
12626b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_GPI_WAKE_SHIFT		31
12636b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_GPI_UNSOL_MASK		0x40000000
12646b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_GPI_UNSOL_SHIFT		30
12656b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_NUM_GPI_MASK		0x00ff0000
12666b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_NUM_GPI_SHIFT		16
12676b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_NUM_GPO_MASK		0x0000ff00
12686b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_NUM_GPO_SHIFT		8
12696b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_NUM_GPIO_MASK		0x000000ff
12706b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_NUM_GPIO_SHIFT		0
12716b021cc2SWarner Losh 
12726b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_GPI_WAKE(param)				\
12736b021cc2SWarner Losh     (((param) & HDA_PARAM_GPIO_COUNT_GPI_WAKE_MASK) >>			\
12746b021cc2SWarner Losh     HDA_PARAM_GPIO_COUNT_GPI_WAKE_SHIFT)
12756b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_GPI_UNSOL(param)				\
12766b021cc2SWarner Losh     (((param) & HDA_PARAM_GPIO_COUNT_GPI_UNSOL_MASK) >>			\
12776b021cc2SWarner Losh     HDA_PARAM_GPIO_COUNT_GPI_UNSOL_SHIFT)
12786b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_NUM_GPI(param)				\
12796b021cc2SWarner Losh     (((param) & HDA_PARAM_GPIO_COUNT_NUM_GPI_MASK) >>			\
12806b021cc2SWarner Losh     HDA_PARAM_GPIO_COUNT_NUM_GPI_SHIFT)
12816b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_NUM_GPO(param)				\
12826b021cc2SWarner Losh     (((param) & HDA_PARAM_GPIO_COUNT_NUM_GPO_MASK) >>			\
12836b021cc2SWarner Losh     HDA_PARAM_GPIO_COUNT_NUM_GPO_SHIFT)
12846b021cc2SWarner Losh #define HDA_PARAM_GPIO_COUNT_NUM_GPIO(param)				\
12856b021cc2SWarner Losh     (((param) & HDA_PARAM_GPIO_COUNT_NUM_GPIO_MASK) >>			\
12866b021cc2SWarner Losh     HDA_PARAM_GPIO_COUNT_NUM_GPIO_SHIFT)
12876b021cc2SWarner Losh 
12886b021cc2SWarner Losh /* Volume Knob Capabilities */
12896b021cc2SWarner Losh #define HDA_PARAM_VOLUME_KNOB_CAP			0x13
12906b021cc2SWarner Losh 
12916b021cc2SWarner Losh #define HDA_PARAM_VOLUME_KNOB_CAP_DELTA_MASK		0x00000080
12926b021cc2SWarner Losh #define HDA_PARAM_VOLUME_KNOB_CAP_DELTA_SHIFT		7
12936b021cc2SWarner Losh #define HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_MASK	0x0000007f
12946b021cc2SWarner Losh #define HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_SHIFT	0
12956b021cc2SWarner Losh 
12966b021cc2SWarner Losh #define HDA_PARAM_VOLUME_KNOB_CAP_DELTA(param)				\
12976b021cc2SWarner Losh     (((param) & HDA_PARAM_VOLUME_KNOB_CAP_DELTA_MASK) >>		\
12986b021cc2SWarner Losh     HDA_PARAM_VOLUME_KNOB_CAP_DELTA_SHIFT)
12996b021cc2SWarner Losh #define HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS(param)			\
13006b021cc2SWarner Losh     (((param) & HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_MASK) >>		\
13016b021cc2SWarner Losh     HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_SHIFT)
13026b021cc2SWarner Losh 
13036b021cc2SWarner Losh 
13046b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_SEQUENCE_MASK		0x0000000f
13056b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_SEQUENCE_SHIFT		0
13066b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_ASSOCIATION_MASK		0x000000f0
13076b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_ASSOCIATION_SHIFT	4
13086b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_MISC_MASK		0x00000f00
13096b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_MISC_SHIFT		8
13106b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_COLOR_MASK		0x0000f000
13116b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_COLOR_SHIFT		12
13126b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_MASK	0x000f0000
13136b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_SHIFT	16
13146b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_MASK		0x00f00000
13156b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_SHIFT		20
13166b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_LOCATION_MASK		0x3f000000
13176b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_LOCATION_SHIFT		24
13186b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK	0xc0000000
13196b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_SHIFT	30
13206b021cc2SWarner Losh 
13216b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_SEQUENCE(conf)				\
13226b021cc2SWarner Losh     (((conf) & HDA_CONFIG_DEFAULTCONF_SEQUENCE_MASK) >>			\
13236b021cc2SWarner Losh     HDA_CONFIG_DEFAULTCONF_SEQUENCE_SHIFT)
13246b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_ASSOCIATION(conf)			\
13256b021cc2SWarner Losh     (((conf) & HDA_CONFIG_DEFAULTCONF_ASSOCIATION_MASK) >>		\
13266b021cc2SWarner Losh     HDA_CONFIG_DEFAULTCONF_ASSOCIATION_SHIFT)
13276b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_MISC(conf)				\
13286b021cc2SWarner Losh     (((conf) & HDA_CONFIG_DEFAULTCONF_MISC_MASK) >>			\
13296b021cc2SWarner Losh     HDA_CONFIG_DEFAULTCONF_MISC_SHIFT)
13306b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_COLOR(conf)				\
13316b021cc2SWarner Losh     (((conf) & HDA_CONFIG_DEFAULTCONF_COLOR_MASK) >>			\
13326b021cc2SWarner Losh     HDA_CONFIG_DEFAULTCONF_COLOR_SHIFT)
13336b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE(conf)			\
13346b021cc2SWarner Losh     (((conf) & HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_MASK) >>		\
13356b021cc2SWarner Losh     HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_SHIFT)
13366b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE(conf)				\
13376b021cc2SWarner Losh     (((conf) & HDA_CONFIG_DEFAULTCONF_DEVICE_MASK) >>			\
13386b021cc2SWarner Losh     HDA_CONFIG_DEFAULTCONF_DEVICE_SHIFT)
13396b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_LOCATION(conf)				\
13406b021cc2SWarner Losh     (((conf) & HDA_CONFIG_DEFAULTCONF_LOCATION_MASK) >>			\
13416b021cc2SWarner Losh     HDA_CONFIG_DEFAULTCONF_LOCATION_SHIFT)
13426b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY(conf)			\
13436b021cc2SWarner Losh     (((conf) & HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK) >>		\
13446b021cc2SWarner Losh     HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_SHIFT)
13456b021cc2SWarner Losh 
13466b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_JACK		(0<<30)
13476b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_NONE		(1<<30)
13486b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED		(2<<30)
13496b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_BOTH		(3<<30)
13506b021cc2SWarner Losh 
13516b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_OUT			(0<<20)
13526b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_SPEAKER			(1<<20)
13536b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_HP_OUT			(2<<20)
13546b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_CD			(3<<20)
13556b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_SPDIF_OUT			(4<<20)
13566b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_DIGITAL_OTHER_OUT		(5<<20)
13576b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_MODEM_LINE		(6<<20)
13586b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_MODEM_HANDSET		(7<<20)
13596b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_IN			(8<<20)
13606b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_AUX			(9<<20)
13616b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN			(10<<20)
13626b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_TELEPHONY			(11<<20)
13636b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_SPDIF_IN			(12<<20)
13646b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_DIGITAL_OTHER_IN		(13<<20)
13656b021cc2SWarner Losh #define HDA_CONFIG_DEFAULTCONF_DEVICE_OTHER			(15<<20)
13666b021cc2SWarner Losh 
13676b021cc2SWarner Losh #endif /* _HDA_REG_H_ */
1368