xref: /dflybsd-src/sys/dev/sound/pci/hda/hda_reg.h (revision 2a1ad637466621af45d5a17185b33f3dcaaa1b1c)
1558a398bSSimon Schubert /*-
2558a398bSSimon Schubert  * Copyright (c) 2006 Stephane E. Potvin <sepotvin@videotron.ca>
3558a398bSSimon Schubert  * All rights reserved.
4558a398bSSimon Schubert  *
5558a398bSSimon Schubert  * Redistribution and use in source and binary forms, with or without
6558a398bSSimon Schubert  * modification, are permitted provided that the following conditions
7558a398bSSimon Schubert  * are met:
8558a398bSSimon Schubert  * 1. Redistributions of source code must retain the above copyright
9558a398bSSimon Schubert  *    notice, this list of conditions and the following disclaimer.
10558a398bSSimon Schubert  * 2. Redistributions in binary form must reproduce the above copyright
11558a398bSSimon Schubert  *    notice, this list of conditions and the following disclaimer in the
12558a398bSSimon Schubert  *    documentation and/or other materials provided with the distribution.
13558a398bSSimon Schubert  *
14558a398bSSimon Schubert  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15558a398bSSimon Schubert  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16558a398bSSimon Schubert  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17558a398bSSimon Schubert  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18558a398bSSimon Schubert  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19558a398bSSimon Schubert  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20558a398bSSimon Schubert  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21558a398bSSimon Schubert  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22558a398bSSimon Schubert  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23558a398bSSimon Schubert  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24558a398bSSimon Schubert  * SUCH DAMAGE.
25558a398bSSimon Schubert  *
26*2a1ad637SFrançois Tigeot  * $FreeBSD: head/sys/dev/sound/pci/hda/hda_reg.h 230312 2012-01-18 19:12:33Z mav $
27558a398bSSimon Schubert  */
28558a398bSSimon Schubert 
29558a398bSSimon Schubert #ifndef _HDA_REG_H_
30558a398bSSimon Schubert #define _HDA_REG_H_
31558a398bSSimon Schubert 
32558a398bSSimon Schubert /****************************************************************************
33558a398bSSimon Schubert  * HDA Device Verbs
34558a398bSSimon Schubert  ****************************************************************************/
35558a398bSSimon Schubert 
36558a398bSSimon Schubert /* HDA Command */
37558a398bSSimon Schubert #define HDA_CMD_VERB_MASK				0x000fffff
38558a398bSSimon Schubert #define HDA_CMD_VERB_SHIFT				0
39558a398bSSimon Schubert #define HDA_CMD_NID_MASK				0x0ff00000
40558a398bSSimon Schubert #define HDA_CMD_NID_SHIFT				20
41558a398bSSimon Schubert #define HDA_CMD_CAD_MASK				0xf0000000
42558a398bSSimon Schubert #define HDA_CMD_CAD_SHIFT				28
43558a398bSSimon Schubert 
44558a398bSSimon Schubert #define HDA_CMD_VERB_4BIT_SHIFT				16
45558a398bSSimon Schubert #define HDA_CMD_VERB_12BIT_SHIFT			8
46558a398bSSimon Schubert 
47558a398bSSimon Schubert #define HDA_CMD_VERB_4BIT(verb, payload)				\
48558a398bSSimon Schubert     (((verb) << HDA_CMD_VERB_4BIT_SHIFT) | (payload))
49558a398bSSimon Schubert #define HDA_CMD_4BIT(cad, nid, verb, payload)				\
50558a398bSSimon Schubert     (((cad) << HDA_CMD_CAD_SHIFT) |					\
51558a398bSSimon Schubert     ((nid) << HDA_CMD_NID_SHIFT) |					\
52558a398bSSimon Schubert     (HDA_CMD_VERB_4BIT((verb), (payload))))
53558a398bSSimon Schubert 
54558a398bSSimon Schubert #define HDA_CMD_VERB_12BIT(verb, payload)				\
55558a398bSSimon Schubert     (((verb) << HDA_CMD_VERB_12BIT_SHIFT) | (payload))
56558a398bSSimon Schubert #define HDA_CMD_12BIT(cad, nid, verb, payload)				\
57558a398bSSimon Schubert     (((cad) << HDA_CMD_CAD_SHIFT) |					\
58558a398bSSimon Schubert     ((nid) << HDA_CMD_NID_SHIFT) |					\
59558a398bSSimon Schubert     (HDA_CMD_VERB_12BIT((verb), (payload))))
60558a398bSSimon Schubert 
61558a398bSSimon Schubert /* Get Parameter */
62558a398bSSimon Schubert #define HDA_CMD_VERB_GET_PARAMETER			0xf00
63558a398bSSimon Schubert 
64558a398bSSimon Schubert #define HDA_CMD_GET_PARAMETER(cad, nid, payload)			\
65558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
66558a398bSSimon Schubert     HDA_CMD_VERB_GET_PARAMETER, (payload)))
67558a398bSSimon Schubert 
68558a398bSSimon Schubert /* Connection Select Control */
69558a398bSSimon Schubert #define HDA_CMD_VERB_GET_CONN_SELECT_CONTROL		0xf01
70558a398bSSimon Schubert #define HDA_CMD_VERB_SET_CONN_SELECT_CONTROL		0x701
71558a398bSSimon Schubert 
72558a398bSSimon Schubert #define HDA_CMD_GET_CONN_SELECT_CONTROL(cad, nid)			\
73558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
74558a398bSSimon Schubert     HDA_CMD_VERB_GET_CONN_SELECT_CONTROL, 0x0))
75558a398bSSimon Schubert #define HDA_CMD_SET_CONNECTION_SELECT_CONTROL(cad, nid, payload)	\
76558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
77558a398bSSimon Schubert     HDA_CMD_VERB_SET_CONN_SELECT_CONTROL, (payload)))
78558a398bSSimon Schubert 
79558a398bSSimon Schubert /* Connection List Entry */
80558a398bSSimon Schubert #define HDA_CMD_VERB_GET_CONN_LIST_ENTRY		0xf02
81558a398bSSimon Schubert 
82558a398bSSimon Schubert #define HDA_CMD_GET_CONN_LIST_ENTRY(cad, nid, payload)			\
83558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
84558a398bSSimon Schubert     HDA_CMD_VERB_GET_CONN_LIST_ENTRY, (payload)))
85558a398bSSimon Schubert 
86558a398bSSimon Schubert #define HDA_CMD_GET_CONN_LIST_ENTRY_SIZE_SHORT		1
87558a398bSSimon Schubert #define HDA_CMD_GET_CONN_LIST_ENTRY_SIZE_LONG		2
88558a398bSSimon Schubert 
89558a398bSSimon Schubert /* Processing State */
90558a398bSSimon Schubert #define HDA_CMD_VERB_GET_PROCESSING_STATE		0xf03
91558a398bSSimon Schubert #define HDA_CMD_VERB_SET_PROCESSING_STATE		0x703
92558a398bSSimon Schubert 
93558a398bSSimon Schubert #define HDA_CMD_GET_PROCESSING_STATE(cad, nid)				\
94558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
95558a398bSSimon Schubert     HDA_CMD_VERB_GET_PROCESSING_STATE, 0x0))
96558a398bSSimon Schubert #define HDA_CMD_SET_PROCESSING_STATE(cad, nid, payload)			\
97558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
98558a398bSSimon Schubert     HDA_CMD_VERB_SET_PROCESSING_STATE, (payload)))
99558a398bSSimon Schubert 
100558a398bSSimon Schubert #define HDA_CMD_GET_PROCESSING_STATE_STATE_OFF		0x00
101558a398bSSimon Schubert #define HDA_CMD_GET_PROCESSING_STATE_STATE_ON		0x01
102558a398bSSimon Schubert #define HDA_CMD_GET_PROCESSING_STATE_STATE_BENIGN	0x02
103558a398bSSimon Schubert 
104558a398bSSimon Schubert /* Coefficient Index */
105558a398bSSimon Schubert #define HDA_CMD_VERB_GET_COEFF_INDEX			0xd
106558a398bSSimon Schubert #define HDA_CMD_VERB_SET_COEFF_INDEX			0x5
107558a398bSSimon Schubert 
108558a398bSSimon Schubert #define HDA_CMD_GET_COEFF_INDEX(cad, nid)				\
109558a398bSSimon Schubert     (HDA_CMD_4BIT((cad), (nid),						\
110558a398bSSimon Schubert     HDA_CMD_VERB_GET_COEFF_INDEX, 0x0))
111558a398bSSimon Schubert #define HDA_CMD_SET_COEFF_INDEX(cad, nid, payload)			\
112558a398bSSimon Schubert     (HDA_CMD_4BIT((cad), (nid),						\
113558a398bSSimon Schubert     HDA_CMD_VERB_SET_COEFF_INDEX, (payload)))
114558a398bSSimon Schubert 
115558a398bSSimon Schubert /* Processing Coefficient */
116558a398bSSimon Schubert #define HDA_CMD_VERB_GET_PROCESSING_COEFF		0xc
117558a398bSSimon Schubert #define HDA_CMD_VERB_SET_PROCESSING_COEFF		0x4
118558a398bSSimon Schubert 
119558a398bSSimon Schubert #define HDA_CMD_GET_PROCESSING_COEFF(cad, nid)				\
120558a398bSSimon Schubert     (HDA_CMD_4BIT((cad), (nid),						\
121558a398bSSimon Schubert     HDA_CMD_VERB_GET_PROCESSING_COEFF, 0x0))
122558a398bSSimon Schubert #define HDA_CMD_SET_PROCESSING_COEFF(cad, nid, payload)			\
123558a398bSSimon Schubert     (HDA_CMD_4BIT((cad), (nid),						\
124558a398bSSimon Schubert     HDA_CMD_VERB_SET_PROCESSING_COEFF, (payload)))
125558a398bSSimon Schubert 
126558a398bSSimon Schubert /* Amplifier Gain/Mute */
127558a398bSSimon Schubert #define HDA_CMD_VERB_GET_AMP_GAIN_MUTE			0xb
128558a398bSSimon Schubert #define HDA_CMD_VERB_SET_AMP_GAIN_MUTE			0x3
129558a398bSSimon Schubert 
130558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE(cad, nid, payload)			\
131558a398bSSimon Schubert     (HDA_CMD_4BIT((cad), (nid),						\
132558a398bSSimon Schubert     HDA_CMD_VERB_GET_AMP_GAIN_MUTE, (payload)))
133558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE(cad, nid, payload)			\
134558a398bSSimon Schubert     (HDA_CMD_4BIT((cad), (nid),						\
135558a398bSSimon Schubert     HDA_CMD_VERB_SET_AMP_GAIN_MUTE, (payload)))
136558a398bSSimon Schubert 
137558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_INPUT		0x0000
138558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_OUTPUT	0x8000
139558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_RIGHT		0x0000
140558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_LEFT		0x2000
141558a398bSSimon Schubert 
142558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_MASK	0x00000008
143558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_SHIFT	7
144558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_MASK	0x00000007
145558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_SHIFT	0
146558a398bSSimon Schubert 
147558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_MUTE(rsp)				\
148558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_MASK) >>			\
149558a398bSSimon Schubert     HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_SHIFT)
150558a398bSSimon Schubert #define HDA_CMD_GET_AMP_GAIN_MUTE_GAIN(rsp)				\
151558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_MASK) >>			\
152558a398bSSimon Schubert     HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_SHIFT)
153558a398bSSimon Schubert 
154558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_OUTPUT	0x8000
155558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_INPUT		0x4000
156558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_LEFT		0x2000
157558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_RIGHT		0x1000
158558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_MASK	0x0f00
159558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_SHIFT	8
160558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_MUTE		0x0080
161558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_MASK	0x0007
162558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_SHIFT	0
163558a398bSSimon Schubert 
164558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_INDEX(index)				\
165558a398bSSimon Schubert     (((index) << HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_SHIFT) &		\
166558a398bSSimon Schubert     HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_MASK)
167558a398bSSimon Schubert #define HDA_CMD_SET_AMP_GAIN_MUTE_GAIN(index)				\
168558a398bSSimon Schubert     (((index) << HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_SHIFT) &		\
169558a398bSSimon Schubert     HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_MASK)
170558a398bSSimon Schubert 
171558a398bSSimon Schubert /* Converter format */
172558a398bSSimon Schubert #define HDA_CMD_VERB_GET_CONV_FMT			0xa
173558a398bSSimon Schubert #define HDA_CMD_VERB_SET_CONV_FMT			0x2
174558a398bSSimon Schubert 
175558a398bSSimon Schubert #define HDA_CMD_GET_CONV_FMT(cad, nid)					\
176558a398bSSimon Schubert     (HDA_CMD_4BIT((cad), (nid),						\
177558a398bSSimon Schubert     HDA_CMD_VERB_GET_CONV_FMT, 0x0))
178558a398bSSimon Schubert #define HDA_CMD_SET_CONV_FMT(cad, nid, payload)				\
179558a398bSSimon Schubert     (HDA_CMD_4BIT((cad), (nid),						\
180558a398bSSimon Schubert     HDA_CMD_VERB_SET_CONV_FMT, (payload)))
181558a398bSSimon Schubert 
182558a398bSSimon Schubert /* Digital Converter Control */
183*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_DIGITAL_CONV_FMT1		0xf0d
184*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_DIGITAL_CONV_FMT2		0xf0e
185558a398bSSimon Schubert #define HDA_CMD_VERB_SET_DIGITAL_CONV_FMT1		0x70d
186558a398bSSimon Schubert #define HDA_CMD_VERB_SET_DIGITAL_CONV_FMT2		0x70e
187558a398bSSimon Schubert 
188558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT(cad, nid)				\
189558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
190*2a1ad637SFrançois Tigeot     HDA_CMD_VERB_GET_DIGITAL_CONV_FMT1, 0x0))
191558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT1(cad, nid, payload)		\
192558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
193558a398bSSimon Schubert     HDA_CMD_VERB_SET_DIGITAL_CONV_FMT1, (payload)))
194558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT2(cad, nid, payload)		\
195558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
196558a398bSSimon Schubert     HDA_CMD_VERB_SET_DIGITAL_CONV_FMT2, (payload)))
197558a398bSSimon Schubert 
198558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_CC_MASK		0x7f00
199558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_CC_SHIFT		8
200558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_L_MASK		0x0080
201558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_L_SHIFT		7
202558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_MASK		0x0040
203558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_SHIFT		6
204558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_MASK	0x0020
205558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_SHIFT	5
206558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_MASK		0x0010
207558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_SHIFT		4
208558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_MASK		0x0008
209558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_SHIFT		3
210558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_MASK		0x0004
211558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_SHIFT		2
212558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_V_MASK		0x0002
213558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_V_SHIFT		1
214558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_MASK		0x0001
215558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_SHIFT	0
216558a398bSSimon Schubert 
217558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_CC(rsp)				\
218558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_CC_MASK) >>			\
219558a398bSSimon Schubert     HDA_CMD_GET_DIGITAL_CONV_FMT_CC_SHIFT)
220558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_L(rsp)				\
221558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_L_MASK) >>			\
222558a398bSSimon Schubert     HDA_CMD_GET_DIGITAL_CONV_FMT_L_SHIFT)
223558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRO(rsp)				\
224558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_MASK) >>			\
225558a398bSSimon Schubert     HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_SHIFT)
226558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO(rsp)			\
227558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_MASK) >>		\
228558a398bSSimon Schubert     HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_SHIFT)
229558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_COPY(rsp)				\
230558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_MASK) >>		\
231558a398bSSimon Schubert     HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_SHIFT)
232558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_PRE(rsp)				\
233558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_MASK) >>			\
234558a398bSSimon Schubert     HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_SHIFT)
235558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG(rsp)				\
236558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_MASK) >>		\
237558a398bSSimon Schubert     HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_SHIFT)
238558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_V(rsp)				\
239558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_V_MASK) >>			\
240558a398bSSimon Schubert     HDA_CMD_GET_DIGITAL_CONV_FMT_V_SHIFT)
241558a398bSSimon Schubert #define HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN(rsp)				\
242558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_MASK) >>		\
243558a398bSSimon Schubert     HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_SHIFT)
244558a398bSSimon Schubert 
245558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT1_L			0x80
246558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT1_PRO		0x40
247558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT1_NAUDIO		0x20
248558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT1_COPY		0x10
249558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT1_PRE		0x08
250558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT1_VCFG		0x04
251558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT1_V			0x02
252558a398bSSimon Schubert #define HDA_CMD_SET_DIGITAL_CONV_FMT1_DIGEN		0x01
253558a398bSSimon Schubert 
254558a398bSSimon Schubert /* Power State */
255558a398bSSimon Schubert #define HDA_CMD_VERB_GET_POWER_STATE			0xf05
256558a398bSSimon Schubert #define HDA_CMD_VERB_SET_POWER_STATE			0x705
257558a398bSSimon Schubert 
258558a398bSSimon Schubert #define HDA_CMD_GET_POWER_STATE(cad, nid)				\
259558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
260558a398bSSimon Schubert     HDA_CMD_VERB_GET_POWER_STATE, 0x0))
261558a398bSSimon Schubert #define HDA_CMD_SET_POWER_STATE(cad, nid, payload)			\
262558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
263558a398bSSimon Schubert     HDA_CMD_VERB_SET_POWER_STATE, (payload)))
264558a398bSSimon Schubert 
265558a398bSSimon Schubert #define HDA_CMD_POWER_STATE_D0				0x00
266558a398bSSimon Schubert #define HDA_CMD_POWER_STATE_D1				0x01
267558a398bSSimon Schubert #define HDA_CMD_POWER_STATE_D2				0x02
268558a398bSSimon Schubert #define HDA_CMD_POWER_STATE_D3				0x03
269558a398bSSimon Schubert 
270558a398bSSimon Schubert #define HDA_CMD_POWER_STATE_ACT_MASK			0x000000f0
271558a398bSSimon Schubert #define HDA_CMD_POWER_STATE_ACT_SHIFT			4
272558a398bSSimon Schubert #define HDA_CMD_POWER_STATE_SET_MASK			0x0000000f
273558a398bSSimon Schubert #define HDA_CMD_POWER_STATE_SET_SHIFT			0
274558a398bSSimon Schubert 
275558a398bSSimon Schubert #define HDA_CMD_GET_POWER_STATE_ACT(rsp)				\
276558a398bSSimon Schubert     (((rsp) & HDA_CMD_POWER_STATE_ACT_MASK) >>				\
277558a398bSSimon Schubert     HDA_CMD_POWER_STATE_ACT_SHIFT)
278558a398bSSimon Schubert #define HDA_CMD_GET_POWER_STATE_SET(rsp)				\
279558a398bSSimon Schubert     (((rsp) & HDA_CMD_POWER_STATE_SET_MASK) >>				\
280558a398bSSimon Schubert     HDA_CMD_POWER_STATE_SET_SHIFT)
281558a398bSSimon Schubert 
282558a398bSSimon Schubert #define HDA_CMD_SET_POWER_STATE_ACT(ps)					\
283558a398bSSimon Schubert     (((ps) << HDA_CMD_POWER_STATE_ACT_SHIFT) &				\
284558a398bSSimon Schubert     HDA_CMD_POWER_STATE_ACT_MASK)
285558a398bSSimon Schubert #define HDA_CMD_SET_POWER_STATE_SET(ps)					\
286558a398bSSimon Schubert     (((ps) << HDA_CMD_POWER_STATE_SET_SHIFT) &				\
287558a398bSSimon Schubert     HDA_CMD_POWER_STATE_ACT_MASK)
288558a398bSSimon Schubert 
289558a398bSSimon Schubert /* Converter Stream, Channel */
290558a398bSSimon Schubert #define HDA_CMD_VERB_GET_CONV_STREAM_CHAN		0xf06
291558a398bSSimon Schubert #define HDA_CMD_VERB_SET_CONV_STREAM_CHAN		0x706
292558a398bSSimon Schubert 
293558a398bSSimon Schubert #define HDA_CMD_GET_CONV_STREAM_CHAN(cad, nid)				\
294558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
295558a398bSSimon Schubert     HDA_CMD_VERB_GET_CONV_STREAM_CHAN, 0x0))
296558a398bSSimon Schubert #define HDA_CMD_SET_CONV_STREAM_CHAN(cad, nid, payload)			\
297558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
298558a398bSSimon Schubert     HDA_CMD_VERB_SET_CONV_STREAM_CHAN, (payload)))
299558a398bSSimon Schubert 
300558a398bSSimon Schubert #define HDA_CMD_CONV_STREAM_CHAN_STREAM_MASK		0x000000f0
301558a398bSSimon Schubert #define HDA_CMD_CONV_STREAM_CHAN_STREAM_SHIFT		4
302558a398bSSimon Schubert #define HDA_CMD_CONV_STREAM_CHAN_CHAN_MASK		0x0000000f
303558a398bSSimon Schubert #define HDA_CMD_CONV_STREAM_CHAN_CHAN_SHIFT		0
304558a398bSSimon Schubert 
305558a398bSSimon Schubert #define HDA_CMD_GET_CONV_STREAM_CHAN_STREAM(rsp)			\
306558a398bSSimon Schubert     (((rsp) & HDA_CMD_CONV_STREAM_CHAN_STREAM_MASK) >>			\
307558a398bSSimon Schubert     HDA_CMD_CONV_STREAM_CHAN_STREAM_SHIFT)
308558a398bSSimon Schubert #define HDA_CMD_GET_CONV_STREAM_CHAN_CHAN(rsp)				\
309558a398bSSimon Schubert     (((rsp) & HDA_CMD_CONV_STREAM_CHAN_CHAN_MASK) >>			\
310558a398bSSimon Schubert     HDA_CMD_CONV_STREAM_CHAN_CHAN_SHIFT)
311558a398bSSimon Schubert 
312558a398bSSimon Schubert #define HDA_CMD_SET_CONV_STREAM_CHAN_STREAM(param)			\
313558a398bSSimon Schubert     (((param) << HDA_CMD_CONV_STREAM_CHAN_STREAM_SHIFT) &		\
314558a398bSSimon Schubert     HDA_CMD_CONV_STREAM_CHAN_STREAM_MASK)
315558a398bSSimon Schubert #define HDA_CMD_SET_CONV_STREAM_CHAN_CHAN(param)			\
316558a398bSSimon Schubert     (((param) << HDA_CMD_CONV_STREAM_CHAN_CHAN_SHIFT) &			\
317558a398bSSimon Schubert     HDA_CMD_CONV_STREAM_CHAN_CHAN_MASK)
318558a398bSSimon Schubert 
319558a398bSSimon Schubert /* Input Converter SDI Select */
320558a398bSSimon Schubert #define HDA_CMD_VERB_GET_INPUT_CONVERTER_SDI_SELECT	0xf04
321558a398bSSimon Schubert #define HDA_CMD_VERB_SET_INPUT_CONVERTER_SDI_SELECT	0x704
322558a398bSSimon Schubert 
323558a398bSSimon Schubert #define HDA_CMD_GET_INPUT_CONVERTER_SDI_SELECT(cad, nid)		\
324558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
325558a398bSSimon Schubert     HDA_CMD_VERB_GET_INPUT_CONVERTER_SDI_SELECT, 0x0))
326558a398bSSimon Schubert #define HDA_CMD_SET_INPUT_CONVERTER_SDI_SELECT(cad, nid, payload)	\
327558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
328558a398bSSimon Schubert     HDA_CMD_VERB_SET_INPUT_CONVERTER_SDI_SELECT, (payload)))
329558a398bSSimon Schubert 
330558a398bSSimon Schubert /* Pin Widget Control */
331558a398bSSimon Schubert #define HDA_CMD_VERB_GET_PIN_WIDGET_CTRL		0xf07
332558a398bSSimon Schubert #define HDA_CMD_VERB_SET_PIN_WIDGET_CTRL		0x707
333558a398bSSimon Schubert 
334558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL(cad, nid)				\
335558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
336558a398bSSimon Schubert     HDA_CMD_VERB_GET_PIN_WIDGET_CTRL, 0x0))
337558a398bSSimon Schubert #define HDA_CMD_SET_PIN_WIDGET_CTRL(cad, nid, payload)			\
338558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
339558a398bSSimon Schubert     HDA_CMD_VERB_SET_PIN_WIDGET_CTRL, (payload)))
340558a398bSSimon Schubert 
341558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_MASK	0x00000080
342558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_SHIFT	7
343558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE_MASK	0x00000040
344558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE_SHIFT	6
345558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_MASK	0x00000020
346558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_SHIFT	5
347558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK	0x00000007
348558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT	0
349558a398bSSimon Schubert 
350558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE(rsp)			\
351558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_MASK) >>		\
352558a398bSSimon Schubert     HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_SHIFT)
353558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE(rsp)			\
354558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE_MASK) >>		\
355558a398bSSimon Schubert     HDA_GET_CMD_PIN_WIDGET_CTRL_OUT_ENABLE_SHIFT)
356558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE(rsp)			\
357558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_MASK) >>		\
358558a398bSSimon Schubert     HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_SHIFT)
359558a398bSSimon Schubert #define HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE(rsp)			\
360558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK) >>		\
361558a398bSSimon Schubert     HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT)
362558a398bSSimon Schubert 
363558a398bSSimon Schubert #define HDA_CMD_SET_PIN_WIDGET_CTRL_HPHN_ENABLE		0x80
364558a398bSSimon Schubert #define HDA_CMD_SET_PIN_WIDGET_CTRL_OUT_ENABLE		0x40
365558a398bSSimon Schubert #define HDA_CMD_SET_PIN_WIDGET_CTRL_IN_ENABLE		0x20
366558a398bSSimon Schubert #define HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK	0x07
367558a398bSSimon Schubert #define HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT	0
368558a398bSSimon Schubert 
369558a398bSSimon Schubert #define HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE(param)			\
370558a398bSSimon Schubert     (((param) << HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT) &	\
371558a398bSSimon Schubert     HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK)
372558a398bSSimon Schubert 
373558a398bSSimon Schubert #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_HIZ		0
374558a398bSSimon Schubert #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_50		1
375558a398bSSimon Schubert #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_GROUND	2
376558a398bSSimon Schubert #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_80		4
377558a398bSSimon Schubert #define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_100		5
378558a398bSSimon Schubert 
379558a398bSSimon Schubert /* Unsolicited Response */
380558a398bSSimon Schubert #define HDA_CMD_VERB_GET_UNSOLICITED_RESPONSE		0xf08
381558a398bSSimon Schubert #define HDA_CMD_VERB_SET_UNSOLICITED_RESPONSE		0x708
382558a398bSSimon Schubert 
383558a398bSSimon Schubert #define HDA_CMD_GET_UNSOLICITED_RESPONSE(cad, nid)			\
384558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
385558a398bSSimon Schubert     HDA_CMD_VERB_GET_UNSOLICITED_RESPONSE, 0x0))
386558a398bSSimon Schubert #define HDA_CMD_SET_UNSOLICITED_RESPONSE(cad, nid, payload)		\
387558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
388558a398bSSimon Schubert     HDA_CMD_VERB_SET_UNSOLICITED_RESPONSE, (payload)))
389558a398bSSimon Schubert 
390558a398bSSimon Schubert #define HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_MASK	0x00000080
391558a398bSSimon Schubert #define HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_SHIFT	7
392558a398bSSimon Schubert #define HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_MASK	0x0000001f
393558a398bSSimon Schubert #define HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_SHIFT	0
394558a398bSSimon Schubert 
395558a398bSSimon Schubert #define HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE(rsp)			\
396558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_MASK) >>		\
397558a398bSSimon Schubert     HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_SHIFT)
398558a398bSSimon Schubert #define HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG(rsp)			\
399558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_MASK) >>		\
400558a398bSSimon Schubert     HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_SHIFT)
401558a398bSSimon Schubert 
402558a398bSSimon Schubert #define HDA_CMD_SET_UNSOLICITED_RESPONSE_ENABLE		0x80
403*2a1ad637SFrançois Tigeot #define HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_MASK	0x3f
404558a398bSSimon Schubert #define HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_SHIFT	0
405558a398bSSimon Schubert 
406558a398bSSimon Schubert #define HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG(param)			\
407558a398bSSimon Schubert     (((param) << HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_SHIFT) &		\
408558a398bSSimon Schubert     HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_MASK)
409558a398bSSimon Schubert 
410558a398bSSimon Schubert /* Pin Sense */
411558a398bSSimon Schubert #define HDA_CMD_VERB_GET_PIN_SENSE			0xf09
412558a398bSSimon Schubert #define HDA_CMD_VERB_SET_PIN_SENSE			0x709
413558a398bSSimon Schubert 
414558a398bSSimon Schubert #define HDA_CMD_GET_PIN_SENSE(cad, nid)					\
415558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
416558a398bSSimon Schubert     HDA_CMD_VERB_GET_PIN_SENSE, 0x0))
417558a398bSSimon Schubert #define HDA_CMD_SET_PIN_SENSE(cad, nid, payload)			\
418558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
419558a398bSSimon Schubert     HDA_CMD_VERB_SET_PIN_SENSE, (payload)))
420558a398bSSimon Schubert 
421*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_PIN_SENSE_PRESENCE_DETECT		0x80000000
422*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_PIN_SENSE_ELD_VALID			0x40000000
423558a398bSSimon Schubert #define HDA_CMD_GET_PIN_SENSE_IMP_SENSE_MASK		0x7fffffff
424558a398bSSimon Schubert #define HDA_CMD_GET_PIN_SENSE_IMP_SENSE_SHIFT		0
425558a398bSSimon Schubert 
426558a398bSSimon Schubert #define HDA_CMD_GET_PIN_SENSE_IMP_SENSE(rsp)				\
427558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_PIN_SENSE_IMP_SENSE_MASK) >>			\
428558a398bSSimon Schubert     HDA_CMD_GET_PIN_SENSE_IMP_SENSE_SHIFT)
429558a398bSSimon Schubert 
430558a398bSSimon Schubert #define HDA_CMD_GET_PIN_SENSE_IMP_SENSE_INVALID		0x7fffffff
431558a398bSSimon Schubert 
432558a398bSSimon Schubert #define HDA_CMD_SET_PIN_SENSE_LEFT_CHANNEL		0x00
433558a398bSSimon Schubert #define HDA_CMD_SET_PIN_SENSE_RIGHT_CHANNEL		0x01
434558a398bSSimon Schubert 
435558a398bSSimon Schubert /* EAPD/BTL Enable */
436558a398bSSimon Schubert #define HDA_CMD_VERB_GET_EAPD_BTL_ENABLE		0xf0c
437558a398bSSimon Schubert #define HDA_CMD_VERB_SET_EAPD_BTL_ENABLE		0x70c
438558a398bSSimon Schubert 
439558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE(cad, nid)				\
440558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
441558a398bSSimon Schubert     HDA_CMD_VERB_GET_EAPD_BTL_ENABLE, 0x0))
442558a398bSSimon Schubert #define HDA_CMD_SET_EAPD_BTL_ENABLE(cad, nid, payload)			\
443558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
444558a398bSSimon Schubert     HDA_CMD_VERB_SET_EAPD_BTL_ENABLE, (payload)))
445558a398bSSimon Schubert 
446558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_MASK	0x00000004
447558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_SHIFT	2
448558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_MASK		0x00000002
449558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_SHIFT		1
450558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_MASK		0x00000001
451558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_SHIFT		0
452558a398bSSimon Schubert 
453558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP(rsp)			\
454558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_MASK) >>		\
455558a398bSSimon Schubert     HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_SHIFT)
456558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD(rsp)				\
457558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_MASK) >>			\
458558a398bSSimon Schubert     HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_SHIFT)
459558a398bSSimon Schubert #define HDA_CMD_GET_EAPD_BTL_ENABLE_BTL(rsp)				\
460558a398bSSimon Schubert     (((rsp) & HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_MASK) >>			\
461558a398bSSimon Schubert     HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_SHIFT)
462558a398bSSimon Schubert 
463558a398bSSimon Schubert #define HDA_CMD_SET_EAPD_BTL_ENABLE_LR_SWAP		0x04
464558a398bSSimon Schubert #define HDA_CMD_SET_EAPD_BTL_ENABLE_EAPD		0x02
465558a398bSSimon Schubert #define HDA_CMD_SET_EAPD_BTL_ENABLE_BTL			0x01
466558a398bSSimon Schubert 
467558a398bSSimon Schubert /* GPI Data */
468558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPI_DATA			0xf10
469558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPI_DATA			0x710
470558a398bSSimon Schubert 
471558a398bSSimon Schubert #define HDA_CMD_GET_GPI_DATA(cad, nid)					\
472558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
473558a398bSSimon Schubert     HDA_CMD_VERB_GET_GPI_DATA, 0x0))
474558a398bSSimon Schubert #define HDA_CMD_SET_GPI_DATA(cad, nid)					\
475558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
476558a398bSSimon Schubert     HDA_CMD_VERB_SET_GPI_DATA, (payload)))
477558a398bSSimon Schubert 
478558a398bSSimon Schubert /* GPI Wake Enable Mask */
479558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPI_WAKE_ENABLE_MASK		0xf11
480558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPI_WAKE_ENABLE_MASK		0x711
481558a398bSSimon Schubert 
482558a398bSSimon Schubert #define HDA_CMD_GET_GPI_WAKE_ENABLE_MASK(cad, nid)			\
483558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
484558a398bSSimon Schubert     HDA_CMD_VERB_GET_GPI_WAKE_ENABLE_MASK, 0x0))
485558a398bSSimon Schubert #define HDA_CMD_SET_GPI_WAKE_ENABLE_MASK(cad, nid, payload)		\
486558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
487558a398bSSimon Schubert     HDA_CMD_VERB_SET_GPI_WAKE_ENABLE_MASK, (payload)))
488558a398bSSimon Schubert 
489558a398bSSimon Schubert /* GPI Unsolicited Enable Mask */
490558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPI_UNSOLICITED_ENABLE_MASK	0xf12
491558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPI_UNSOLICITED_ENABLE_MASK	0x712
492558a398bSSimon Schubert 
493558a398bSSimon Schubert #define HDA_CMD_GET_GPI_UNSOLICITED_ENABLE_MASK(cad, nid)		\
494558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
495558a398bSSimon Schubert     HDA_CMD_VERB_GET_GPI_UNSOLICITED_ENABLE_MASK, 0x0))
496558a398bSSimon Schubert #define HDA_CMD_SET_GPI_UNSOLICITED_ENABLE_MASK(cad, nid, payload)	\
497558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
498558a398bSSimon Schubert     HDA_CMD_VERB_SET_GPI_UNSOLICITED_ENABLE_MASK, (payload)))
499558a398bSSimon Schubert 
500558a398bSSimon Schubert /* GPI Sticky Mask */
501558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPI_STICKY_MASK		0xf13
502558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPI_STICKY_MASK		0x713
503558a398bSSimon Schubert 
504558a398bSSimon Schubert #define HDA_CMD_GET_GPI_STICKY_MASK(cad, nid)				\
505558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
506558a398bSSimon Schubert     HDA_CMD_VERB_GET_GPI_STICKY_MASK, 0x0))
507558a398bSSimon Schubert #define HDA_CMD_SET_GPI_STICKY_MASK(cad, nid, payload)			\
508558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
509558a398bSSimon Schubert     HDA_CMD_VERB_SET_GPI_STICKY_MASK, (payload)))
510558a398bSSimon Schubert 
511558a398bSSimon Schubert /* GPO Data */
512558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPO_DATA			0xf14
513558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPO_DATA			0x714
514558a398bSSimon Schubert 
515558a398bSSimon Schubert #define HDA_CMD_GET_GPO_DATA(cad, nid)					\
516558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
517558a398bSSimon Schubert     HDA_CMD_VERB_GET_GPO_DATA, 0x0))
518558a398bSSimon Schubert #define HDA_CMD_SET_GPO_DATA(cad, nid, payload)				\
519558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
520558a398bSSimon Schubert     HDA_CMD_VERB_SET_GPO_DATA, (payload)))
521558a398bSSimon Schubert 
522558a398bSSimon Schubert /* GPIO Data */
523558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPIO_DATA			0xf15
524558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPIO_DATA			0x715
525558a398bSSimon Schubert 
526558a398bSSimon Schubert #define HDA_CMD_GET_GPIO_DATA(cad, nid)					\
527558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
528558a398bSSimon Schubert     HDA_CMD_VERB_GET_GPIO_DATA, 0x0))
529558a398bSSimon Schubert #define HDA_CMD_SET_GPIO_DATA(cad, nid, payload)			\
530558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
531558a398bSSimon Schubert     HDA_CMD_VERB_SET_GPIO_DATA, (payload)))
532558a398bSSimon Schubert 
533558a398bSSimon Schubert /* GPIO Enable Mask */
534558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPIO_ENABLE_MASK		0xf16
535558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPIO_ENABLE_MASK		0x716
536558a398bSSimon Schubert 
537558a398bSSimon Schubert #define HDA_CMD_GET_GPIO_ENABLE_MASK(cad, nid)				\
538558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
539558a398bSSimon Schubert     HDA_CMD_VERB_GET_GPIO_ENABLE_MASK, 0x0))
540558a398bSSimon Schubert #define HDA_CMD_SET_GPIO_ENABLE_MASK(cad, nid, payload)			\
541558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
542558a398bSSimon Schubert     HDA_CMD_VERB_SET_GPIO_ENABLE_MASK, (payload)))
543558a398bSSimon Schubert 
544558a398bSSimon Schubert /* GPIO Direction */
545558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPIO_DIRECTION			0xf17
546558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPIO_DIRECTION			0x717
547558a398bSSimon Schubert 
548558a398bSSimon Schubert #define HDA_CMD_GET_GPIO_DIRECTION(cad, nid)				\
549558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
550558a398bSSimon Schubert     HDA_CMD_VERB_GET_GPIO_DIRECTION, 0x0))
551558a398bSSimon Schubert #define HDA_CMD_SET_GPIO_DIRECTION(cad, nid, payload)			\
552558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
553558a398bSSimon Schubert     HDA_CMD_VERB_SET_GPIO_DIRECTION, (payload)))
554558a398bSSimon Schubert 
555558a398bSSimon Schubert /* GPIO Wake Enable Mask */
556558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPIO_WAKE_ENABLE_MASK		0xf18
557558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPIO_WAKE_ENABLE_MASK		0x718
558558a398bSSimon Schubert 
559558a398bSSimon Schubert #define HDA_CMD_GET_GPIO_WAKE_ENABLE_MASK(cad, nid)			\
560558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
561558a398bSSimon Schubert     HDA_CMD_VERB_GET_GPIO_WAKE_ENABLE_MASK, 0x0))
562558a398bSSimon Schubert #define HDA_CMD_SET_GPIO_WAKE_ENABLE_MASK(cad, nid, payload)		\
563558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
564558a398bSSimon Schubert     HDA_CMD_VERB_SET_GPIO_WAKE_ENABLE_MASK, (payload)))
565558a398bSSimon Schubert 
566558a398bSSimon Schubert /* GPIO Unsolicited Enable Mask */
567558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPIO_UNSOLICITED_ENABLE_MASK	0xf19
568558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPIO_UNSOLICITED_ENABLE_MASK	0x719
569558a398bSSimon Schubert 
570558a398bSSimon Schubert #define HDA_CMD_GET_GPIO_UNSOLICITED_ENABLE_MASK(cad, nid)		\
571558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
572558a398bSSimon Schubert     HDA_CMD_VERB_GET_GPIO_UNSOLICITED_ENABLE_MASK, 0x0))
573558a398bSSimon Schubert #define HDA_CMD_SET_GPIO_UNSOLICITED_ENABLE_MASK(cad, nid, payload)	\
574558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
575558a398bSSimon Schubert     HDA_CMD_VERB_SET_GPIO_UNSOLICITED_ENABLE_MASK, (payload)))
576558a398bSSimon Schubert 
577558a398bSSimon Schubert /* GPIO_STICKY_MASK */
578558a398bSSimon Schubert #define HDA_CMD_VERB_GET_GPIO_STICKY_MASK		0xf1a
579558a398bSSimon Schubert #define HDA_CMD_VERB_SET_GPIO_STICKY_MASK		0x71a
580558a398bSSimon Schubert 
581558a398bSSimon Schubert #define HDA_CMD_GET_GPIO_STICKY_MASK(cad, nid)				\
582558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
583558a398bSSimon Schubert     HDA_CMD_VERB_GET_GPIO_STICKY_MASK, 0x0))
584558a398bSSimon Schubert #define HDA_CMD_SET_GPIO_STICKY_MASK(cad, nid, payload)			\
585558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
586558a398bSSimon Schubert     HDA_CMD_VERB_SET_GPIO_STICKY_MASK, (payload)))
587558a398bSSimon Schubert 
588558a398bSSimon Schubert /* Beep Generation */
589558a398bSSimon Schubert #define HDA_CMD_VERB_GET_BEEP_GENERATION		0xf0a
590558a398bSSimon Schubert #define HDA_CMD_VERB_SET_BEEP_GENERATION		0x70a
591558a398bSSimon Schubert 
592558a398bSSimon Schubert #define HDA_CMD_GET_BEEP_GENERATION(cad, nid)				\
593558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
594558a398bSSimon Schubert     HDA_CMD_VERB_GET_BEEP_GENERATION, 0x0))
595558a398bSSimon Schubert #define HDA_CMD_SET_BEEP_GENERATION(cad, nid, payload)			\
596558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
597558a398bSSimon Schubert     HDA_CMD_VERB_SET_BEEP_GENERATION, (payload)))
598558a398bSSimon Schubert 
599558a398bSSimon Schubert /* Volume Knob */
600558a398bSSimon Schubert #define HDA_CMD_VERB_GET_VOLUME_KNOB			0xf0f
601558a398bSSimon Schubert #define HDA_CMD_VERB_SET_VOLUME_KNOB			0x70f
602558a398bSSimon Schubert 
603558a398bSSimon Schubert #define HDA_CMD_GET_VOLUME_KNOB(cad, nid)				\
604558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
605558a398bSSimon Schubert     HDA_CMD_VERB_GET_VOLUME_KNOB, 0x0))
606558a398bSSimon Schubert #define HDA_CMD_SET_VOLUME_KNOB(cad, nid, payload)			\
607558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
608558a398bSSimon Schubert     HDA_CMD_VERB_SET_VOLUME_KNOB, (payload)))
609558a398bSSimon Schubert 
610558a398bSSimon Schubert /* Subsystem ID */
611558a398bSSimon Schubert #define HDA_CMD_VERB_GET_SUBSYSTEM_ID			0xf20
612558a398bSSimon Schubert #define HDA_CMD_VERB_SET_SUSBYSTEM_ID1			0x720
613558a398bSSimon Schubert #define HDA_CMD_VERB_SET_SUBSYSTEM_ID2			0x721
614558a398bSSimon Schubert #define HDA_CMD_VERB_SET_SUBSYSTEM_ID3			0x722
615558a398bSSimon Schubert #define HDA_CMD_VERB_SET_SUBSYSTEM_ID4			0x723
616558a398bSSimon Schubert 
617558a398bSSimon Schubert #define HDA_CMD_GET_SUBSYSTEM_ID(cad, nid)				\
618558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
619558a398bSSimon Schubert     HDA_CMD_VERB_GET_SUBSYSTEM_ID, 0x0))
620558a398bSSimon Schubert #define HDA_CMD_SET_SUBSYSTEM_ID1(cad, nid, payload)			\
621558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
622558a398bSSimon Schubert     HDA_CMD_VERB_SET_SUSBYSTEM_ID1, (payload)))
623558a398bSSimon Schubert #define HDA_CMD_SET_SUBSYSTEM_ID2(cad, nid, payload)			\
624558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
625558a398bSSimon Schubert     HDA_CMD_VERB_SET_SUSBYSTEM_ID2, (payload)))
626558a398bSSimon Schubert #define HDA_CMD_SET_SUBSYSTEM_ID3(cad, nid, payload)			\
627558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
628558a398bSSimon Schubert     HDA_CMD_VERB_SET_SUSBYSTEM_ID3, (payload)))
629558a398bSSimon Schubert #define HDA_CMD_SET_SUBSYSTEM_ID4(cad, nid, payload)			\
630558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
631558a398bSSimon Schubert     HDA_CMD_VERB_SET_SUSBYSTEM_ID4, (payload)))
632558a398bSSimon Schubert 
633558a398bSSimon Schubert /* Configuration Default */
634558a398bSSimon Schubert #define HDA_CMD_VERB_GET_CONFIGURATION_DEFAULT		0xf1c
635558a398bSSimon Schubert #define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT1		0x71c
636558a398bSSimon Schubert #define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT2		0x71d
637558a398bSSimon Schubert #define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT3		0x71e
638558a398bSSimon Schubert #define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT4		0x71f
639558a398bSSimon Schubert 
640558a398bSSimon Schubert #define HDA_CMD_GET_CONFIGURATION_DEFAULT(cad, nid)			\
641558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
642558a398bSSimon Schubert     HDA_CMD_VERB_GET_CONFIGURATION_DEFAULT, 0x0))
643558a398bSSimon Schubert #define HDA_CMD_SET_CONFIGURATION_DEFAULT1(cad, nid, payload)		\
644558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
645558a398bSSimon Schubert     HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT1, (payload)))
646558a398bSSimon Schubert #define HDA_CMD_SET_CONFIGURATION_DEFAULT2(cad, nid, payload)		\
647558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
648558a398bSSimon Schubert     HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT2, (payload)))
649558a398bSSimon Schubert #define HDA_CMD_SET_CONFIGURATION_DEFAULT3(cad, nid, payload)		\
650558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
651558a398bSSimon Schubert     HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT3, (payload)))
652558a398bSSimon Schubert #define HDA_CMD_SET_CONFIGURATION_DEFAULT4(cad, nid, payload)		\
653558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
654558a398bSSimon Schubert     HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT4, (payload)))
655558a398bSSimon Schubert 
656558a398bSSimon Schubert /* Stripe Control */
657558a398bSSimon Schubert #define HDA_CMD_VERB_GET_STRIPE_CONTROL			0xf24
658558a398bSSimon Schubert #define HDA_CMD_VERB_SET_STRIPE_CONTROL			0x724
659558a398bSSimon Schubert 
660*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_STRIPE_CONTROL(cad, nid)				\
661558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
662558a398bSSimon Schubert     HDA_CMD_VERB_GET_STRIPE_CONTROL, 0x0))
663*2a1ad637SFrançois Tigeot #define HDA_CMD_SET_STRIPE_CONTROL(cad, nid, payload)			\
664558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
665558a398bSSimon Schubert     HDA_CMD_VERB_SET_STRIPE_CONTROL, (payload)))
666558a398bSSimon Schubert 
667*2a1ad637SFrançois Tigeot /* Channel Count Control */
668*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_CONV_CHAN_COUNT			0xf2d
669*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_SET_CONV_CHAN_COUNT			0x72d
670*2a1ad637SFrançois Tigeot 
671*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_CONV_CHAN_COUNT(cad, nid)				\
672*2a1ad637SFrançois Tigeot     (HDA_CMD_12BIT((cad), (nid),					\
673*2a1ad637SFrançois Tigeot     HDA_CMD_VERB_GET_CONV_CHAN_COUNT, 0x0))
674*2a1ad637SFrançois Tigeot #define HDA_CMD_SET_CONV_CHAN_COUNT(cad, nid, payload)			\
675*2a1ad637SFrançois Tigeot     (HDA_CMD_12BIT((cad), (nid),					\
676*2a1ad637SFrançois Tigeot     HDA_CMD_VERB_SET_CONV_CHAN_COUNT, (payload)))
677*2a1ad637SFrançois Tigeot 
678*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_HDMI_DIP_SIZE			0xf2e
679*2a1ad637SFrançois Tigeot 
680*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_HDMI_DIP_SIZE(cad, nid, arg)			\
681*2a1ad637SFrançois Tigeot     (HDA_CMD_12BIT((cad), (nid),					\
682*2a1ad637SFrançois Tigeot     HDA_CMD_VERB_GET_HDMI_DIP_SIZE, (arg)))
683*2a1ad637SFrançois Tigeot 
684*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_HDMI_ELDD			0xf2f
685*2a1ad637SFrançois Tigeot 
686*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_HDMI_ELDD(cad, nid, off)				\
687*2a1ad637SFrançois Tigeot     (HDA_CMD_12BIT((cad), (nid),					\
688*2a1ad637SFrançois Tigeot     HDA_CMD_VERB_GET_HDMI_ELDD, (off)))
689*2a1ad637SFrançois Tigeot 
690*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_HDMI_DIP_INDEX			0xf30
691*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_SET_HDMI_DIP_INDEX			0x730
692*2a1ad637SFrançois Tigeot 
693*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_HDMI_DIP_INDEX(cad, nid)				\
694*2a1ad637SFrançois Tigeot     (HDA_CMD_12BIT((cad), (nid),					\
695*2a1ad637SFrançois Tigeot     HDA_CMD_VERB_GET_HDMI_DIP_INDEX, 0x0))
696*2a1ad637SFrançois Tigeot #define HDA_CMD_SET_HDMI_DIP_INDEX(cad, nid, payload)			\
697*2a1ad637SFrançois Tigeot     (HDA_CMD_12BIT((cad), (nid),					\
698*2a1ad637SFrançois Tigeot     HDA_CMD_VERB_SET_HDMI_DIP_INDEX, (payload)))
699*2a1ad637SFrançois Tigeot 
700*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_HDMI_DIP_DATA			0xf31
701*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_SET_HDMI_DIP_DATA			0x731
702*2a1ad637SFrançois Tigeot 
703*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_HDMI_DIP_DATA(cad, nid)				\
704*2a1ad637SFrançois Tigeot     (HDA_CMD_12BIT((cad), (nid),					\
705*2a1ad637SFrançois Tigeot     HDA_CMD_VERB_GET_HDMI_DIP_DATA, 0x0))
706*2a1ad637SFrançois Tigeot #define HDA_CMD_SET_HDMI_DIP_DATA(cad, nid, payload)			\
707*2a1ad637SFrançois Tigeot     (HDA_CMD_12BIT((cad), (nid),					\
708*2a1ad637SFrançois Tigeot     HDA_CMD_VERB_SET_HDMI_DIP_DATA, (payload)))
709*2a1ad637SFrançois Tigeot 
710*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_HDMI_DIP_XMIT			0xf32
711*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_SET_HDMI_DIP_XMIT			0x732
712*2a1ad637SFrançois Tigeot 
713*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_HDMI_DIP_XMIT(cad, nid)				\
714*2a1ad637SFrançois Tigeot     (HDA_CMD_12BIT((cad), (nid),					\
715*2a1ad637SFrançois Tigeot     HDA_CMD_VERB_GET_HDMI_DIP_XMIT, 0x0))
716*2a1ad637SFrançois Tigeot #define HDA_CMD_SET_HDMI_DIP_XMIT(cad, nid, payload)			\
717*2a1ad637SFrançois Tigeot     (HDA_CMD_12BIT((cad), (nid),					\
718*2a1ad637SFrançois Tigeot     HDA_CMD_VERB_SET_HDMI_DIP_XMIT, (payload)))
719*2a1ad637SFrançois Tigeot 
720*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_HDMI_CP_CTRL			0xf33
721*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_SET_HDMI_CP_CTRL			0x733
722*2a1ad637SFrançois Tigeot 
723*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_GET_HDMI_CHAN_SLOT			0xf34
724*2a1ad637SFrançois Tigeot #define HDA_CMD_VERB_SET_HDMI_CHAN_SLOT			0x734
725*2a1ad637SFrançois Tigeot 
726*2a1ad637SFrançois Tigeot #define HDA_CMD_GET_HDMI_CHAN_SLOT(cad, nid)				\
727*2a1ad637SFrançois Tigeot     (HDA_CMD_12BIT((cad), (nid),					\
728*2a1ad637SFrançois Tigeot     HDA_CMD_VERB_GET_HDMI_CHAN_SLOT, 0x0))
729*2a1ad637SFrançois Tigeot #define HDA_CMD_SET_HDMI_CHAN_SLOT(cad, nid, payload)			\
730*2a1ad637SFrançois Tigeot     (HDA_CMD_12BIT((cad), (nid),					\
731*2a1ad637SFrançois Tigeot     HDA_CMD_VERB_SET_HDMI_CHAN_SLOT, (payload)))
732*2a1ad637SFrançois Tigeot 
733*2a1ad637SFrançois Tigeot #define	HDA_HDMI_CODING_TYPE_REF_STREAM_HEADER		0
734*2a1ad637SFrançois Tigeot #define	HDA_HDMI_CODING_TYPE_LPCM			1
735*2a1ad637SFrançois Tigeot #define	HDA_HDMI_CODING_TYPE_AC3			2
736*2a1ad637SFrançois Tigeot #define	HDA_HDMI_CODING_TYPE_MPEG1			3
737*2a1ad637SFrançois Tigeot #define	HDA_HDMI_CODING_TYPE_MP3			4
738*2a1ad637SFrançois Tigeot #define	HDA_HDMI_CODING_TYPE_MPEG2			5
739*2a1ad637SFrançois Tigeot #define	HDA_HDMI_CODING_TYPE_AACLC			6
740*2a1ad637SFrançois Tigeot #define	HDA_HDMI_CODING_TYPE_DTS			7
741*2a1ad637SFrançois Tigeot #define	HDA_HDMI_CODING_TYPE_ATRAC			8
742*2a1ad637SFrançois Tigeot #define	HDA_HDMI_CODING_TYPE_SACD			9
743*2a1ad637SFrançois Tigeot #define	HDA_HDMI_CODING_TYPE_EAC3			10
744*2a1ad637SFrançois Tigeot #define	HDA_HDMI_CODING_TYPE_DTS_HD			11
745*2a1ad637SFrançois Tigeot #define	HDA_HDMI_CODING_TYPE_MLP			12
746*2a1ad637SFrançois Tigeot #define	HDA_HDMI_CODING_TYPE_DST			13
747*2a1ad637SFrançois Tigeot #define	HDA_HDMI_CODING_TYPE_WMAPRO			14
748*2a1ad637SFrançois Tigeot #define	HDA_HDMI_CODING_TYPE_REF_CTX			15
749*2a1ad637SFrançois Tigeot 
750558a398bSSimon Schubert /* Function Reset */
751558a398bSSimon Schubert #define HDA_CMD_VERB_FUNCTION_RESET			0x7ff
752558a398bSSimon Schubert 
753558a398bSSimon Schubert #define HDA_CMD_FUNCTION_RESET(cad, nid)				\
754558a398bSSimon Schubert     (HDA_CMD_12BIT((cad), (nid),					\
755558a398bSSimon Schubert     HDA_CMD_VERB_FUNCTION_RESET, 0x0))
756558a398bSSimon Schubert 
757558a398bSSimon Schubert 
758558a398bSSimon Schubert /****************************************************************************
759558a398bSSimon Schubert  * HDA Device Parameters
760558a398bSSimon Schubert  ****************************************************************************/
761558a398bSSimon Schubert 
762558a398bSSimon Schubert /* Vendor ID */
763558a398bSSimon Schubert #define HDA_PARAM_VENDOR_ID				0x00
764558a398bSSimon Schubert 
765558a398bSSimon Schubert #define HDA_PARAM_VENDOR_ID_VENDOR_ID_MASK		0xffff0000
766558a398bSSimon Schubert #define HDA_PARAM_VENDOR_ID_VENDOR_ID_SHIFT		16
767558a398bSSimon Schubert #define HDA_PARAM_VENDOR_ID_DEVICE_ID_MASK		0x0000ffff
768558a398bSSimon Schubert #define HDA_PARAM_VENDOR_ID_DEVICE_ID_SHIFT		0
769558a398bSSimon Schubert 
770558a398bSSimon Schubert #define HDA_PARAM_VENDOR_ID_VENDOR_ID(param)				\
771558a398bSSimon Schubert     (((param) & HDA_PARAM_VENDOR_ID_VENDOR_ID_MASK) >>			\
772558a398bSSimon Schubert     HDA_PARAM_VENDOR_ID_VENDOR_ID_SHIFT)
773558a398bSSimon Schubert #define HDA_PARAM_VENDOR_ID_DEVICE_ID(param)				\
774558a398bSSimon Schubert     (((param) & HDA_PARAM_VENDOR_ID_DEVICE_ID_MASK) >>			\
775558a398bSSimon Schubert     HDA_PARAM_VENDOR_ID_DEVICE_ID_SHIFT)
776558a398bSSimon Schubert 
777558a398bSSimon Schubert /* Revision ID */
778558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID				0x02
779558a398bSSimon Schubert 
780558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_MAJREV_MASK		0x00f00000
781558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_MAJREV_SHIFT		20
782558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_MINREV_MASK		0x000f0000
783558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_MINREV_SHIFT		16
784558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_REVISION_ID_MASK		0x0000ff00
785558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_REVISION_ID_SHIFT		8
786558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_STEPPING_ID_MASK		0x000000ff
787558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_STEPPING_ID_SHIFT		0
788558a398bSSimon Schubert 
789558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_MAJREV(param)				\
790558a398bSSimon Schubert     (((param) & HDA_PARAM_REVISION_ID_MAJREV_MASK) >>			\
791558a398bSSimon Schubert     HDA_PARAM_REVISION_ID_MAJREV_SHIFT)
792558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_MINREV(param)				\
793558a398bSSimon Schubert     (((param) & HDA_PARAM_REVISION_ID_MINREV_MASK) >>			\
794558a398bSSimon Schubert     HDA_PARAM_REVISION_ID_MINREV_SHIFT)
795558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_REVISION_ID(param)			\
796558a398bSSimon Schubert     (((param) & HDA_PARAM_REVISION_ID_REVISION_ID_MASK) >>		\
797558a398bSSimon Schubert     HDA_PARAM_REVISION_ID_REVISION_ID_SHIFT)
798558a398bSSimon Schubert #define HDA_PARAM_REVISION_ID_STEPPING_ID(param)			\
799558a398bSSimon Schubert     (((param) & HDA_PARAM_REVISION_ID_STEPPING_ID_MASK) >>		\
800558a398bSSimon Schubert     HDA_PARAM_REVISION_ID_STEPPING_ID_SHIFT)
801558a398bSSimon Schubert 
802*2a1ad637SFrançois Tigeot /* Subordinate Node Cound */
803558a398bSSimon Schubert #define HDA_PARAM_SUB_NODE_COUNT			0x04
804558a398bSSimon Schubert 
805558a398bSSimon Schubert #define HDA_PARAM_SUB_NODE_COUNT_START_MASK		0x00ff0000
806558a398bSSimon Schubert #define HDA_PARAM_SUB_NODE_COUNT_START_SHIFT		16
807558a398bSSimon Schubert #define HDA_PARAM_SUB_NODE_COUNT_TOTAL_MASK		0x000000ff
808558a398bSSimon Schubert #define HDA_PARAM_SUB_NODE_COUNT_TOTAL_SHIFT		0
809558a398bSSimon Schubert 
810558a398bSSimon Schubert #define HDA_PARAM_SUB_NODE_COUNT_START(param)				\
811558a398bSSimon Schubert     (((param) & HDA_PARAM_SUB_NODE_COUNT_START_MASK) >>			\
812558a398bSSimon Schubert     HDA_PARAM_SUB_NODE_COUNT_START_SHIFT)
813558a398bSSimon Schubert #define HDA_PARAM_SUB_NODE_COUNT_TOTAL(param)				\
814558a398bSSimon Schubert     (((param) & HDA_PARAM_SUB_NODE_COUNT_TOTAL_MASK) >>			\
815558a398bSSimon Schubert     HDA_PARAM_SUB_NODE_COUNT_TOTAL_SHIFT)
816558a398bSSimon Schubert 
817558a398bSSimon Schubert /* Function Group Type */
818558a398bSSimon Schubert #define HDA_PARAM_FCT_GRP_TYPE				0x05
819558a398bSSimon Schubert 
820558a398bSSimon Schubert #define HDA_PARAM_FCT_GRP_TYPE_UNSOL_MASK		0x00000100
821558a398bSSimon Schubert #define HDA_PARAM_FCT_GRP_TYPE_UNSOL_SHIFT		8
822558a398bSSimon Schubert #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_MASK		0x000000ff
823558a398bSSimon Schubert #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_SHIFT	0
824558a398bSSimon Schubert 
825558a398bSSimon Schubert #define HDA_PARAM_FCT_GRP_TYPE_UNSOL(param)				\
826558a398bSSimon Schubert     (((param) & HDA_PARAM_FCT_GRP_TYPE_UNSOL_MASK) >>			\
827558a398bSSimon Schubert     HDA_PARAM_FCT_GROUP_TYPE_UNSOL_SHIFT)
828558a398bSSimon Schubert #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE(param)				\
829558a398bSSimon Schubert     (((param) & HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_MASK) >>		\
830558a398bSSimon Schubert     HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_SHIFT)
831558a398bSSimon Schubert 
832558a398bSSimon Schubert #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_AUDIO		0x01
833558a398bSSimon Schubert #define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_MODEM		0x02
834558a398bSSimon Schubert 
835558a398bSSimon Schubert /* Audio Function Group Capabilities */
836558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP			0x08
837558a398bSSimon Schubert 
838558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_MASK	0x00010000
839558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_SHIFT	16
840558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_MASK	0x00000f00
841558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_SHIFT	8
842558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_MASK	0x0000000f
843558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_SHIFT	0
844558a398bSSimon Schubert 
845558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN(param)			\
846558a398bSSimon Schubert     (((param) & HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_MASK) >>		\
847558a398bSSimon Schubert     HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_SHIFT)
848558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY(param)			\
849558a398bSSimon Schubert     (((param) & HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_MASK) >>	\
850558a398bSSimon Schubert     HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_SHIFT)
851558a398bSSimon Schubert #define HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY(param)			\
852558a398bSSimon Schubert     (((param) & HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_MASK) >>	\
853558a398bSSimon Schubert     HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_SHIFT)
854558a398bSSimon Schubert 
855558a398bSSimon Schubert /* Audio Widget Capabilities */
856558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP			0x09
857558a398bSSimon Schubert 
858558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_MASK		0x00f00000
859558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_SHIFT		20
860558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_MASK		0x000f0000
861558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_SHIFT		16
862*2a1ad637SFrançois Tigeot #define HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_MASK		0x0000e000
863*2a1ad637SFrançois Tigeot #define HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_SHIFT		13
864*2a1ad637SFrançois Tigeot #define HDA_PARAM_AUDIO_WIDGET_CAP_CP_MASK		0x00001000
865*2a1ad637SFrançois Tigeot #define HDA_PARAM_AUDIO_WIDGET_CAP_CP_SHIFT		12
866558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_MASK		0x00000800
867558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_SHIFT	11
868558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_MASK	0x00000400
869558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_SHIFT	10
870558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_MASK		0x00000200
871558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_SHIFT	9
872558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_MASK	0x00000100
873558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_SHIFT	8
874558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_MASK	0x00000080
875558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_SHIFT	7
876558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_MASK	0x00000040
877558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_SHIFT	6
878558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_MASK		0x00000020
879558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_SHIFT		5
880558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_MASK	0x00000010
881558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_SHIFT	4
882558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_MASK		0x00000008
883558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_SHIFT	3
884558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_MASK		0x00000004
885558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_SHIFT	2
886558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_MASK		0x00000002
887558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_SHIFT		1
888558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_MASK		0x00000001
889558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_SHIFT		0
890558a398bSSimon Schubert 
891558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE(param)				\
892558a398bSSimon Schubert     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_MASK) >>		\
893558a398bSSimon Schubert     HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_SHIFT)
894558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_DELAY(param)				\
895558a398bSSimon Schubert     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_MASK) >>		\
896558a398bSSimon Schubert     HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_SHIFT)
897*2a1ad637SFrançois Tigeot #define HDA_PARAM_AUDIO_WIDGET_CAP_CC(param)				\
898*2a1ad637SFrançois Tigeot     ((((param) & HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_MASK) >>		\
899*2a1ad637SFrançois Tigeot     (HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_SHIFT - 1)) |			\
900*2a1ad637SFrançois Tigeot     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_MASK) >>		\
901*2a1ad637SFrançois Tigeot     HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_SHIFT))
902*2a1ad637SFrançois Tigeot #define HDA_PARAM_AUDIO_WIDGET_CAP_CP(param)				\
903*2a1ad637SFrançois Tigeot     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_CP_MASK) >>			\
904*2a1ad637SFrançois Tigeot     HDA_PARAM_AUDIO_WIDGET_CAP_CP_SHIFT)
905558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP(param)			\
906558a398bSSimon Schubert     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_MASK) >>		\
907558a398bSSimon Schubert     HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_SHIFT)
908558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL(param)			\
909558a398bSSimon Schubert     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_MASK) >>		\
910558a398bSSimon Schubert     HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_SHIFT)
911558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL(param)			\
912558a398bSSimon Schubert     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_MASK) >>		\
913558a398bSSimon Schubert     HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_SHIFT)
914558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST(param)			\
915558a398bSSimon Schubert     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_MASK) >>		\
916558a398bSSimon Schubert     HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_SHIFT)
917558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP(param)			\
918558a398bSSimon Schubert     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_MASK) >>		\
919558a398bSSimon Schubert     HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_SHIFT)
920558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET(param)			\
921558a398bSSimon Schubert     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_MASK) >>		\
922558a398bSSimon Schubert     HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_SHIFT)
923558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE(param)			\
924558a398bSSimon Schubert     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_MASK) >>		\
925558a398bSSimon Schubert     HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_SHIFT)
926558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR(param)			\
927558a398bSSimon Schubert     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_MASK) >>		\
928558a398bSSimon Schubert     HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_SHIFT)
929558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR(param)			\
930558a398bSSimon Schubert     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_MASK) >>		\
931558a398bSSimon Schubert     HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_SHIFT)
932558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP(param)			\
933558a398bSSimon Schubert     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_MASK) >>		\
934558a398bSSimon Schubert     HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_SHIFT)
935558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP(param)			\
936558a398bSSimon Schubert     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_MASK) >>		\
937558a398bSSimon Schubert     HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_SHIFT)
938558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_STEREO(param)			\
939558a398bSSimon Schubert     (((param) & HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_MASK) >>		\
940558a398bSSimon Schubert     HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_SHIFT)
941558a398bSSimon Schubert 
942558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_OUTPUT	0x0
943558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_INPUT	0x1
944558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_MIXER	0x2
945558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_SELECTOR	0x3
946558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_PIN_COMPLEX	0x4
947558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_POWER_WIDGET	0x5
948558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_VOLUME_WIDGET	0x6
949558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_BEEP_WIDGET	0x7
950558a398bSSimon Schubert #define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_VENDOR_WIDGET	0xf
951558a398bSSimon Schubert 
952558a398bSSimon Schubert /* Supported PCM Size, Rates */
953558a398bSSimon Schubert 
954558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE			0x0a
955558a398bSSimon Schubert 
956558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_MASK		0x00100000
957558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_SHIFT	20
958558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_MASK		0x00080000
959558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_SHIFT	19
960558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_MASK		0x00040000
961558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_SHIFT	18
962558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_MASK		0x00020000
963558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_SHIFT	17
964558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_MASK		0x00010000
965558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_SHIFT		16
9664886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_MASK		0x00000001
9674886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_SHIFT		0
9684886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_MASK		0x00000002
9694886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_SHIFT	1
9704886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_MASK		0x00000004
9714886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_SHIFT	2
9724886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_MASK		0x00000008
9734886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_SHIFT	3
9744886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_MASK		0x00000010
9754886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_SHIFT	4
9764886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_MASK		0x00000020
9774886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_SHIFT	5
9784886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_MASK		0x00000040
9794886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_SHIFT	6
9804886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_MASK		0x00000080
9814886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_SHIFT	7
9824886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_MASK		0x00000100
9834886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_SHIFT	8
9844886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_MASK	0x00000200
9854886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_SHIFT	9
9864886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_MASK	0x00000400
9874886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_SHIFT	10
9884886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_MASK	0x00000800
9894886ec58SHasso Tepper #define HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_SHIFT	11
990558a398bSSimon Schubert 
991558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT(param)			\
992558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_MASK) >>		\
993558a398bSSimon Schubert     HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_SHIFT)
994558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT(param)			\
995558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_MASK) >>		\
996558a398bSSimon Schubert     HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_SHIFT)
997558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT(param)			\
998558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_MASK) >>		\
999558a398bSSimon Schubert     HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_SHIFT)
1000558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT(param)			\
1001558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_MASK) >>		\
1002558a398bSSimon Schubert     HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_SHIFT)
1003558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT(param)			\
1004558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_MASK) >>		\
1005558a398bSSimon Schubert     HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_SHIFT)
1006558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ(param)			\
1007558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_MASK) >>		\
1008558a398bSSimon Schubert     HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_SHIFT)
1009558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ(param)			\
1010558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_MASK) >>		\
1011558a398bSSimon Schubert     HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_SHIFT)
1012558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ(param)			\
1013558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_MASK) >>		\
1014558a398bSSimon Schubert     HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_SHIFT)
1015558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ(param)			\
1016558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_MASK) >>		\
1017558a398bSSimon Schubert     HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_SHIFT)
1018558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ(param)			\
1019558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_MASK) >>		\
1020558a398bSSimon Schubert     HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_SHIFT)
1021558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ(param)			\
1022558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_MASK) >>		\
1023558a398bSSimon Schubert     HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_SHIFT)
1024558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ(param)			\
1025558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_MASK) >>		\
1026558a398bSSimon Schubert     HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_SHIFT)
1027558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ(param)			\
1028558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_MASK) >>		\
1029558a398bSSimon Schubert     HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_SHIFT)
1030558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ(param)			\
1031558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_MASK) >>		\
1032558a398bSSimon Schubert     HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_SHIFT)
1033558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ(param)			\
1034558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_MASK) >>		\
1035558a398bSSimon Schubert     HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_SHIFT)
1036558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ(param)			\
1037558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_MASK) >>		\
1038558a398bSSimon Schubert     HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_SHIFT)
1039558a398bSSimon Schubert #define HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ(param)			\
1040558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_MASK) >>		\
1041558a398bSSimon Schubert     HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_SHIFT)
1042558a398bSSimon Schubert 
1043558a398bSSimon Schubert /* Supported Stream Formats */
1044558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS			0x0b
1045558a398bSSimon Schubert 
1046558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS_AC3_MASK		0x00000004
1047558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS_AC3_SHIFT		2
1048558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_MASK	0x00000002
1049558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_SHIFT	1
1050558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS_PCM_MASK		0x00000001
1051558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS_PCM_SHIFT		0
1052558a398bSSimon Schubert 
1053558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS_AC3(param)			\
1054558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_STREAM_FORMATS_AC3_MASK) >>		\
1055558a398bSSimon Schubert     HDA_PARAM_SUPP_STREAM_FORMATS_AC3_SHIFT)
1056558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32(param)			\
1057558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_MASK) >>		\
1058558a398bSSimon Schubert     HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_SHIFT)
1059558a398bSSimon Schubert #define HDA_PARAM_SUPP_STREAM_FORMATS_PCM(param)			\
1060558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_STREAM_FORMATS_PCM_MASK) >>		\
1061558a398bSSimon Schubert     HDA_PARAM_SUPP_STREAM_FORMATS_PCM_SHIFT)
1062558a398bSSimon Schubert 
1063558a398bSSimon Schubert /* Pin Capabilities */
1064558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP				0x0c
1065558a398bSSimon Schubert 
1066*2a1ad637SFrançois Tigeot #define HDA_PARAM_PIN_CAP_HBR_MASK			0x08000000
1067*2a1ad637SFrançois Tigeot #define HDA_PARAM_PIN_CAP_HBR_SHIFT			27
1068*2a1ad637SFrançois Tigeot #define HDA_PARAM_PIN_CAP_DP_MASK			0x01000000
1069*2a1ad637SFrançois Tigeot #define HDA_PARAM_PIN_CAP_DP_SHIFT			24
1070558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_EAPD_CAP_MASK			0x00010000
1071558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_EAPD_CAP_SHIFT		16
1072558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_MASK		0x0000ff00
1073558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_SHIFT		8
1074558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_100_MASK		0x00002000
1075558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_100_SHIFT		13
1076558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_80_MASK		0x00001000
1077558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_80_SHIFT		12
1078558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_MASK		0x00000400
1079558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_SHIFT	10
1080558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_50_MASK		0x00000200
1081558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_50_SHIFT		9
1082558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_MASK		0x00000100
1083558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_SHIFT		8
1084*2a1ad637SFrançois Tigeot #define HDA_PARAM_PIN_CAP_HDMI_MASK			0x00000080
1085*2a1ad637SFrançois Tigeot #define HDA_PARAM_PIN_CAP_HDMI_SHIFT			7
1086558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_MASK		0x00000040
1087558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_SHIFT	6
1088558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_INPUT_CAP_MASK		0x00000020
1089558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_INPUT_CAP_SHIFT		5
1090558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_OUTPUT_CAP_MASK		0x00000010
1091558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_OUTPUT_CAP_SHIFT		4
1092558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_HEADPHONE_CAP_MASK		0x00000008
1093558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_HEADPHONE_CAP_SHIFT		3
1094558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_MASK	0x00000004
1095558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_SHIFT	2
1096558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_TRIGGER_REQD_MASK		0x00000002
1097558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_TRIGGER_REQD_SHIFT		1
1098558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_MASK		0x00000001
1099558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_SHIFT		0
1100558a398bSSimon Schubert 
1101*2a1ad637SFrançois Tigeot #define HDA_PARAM_PIN_CAP_HBR(param)					\
1102*2a1ad637SFrançois Tigeot     (((param) & HDA_PARAM_PIN_CAP_HBR_MASK) >>				\
1103*2a1ad637SFrançois Tigeot     HDA_PARAM_PIN_CAP_HBR_SHIFT)
1104*2a1ad637SFrançois Tigeot #define HDA_PARAM_PIN_CAP_DP(param)					\
1105*2a1ad637SFrançois Tigeot     (((param) & HDA_PARAM_PIN_CAP_DP_MASK) >>				\
1106*2a1ad637SFrançois Tigeot     HDA_PARAM_PIN_CAP_DP_SHIFT)
1107558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_EAPD_CAP(param)				\
1108558a398bSSimon Schubert     (((param) & HDA_PARAM_PIN_CAP_EAPD_CAP_MASK) >>			\
1109558a398bSSimon Schubert     HDA_PARAM_PIN_CAP_EAPD_CAP_SHIFT)
1110558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL(param)				\
1111558a398bSSimon Schubert     (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_MASK) >>			\
1112558a398bSSimon Schubert     HDA_PARAM_PIN_CAP_VREF_CTRL_SHIFT)
1113558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_100(param)				\
1114558a398bSSimon Schubert     (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_100_MASK) >>		\
1115558a398bSSimon Schubert     HDA_PARAM_PIN_CAP_VREF_CTRL_100_SHIFT)
1116558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_80(param)				\
1117558a398bSSimon Schubert     (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_80_MASK) >>			\
1118558a398bSSimon Schubert     HDA_PARAM_PIN_CAP_VREF_CTRL_80_SHIFT)
1119558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND(param)			\
1120558a398bSSimon Schubert     (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_MASK) >>		\
1121558a398bSSimon Schubert     HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_SHIFT)
1122558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_50(param)				\
1123558a398bSSimon Schubert     (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_50_MASK) >>			\
1124558a398bSSimon Schubert     HDA_PARAM_PIN_CAP_VREF_CTRL_50_SHIFT)
1125558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ(param)				\
1126558a398bSSimon Schubert     (((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_MASK) >>		\
1127558a398bSSimon Schubert     HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_SHIFT)
1128*2a1ad637SFrançois Tigeot #define HDA_PARAM_PIN_CAP_HDMI(param)					\
1129*2a1ad637SFrançois Tigeot     (((param) & HDA_PARAM_PIN_CAP_HDMI_MASK) >>				\
1130*2a1ad637SFrançois Tigeot     HDA_PARAM_PIN_CAP_HDMI_SHIFT)
1131558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_BALANCED_IO_PINS(param)			\
1132558a398bSSimon Schubert     (((param) & HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_MASK) >>		\
1133558a398bSSimon Schubert     HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_SHIFT)
1134558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_INPUT_CAP(param)				\
1135558a398bSSimon Schubert     (((param) & HDA_PARAM_PIN_CAP_INPUT_CAP_MASK) >>			\
1136558a398bSSimon Schubert     HDA_PARAM_PIN_CAP_INPUT_CAP_SHIFT)
1137558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_OUTPUT_CAP(param)				\
1138558a398bSSimon Schubert     (((param) & HDA_PARAM_PIN_CAP_OUTPUT_CAP_MASK) >>			\
1139558a398bSSimon Schubert     HDA_PARAM_PIN_CAP_OUTPUT_CAP_SHIFT)
1140558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_HEADPHONE_CAP(param)				\
1141558a398bSSimon Schubert     (((param) & HDA_PARAM_PIN_CAP_HEADPHONE_CAP_MASK) >>		\
1142558a398bSSimon Schubert     HDA_PARAM_PIN_CAP_HEADPHONE_CAP_SHIFT)
1143558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP(param)			\
1144558a398bSSimon Schubert     (((param) & HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_MASK) >>		\
1145*2a1ad637SFrançois Tigeot     HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_SHIFT)
1146558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_TRIGGER_REQD(param)				\
1147558a398bSSimon Schubert     (((param) & HDA_PARAM_PIN_CAP_TRIGGER_REQD_MASK) >>			\
1148558a398bSSimon Schubert     HDA_PARAM_PIN_CAP_TRIGGER_REQD_SHIFT)
1149558a398bSSimon Schubert #define HDA_PARAM_PIN_CAP_IMP_SENSE_CAP(param)				\
1150558a398bSSimon Schubert     (((param) & HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_MASK) >>		\
1151558a398bSSimon Schubert     HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_SHIFT)
1152558a398bSSimon Schubert 
1153558a398bSSimon Schubert /* Input Amplifier Capabilities */
1154558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP				0x0d
1155558a398bSSimon Schubert 
1156558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_MASK		0x80000000
1157558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_SHIFT		31
1158558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_MASK		0x007f0000
1159558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_SHIFT		16
1160558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_MASK		0x00007f00
1161558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_SHIFT		8
1162558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_OFFSET_MASK		0x0000007f
1163558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_OFFSET_SHIFT		0
1164558a398bSSimon Schubert 
1165558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP(param)				\
1166558a398bSSimon Schubert     (((param) & HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_MASK) >>		\
1167558a398bSSimon Schubert     HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_SHIFT)
1168558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_STEPSIZE(param)				\
1169558a398bSSimon Schubert     (((param) & HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_MASK) >>		\
1170558a398bSSimon Schubert     HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_SHIFT)
1171558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS(param)				\
1172558a398bSSimon Schubert     (((param) & HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_MASK) >>		\
1173558a398bSSimon Schubert     HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_SHIFT)
1174558a398bSSimon Schubert #define HDA_PARAM_INPUT_AMP_CAP_OFFSET(param)				\
1175558a398bSSimon Schubert     (((param) & HDA_PARAM_INPUT_AMP_CAP_OFFSET_MASK) >>			\
1176558a398bSSimon Schubert     HDA_PARAM_INPUT_AMP_CAP_OFFSET_SHIFT)
1177558a398bSSimon Schubert 
1178558a398bSSimon Schubert /* Output Amplifier Capabilities */
1179558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP			0x12
1180558a398bSSimon Schubert 
1181558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_MASK		0x80000000
1182558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_SHIFT		31
1183558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_MASK		0x007f0000
1184558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_SHIFT		16
1185558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_MASK		0x00007f00
1186558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_SHIFT		8
1187558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_MASK		0x0000007f
1188558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_SHIFT		0
1189558a398bSSimon Schubert 
1190558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP(param)			\
1191558a398bSSimon Schubert     (((param) & HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_MASK) >>		\
1192558a398bSSimon Schubert     HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_SHIFT)
1193558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE(param)			\
1194558a398bSSimon Schubert     (((param) & HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_MASK) >>		\
1195558a398bSSimon Schubert     HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_SHIFT)
1196558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS(param)			\
1197558a398bSSimon Schubert     (((param) & HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_MASK) >>		\
1198558a398bSSimon Schubert     HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_SHIFT)
1199558a398bSSimon Schubert #define HDA_PARAM_OUTPUT_AMP_CAP_OFFSET(param)				\
1200558a398bSSimon Schubert     (((param) & HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_MASK) >>		\
1201558a398bSSimon Schubert     HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_SHIFT)
1202558a398bSSimon Schubert 
1203558a398bSSimon Schubert /* Connection List Length */
1204558a398bSSimon Schubert #define HDA_PARAM_CONN_LIST_LENGTH			0x0e
1205558a398bSSimon Schubert 
1206558a398bSSimon Schubert #define HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_MASK	0x00000080
1207558a398bSSimon Schubert #define HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_SHIFT	7
1208558a398bSSimon Schubert #define HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_MASK	0x0000007f
1209558a398bSSimon Schubert #define HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_SHIFT	0
1210558a398bSSimon Schubert 
1211558a398bSSimon Schubert #define HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM(param)			\
1212558a398bSSimon Schubert     (((param) & HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_MASK) >>		\
1213558a398bSSimon Schubert     HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_SHIFT)
1214558a398bSSimon Schubert #define HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH(param)			\
1215558a398bSSimon Schubert     (((param) & HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_MASK) >>		\
1216558a398bSSimon Schubert     HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_SHIFT)
1217558a398bSSimon Schubert 
1218558a398bSSimon Schubert /* Supported Power States */
1219558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES			0x0f
1220558a398bSSimon Schubert 
1221558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D3_MASK		0x00000008
1222558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D3_SHIFT		3
1223558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D2_MASK		0x00000004
1224558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D2_SHIFT		2
1225558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D1_MASK		0x00000002
1226558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D1_SHIFT		1
1227558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D0_MASK		0x00000001
1228558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D0_SHIFT		0
1229558a398bSSimon Schubert 
1230558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D3(param)				\
1231558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_POWER_STATES_D3_MASK) >>			\
1232558a398bSSimon Schubert     HDA_PARAM_SUPP_POWER_STATES_D3_SHIFT)
1233558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D2(param)				\
1234558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_POWER_STATES_D2_MASK) >>			\
1235558a398bSSimon Schubert     HDA_PARAM_SUPP_POWER_STATES_D2_SHIFT)
1236558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D1(param)				\
1237558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_POWER_STATES_D1_MASK) >>			\
1238558a398bSSimon Schubert     HDA_PARAM_SUPP_POWER_STATES_D1_SHIFT)
1239558a398bSSimon Schubert #define HDA_PARAM_SUPP_POWER_STATES_D0(param)				\
1240558a398bSSimon Schubert     (((param) & HDA_PARAM_SUPP_POWER_STATES_D0_MASK) >>			\
1241558a398bSSimon Schubert     HDA_PARAM_SUPP_POWER_STATES_D0_SHIFT)
1242558a398bSSimon Schubert 
1243558a398bSSimon Schubert /* Processing Capabilities */
1244558a398bSSimon Schubert #define HDA_PARAM_PROCESSING_CAP			0x10
1245558a398bSSimon Schubert 
1246558a398bSSimon Schubert #define HDA_PARAM_PROCESSING_CAP_NUMCOEFF_MASK		0x0000ff00
1247558a398bSSimon Schubert #define HDA_PARAM_PROCESSING_CAP_NUMCOEFF_SHIFT		8
1248558a398bSSimon Schubert #define HDA_PARAM_PROCESSING_CAP_BENIGN_MASK		0x00000001
1249558a398bSSimon Schubert #define HDA_PARAM_PROCESSING_CAP_BENIGN_SHIFT		0
1250558a398bSSimon Schubert 
1251558a398bSSimon Schubert #define HDA_PARAM_PROCESSING_CAP_NUMCOEFF(param)			\
1252558a398bSSimon Schubert     (((param) & HDA_PARAM_PROCESSING_CAP_NUMCOEFF_MASK) >>		\
1253558a398bSSimon Schubert     HDA_PARAM_PROCESSING_CAP_NUMCOEFF_SHIFT)
1254558a398bSSimon Schubert #define HDA_PARAM_PROCESSING_CAP_BENIGN(param)				\
1255558a398bSSimon Schubert     (((param) & HDA_PARAM_PROCESSING_CAP_BENIGN_MASK) >>		\
1256558a398bSSimon Schubert     HDA_PARAM_PROCESSING_CAP_BENIGN_SHIFT)
1257558a398bSSimon Schubert 
1258558a398bSSimon Schubert /* GPIO Count */
1259558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT				0x11
1260558a398bSSimon Schubert 
1261558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_GPI_WAKE_MASK		0x80000000
1262558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_GPI_WAKE_SHIFT		31
1263558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_GPI_UNSOL_MASK		0x40000000
1264558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_GPI_UNSOL_SHIFT		30
1265558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_NUM_GPI_MASK		0x00ff0000
1266558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_NUM_GPI_SHIFT		16
1267558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_NUM_GPO_MASK		0x0000ff00
1268558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_NUM_GPO_SHIFT		8
1269558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_NUM_GPIO_MASK		0x000000ff
1270558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_NUM_GPIO_SHIFT		0
1271558a398bSSimon Schubert 
1272558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_GPI_WAKE(param)				\
1273558a398bSSimon Schubert     (((param) & HDA_PARAM_GPIO_COUNT_GPI_WAKE_MASK) >>			\
1274558a398bSSimon Schubert     HDA_PARAM_GPIO_COUNT_GPI_WAKE_SHIFT)
1275558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_GPI_UNSOL(param)				\
1276558a398bSSimon Schubert     (((param) & HDA_PARAM_GPIO_COUNT_GPI_UNSOL_MASK) >>			\
1277558a398bSSimon Schubert     HDA_PARAM_GPIO_COUNT_GPI_UNSOL_SHIFT)
1278558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_NUM_GPI(param)				\
1279558a398bSSimon Schubert     (((param) & HDA_PARAM_GPIO_COUNT_NUM_GPI_MASK) >>			\
1280558a398bSSimon Schubert     HDA_PARAM_GPIO_COUNT_NUM_GPI_SHIFT)
1281558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_NUM_GPO(param)				\
1282558a398bSSimon Schubert     (((param) & HDA_PARAM_GPIO_COUNT_NUM_GPO_MASK) >>			\
1283558a398bSSimon Schubert     HDA_PARAM_GPIO_COUNT_NUM_GPO_SHIFT)
1284558a398bSSimon Schubert #define HDA_PARAM_GPIO_COUNT_NUM_GPIO(param)				\
1285558a398bSSimon Schubert     (((param) & HDA_PARAM_GPIO_COUNT_NUM_GPIO_MASK) >>			\
1286558a398bSSimon Schubert     HDA_PARAM_GPIO_COUNT_NUM_GPIO_SHIFT)
1287558a398bSSimon Schubert 
1288558a398bSSimon Schubert /* Volume Knob Capabilities */
1289558a398bSSimon Schubert #define HDA_PARAM_VOLUME_KNOB_CAP			0x13
1290558a398bSSimon Schubert 
1291558a398bSSimon Schubert #define HDA_PARAM_VOLUME_KNOB_CAP_DELTA_MASK		0x00000080
1292558a398bSSimon Schubert #define HDA_PARAM_VOLUME_KNOB_CAP_DELTA_SHIFT		7
1293558a398bSSimon Schubert #define HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_MASK	0x0000007f
1294558a398bSSimon Schubert #define HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_SHIFT	0
1295558a398bSSimon Schubert 
1296558a398bSSimon Schubert #define HDA_PARAM_VOLUME_KNOB_CAP_DELTA(param)				\
1297558a398bSSimon Schubert     (((param) & HDA_PARAM_VOLUME_KNOB_CAP_DELTA_MASK) >>		\
1298558a398bSSimon Schubert     HDA_PARAM_VOLUME_KNOB_CAP_DELTA_SHIFT)
1299558a398bSSimon Schubert #define HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS(param)			\
1300558a398bSSimon Schubert     (((param) & HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_MASK) >>		\
1301558a398bSSimon Schubert     HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_SHIFT)
1302558a398bSSimon Schubert 
1303558a398bSSimon Schubert 
1304*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_SEQUENCE_MASK		0x0000000f
1305*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_SEQUENCE_SHIFT		0
1306*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_ASSOCIATION_MASK		0x000000f0
1307*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_ASSOCIATION_SHIFT	4
1308*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_MISC_MASK		0x00000f00
1309*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_MISC_SHIFT		8
1310*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_COLOR_MASK		0x0000f000
1311*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_COLOR_SHIFT		12
1312*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_MASK	0x000f0000
1313*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_SHIFT	16
1314*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_DEVICE_MASK		0x00f00000
1315*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_DEVICE_SHIFT		20
1316*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_LOCATION_MASK		0x3f000000
1317*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_LOCATION_SHIFT		24
1318*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK	0xc0000000
1319*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_SHIFT	30
1320*2a1ad637SFrançois Tigeot 
1321*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_SEQUENCE(conf)				\
1322*2a1ad637SFrançois Tigeot     (((conf) & HDA_CONFIG_DEFAULTCONF_SEQUENCE_MASK) >>			\
1323*2a1ad637SFrançois Tigeot     HDA_CONFIG_DEFAULTCONF_SEQUENCE_SHIFT)
1324*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_ASSOCIATION(conf)			\
1325*2a1ad637SFrançois Tigeot     (((conf) & HDA_CONFIG_DEFAULTCONF_ASSOCIATION_MASK) >>		\
1326*2a1ad637SFrançois Tigeot     HDA_CONFIG_DEFAULTCONF_ASSOCIATION_SHIFT)
1327*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_MISC(conf)				\
1328*2a1ad637SFrançois Tigeot     (((conf) & HDA_CONFIG_DEFAULTCONF_MISC_MASK) >>			\
1329*2a1ad637SFrançois Tigeot     HDA_CONFIG_DEFAULTCONF_MISC_SHIFT)
1330*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_COLOR(conf)				\
1331*2a1ad637SFrançois Tigeot     (((conf) & HDA_CONFIG_DEFAULTCONF_COLOR_MASK) >>			\
1332*2a1ad637SFrançois Tigeot     HDA_CONFIG_DEFAULTCONF_COLOR_SHIFT)
1333*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE(conf)			\
1334*2a1ad637SFrançois Tigeot     (((conf) & HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_MASK) >>		\
1335*2a1ad637SFrançois Tigeot     HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_SHIFT)
1336*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_DEVICE(conf)				\
1337*2a1ad637SFrançois Tigeot     (((conf) & HDA_CONFIG_DEFAULTCONF_DEVICE_MASK) >>			\
1338*2a1ad637SFrançois Tigeot     HDA_CONFIG_DEFAULTCONF_DEVICE_SHIFT)
1339*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_LOCATION(conf)				\
1340*2a1ad637SFrançois Tigeot     (((conf) & HDA_CONFIG_DEFAULTCONF_LOCATION_MASK) >>			\
1341*2a1ad637SFrançois Tigeot     HDA_CONFIG_DEFAULTCONF_LOCATION_SHIFT)
1342*2a1ad637SFrançois Tigeot #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY(conf)			\
1343*2a1ad637SFrançois Tigeot     (((conf) & HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK) >>		\
1344*2a1ad637SFrançois Tigeot     HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_SHIFT)
1345558a398bSSimon Schubert 
1346558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_JACK		(0<<30)
1347558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_NONE		(1<<30)
1348558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED		(2<<30)
1349558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_BOTH		(3<<30)
1350558a398bSSimon Schubert 
1351558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_OUT			(0<<20)
1352558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_SPEAKER			(1<<20)
1353558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_HP_OUT			(2<<20)
1354558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_CD			(3<<20)
1355558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_SPDIF_OUT			(4<<20)
1356558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_DIGITAL_OTHER_OUT		(5<<20)
1357558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_MODEM_LINE		(6<<20)
1358558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_MODEM_HANDSET		(7<<20)
1359558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_IN			(8<<20)
1360558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_AUX			(9<<20)
1361558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN			(10<<20)
1362558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_TELEPHONY			(11<<20)
1363558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_SPDIF_IN			(12<<20)
1364558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_DIGITAL_OTHER_IN		(13<<20)
1365558a398bSSimon Schubert #define HDA_CONFIG_DEFAULTCONF_DEVICE_OTHER			(15<<20)
1366558a398bSSimon Schubert 
1367558a398bSSimon Schubert #endif
1368