FreeBSD kernel sound device code
hda_reg.h
Go to the documentation of this file.
1
/*-
2
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
3
*
4
* Copyright (c) 2006 Stephane E. Potvin <sepotvin@videotron.ca>
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
9
* are met:
10
* 1. Redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer.
12
* 2. Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
*
16
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26
* SUCH DAMAGE.
27
*
28
* $FreeBSD$
29
*/
30
31
#ifndef _HDA_REG_H_
32
#define _HDA_REG_H_
33
34
/****************************************************************************
35
* HDA Device Verbs
36
****************************************************************************/
37
38
/* HDA Command */
39
#define HDA_CMD_VERB_MASK 0x000fffff
40
#define HDA_CMD_VERB_SHIFT 0
41
#define HDA_CMD_NID_MASK 0x0ff00000
42
#define HDA_CMD_NID_SHIFT 20
43
#define HDA_CMD_CAD_MASK 0xf0000000
44
#define HDA_CMD_CAD_SHIFT 28
45
46
#define HDA_CMD_VERB_4BIT_SHIFT 16
47
#define HDA_CMD_VERB_12BIT_SHIFT 8
48
49
#define HDA_CMD_VERB_4BIT(verb, payload) \
50
(((verb) << HDA_CMD_VERB_4BIT_SHIFT) | (payload))
51
#define HDA_CMD_4BIT(cad, nid, verb, payload) \
52
(((cad) << HDA_CMD_CAD_SHIFT) | \
53
((nid) << HDA_CMD_NID_SHIFT) | \
54
(HDA_CMD_VERB_4BIT((verb), (payload))))
55
56
#define HDA_CMD_VERB_12BIT(verb, payload) \
57
(((verb) << HDA_CMD_VERB_12BIT_SHIFT) | (payload))
58
#define HDA_CMD_12BIT(cad, nid, verb, payload) \
59
(((cad) << HDA_CMD_CAD_SHIFT) | \
60
((nid) << HDA_CMD_NID_SHIFT) | \
61
(HDA_CMD_VERB_12BIT((verb), (payload))))
62
63
/* Get Parameter */
64
#define HDA_CMD_VERB_GET_PARAMETER 0xf00
65
66
#define HDA_CMD_GET_PARAMETER(cad, nid, payload) \
67
(HDA_CMD_12BIT((cad), (nid), \
68
HDA_CMD_VERB_GET_PARAMETER, (payload)))
69
70
/* Connection Select Control */
71
#define HDA_CMD_VERB_GET_CONN_SELECT_CONTROL 0xf01
72
#define HDA_CMD_VERB_SET_CONN_SELECT_CONTROL 0x701
73
74
#define HDA_CMD_GET_CONN_SELECT_CONTROL(cad, nid) \
75
(HDA_CMD_12BIT((cad), (nid), \
76
HDA_CMD_VERB_GET_CONN_SELECT_CONTROL, 0x0))
77
#define HDA_CMD_SET_CONNECTION_SELECT_CONTROL(cad, nid, payload) \
78
(HDA_CMD_12BIT((cad), (nid), \
79
HDA_CMD_VERB_SET_CONN_SELECT_CONTROL, (payload)))
80
81
/* Connection List Entry */
82
#define HDA_CMD_VERB_GET_CONN_LIST_ENTRY 0xf02
83
84
#define HDA_CMD_GET_CONN_LIST_ENTRY(cad, nid, payload) \
85
(HDA_CMD_12BIT((cad), (nid), \
86
HDA_CMD_VERB_GET_CONN_LIST_ENTRY, (payload)))
87
88
#define HDA_CMD_GET_CONN_LIST_ENTRY_SIZE_SHORT 1
89
#define HDA_CMD_GET_CONN_LIST_ENTRY_SIZE_LONG 2
90
91
/* Processing State */
92
#define HDA_CMD_VERB_GET_PROCESSING_STATE 0xf03
93
#define HDA_CMD_VERB_SET_PROCESSING_STATE 0x703
94
95
#define HDA_CMD_GET_PROCESSING_STATE(cad, nid) \
96
(HDA_CMD_12BIT((cad), (nid), \
97
HDA_CMD_VERB_GET_PROCESSING_STATE, 0x0))
98
#define HDA_CMD_SET_PROCESSING_STATE(cad, nid, payload) \
99
(HDA_CMD_12BIT((cad), (nid), \
100
HDA_CMD_VERB_SET_PROCESSING_STATE, (payload)))
101
102
#define HDA_CMD_GET_PROCESSING_STATE_STATE_OFF 0x00
103
#define HDA_CMD_GET_PROCESSING_STATE_STATE_ON 0x01
104
#define HDA_CMD_GET_PROCESSING_STATE_STATE_BENIGN 0x02
105
106
/* Coefficient Index */
107
#define HDA_CMD_VERB_GET_COEFF_INDEX 0xd
108
#define HDA_CMD_VERB_SET_COEFF_INDEX 0x5
109
110
#define HDA_CMD_GET_COEFF_INDEX(cad, nid) \
111
(HDA_CMD_4BIT((cad), (nid), \
112
HDA_CMD_VERB_GET_COEFF_INDEX, 0x0))
113
#define HDA_CMD_SET_COEFF_INDEX(cad, nid, payload) \
114
(HDA_CMD_4BIT((cad), (nid), \
115
HDA_CMD_VERB_SET_COEFF_INDEX, (payload)))
116
117
/* Processing Coefficient */
118
#define HDA_CMD_VERB_GET_PROCESSING_COEFF 0xc
119
#define HDA_CMD_VERB_SET_PROCESSING_COEFF 0x4
120
121
#define HDA_CMD_GET_PROCESSING_COEFF(cad, nid) \
122
(HDA_CMD_4BIT((cad), (nid), \
123
HDA_CMD_VERB_GET_PROCESSING_COEFF, 0x0))
124
#define HDA_CMD_SET_PROCESSING_COEFF(cad, nid, payload) \
125
(HDA_CMD_4BIT((cad), (nid), \
126
HDA_CMD_VERB_SET_PROCESSING_COEFF, (payload)))
127
128
/* Amplifier Gain/Mute */
129
#define HDA_CMD_VERB_GET_AMP_GAIN_MUTE 0xb
130
#define HDA_CMD_VERB_SET_AMP_GAIN_MUTE 0x3
131
132
#define HDA_CMD_GET_AMP_GAIN_MUTE(cad, nid, payload) \
133
(HDA_CMD_4BIT((cad), (nid), \
134
HDA_CMD_VERB_GET_AMP_GAIN_MUTE, (payload)))
135
#define HDA_CMD_SET_AMP_GAIN_MUTE(cad, nid, payload) \
136
(HDA_CMD_4BIT((cad), (nid), \
137
HDA_CMD_VERB_SET_AMP_GAIN_MUTE, (payload)))
138
139
#define HDA_CMD_GET_AMP_GAIN_MUTE_INPUT 0x0000
140
#define HDA_CMD_GET_AMP_GAIN_MUTE_OUTPUT 0x8000
141
#define HDA_CMD_GET_AMP_GAIN_MUTE_RIGHT 0x0000
142
#define HDA_CMD_GET_AMP_GAIN_MUTE_LEFT 0x2000
143
144
#define HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_MASK 0x00000008
145
#define HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_SHIFT 7
146
#define HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_MASK 0x00000007
147
#define HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_SHIFT 0
148
149
#define HDA_CMD_GET_AMP_GAIN_MUTE_MUTE(rsp) \
150
(((rsp) & HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_MASK) >> \
151
HDA_CMD_GET_AMP_GAIN_MUTE_MUTE_SHIFT)
152
#define HDA_CMD_GET_AMP_GAIN_MUTE_GAIN(rsp) \
153
(((rsp) & HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_MASK) >> \
154
HDA_CMD_GET_AMP_GAIN_MUTE_GAIN_SHIFT)
155
156
#define HDA_CMD_SET_AMP_GAIN_MUTE_OUTPUT 0x8000
157
#define HDA_CMD_SET_AMP_GAIN_MUTE_INPUT 0x4000
158
#define HDA_CMD_SET_AMP_GAIN_MUTE_LEFT 0x2000
159
#define HDA_CMD_SET_AMP_GAIN_MUTE_RIGHT 0x1000
160
#define HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_MASK 0x0f00
161
#define HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_SHIFT 8
162
#define HDA_CMD_SET_AMP_GAIN_MUTE_MUTE 0x0080
163
#define HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_MASK 0x0007
164
#define HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_SHIFT 0
165
166
#define HDA_CMD_SET_AMP_GAIN_MUTE_INDEX(index) \
167
(((index) << HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_SHIFT) & \
168
HDA_CMD_SET_AMP_GAIN_MUTE_INDEX_MASK)
169
#define HDA_CMD_SET_AMP_GAIN_MUTE_GAIN(index) \
170
(((index) << HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_SHIFT) & \
171
HDA_CMD_SET_AMP_GAIN_MUTE_GAIN_MASK)
172
173
/* Converter format */
174
#define HDA_CMD_VERB_GET_CONV_FMT 0xa
175
#define HDA_CMD_VERB_SET_CONV_FMT 0x2
176
177
#define HDA_CMD_GET_CONV_FMT(cad, nid) \
178
(HDA_CMD_4BIT((cad), (nid), \
179
HDA_CMD_VERB_GET_CONV_FMT, 0x0))
180
#define HDA_CMD_SET_CONV_FMT(cad, nid, payload) \
181
(HDA_CMD_4BIT((cad), (nid), \
182
HDA_CMD_VERB_SET_CONV_FMT, (payload)))
183
184
/* Digital Converter Control */
185
#define HDA_CMD_VERB_GET_DIGITAL_CONV_FMT1 0xf0d
186
#define HDA_CMD_VERB_GET_DIGITAL_CONV_FMT2 0xf0e
187
#define HDA_CMD_VERB_SET_DIGITAL_CONV_FMT1 0x70d
188
#define HDA_CMD_VERB_SET_DIGITAL_CONV_FMT2 0x70e
189
190
#define HDA_CMD_GET_DIGITAL_CONV_FMT(cad, nid) \
191
(HDA_CMD_12BIT((cad), (nid), \
192
HDA_CMD_VERB_GET_DIGITAL_CONV_FMT1, 0x0))
193
#define HDA_CMD_SET_DIGITAL_CONV_FMT1(cad, nid, payload) \
194
(HDA_CMD_12BIT((cad), (nid), \
195
HDA_CMD_VERB_SET_DIGITAL_CONV_FMT1, (payload)))
196
#define HDA_CMD_SET_DIGITAL_CONV_FMT2(cad, nid, payload) \
197
(HDA_CMD_12BIT((cad), (nid), \
198
HDA_CMD_VERB_SET_DIGITAL_CONV_FMT2, (payload)))
199
200
#define HDA_CMD_GET_DIGITAL_CONV_FMT_CC_MASK 0x7f00
201
#define HDA_CMD_GET_DIGITAL_CONV_FMT_CC_SHIFT 8
202
#define HDA_CMD_GET_DIGITAL_CONV_FMT_L_MASK 0x0080
203
#define HDA_CMD_GET_DIGITAL_CONV_FMT_L_SHIFT 7
204
#define HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_MASK 0x0040
205
#define HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_SHIFT 6
206
#define HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_MASK 0x0020
207
#define HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_SHIFT 5
208
#define HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_MASK 0x0010
209
#define HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_SHIFT 4
210
#define HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_MASK 0x0008
211
#define HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_SHIFT 3
212
#define HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_MASK 0x0004
213
#define HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_SHIFT 2
214
#define HDA_CMD_GET_DIGITAL_CONV_FMT_V_MASK 0x0002
215
#define HDA_CMD_GET_DIGITAL_CONV_FMT_V_SHIFT 1
216
#define HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_MASK 0x0001
217
#define HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_SHIFT 0
218
219
#define HDA_CMD_GET_DIGITAL_CONV_FMT_CC(rsp) \
220
(((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_CC_MASK) >> \
221
HDA_CMD_GET_DIGITAL_CONV_FMT_CC_SHIFT)
222
#define HDA_CMD_GET_DIGITAL_CONV_FMT_L(rsp) \
223
(((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_L_MASK) >> \
224
HDA_CMD_GET_DIGITAL_CONV_FMT_L_SHIFT)
225
#define HDA_CMD_GET_DIGITAL_CONV_FMT_PRO(rsp) \
226
(((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_MASK) >> \
227
HDA_CMD_GET_DIGITAL_CONV_FMT_PRO_SHIFT)
228
#define HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO(rsp) \
229
(((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_MASK) >> \
230
HDA_CMD_GET_DIGITAL_CONV_FMT_NAUDIO_SHIFT)
231
#define HDA_CMD_GET_DIGITAL_CONV_FMT_COPY(rsp) \
232
(((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_MASK) >> \
233
HDA_CMD_GET_DIGITAL_CONV_FMT_COPY_SHIFT)
234
#define HDA_CMD_GET_DIGITAL_CONV_FMT_PRE(rsp) \
235
(((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_MASK) >> \
236
HDA_CMD_GET_DIGITAL_CONV_FMT_PRE_SHIFT)
237
#define HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG(rsp) \
238
(((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_MASK) >> \
239
HDA_CMD_GET_DIGITAL_CONV_FMT_VCFG_SHIFT)
240
#define HDA_CMD_GET_DIGITAL_CONV_FMT_V(rsp) \
241
(((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_V_MASK) >> \
242
HDA_CMD_GET_DIGITAL_CONV_FMT_V_SHIFT)
243
#define HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN(rsp) \
244
(((rsp) & HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_MASK) >> \
245
HDA_CMD_GET_DIGITAL_CONV_FMT_DIGEN_SHIFT)
246
247
#define HDA_CMD_SET_DIGITAL_CONV_FMT1_L 0x80
248
#define HDA_CMD_SET_DIGITAL_CONV_FMT1_PRO 0x40
249
#define HDA_CMD_SET_DIGITAL_CONV_FMT1_NAUDIO 0x20
250
#define HDA_CMD_SET_DIGITAL_CONV_FMT1_COPY 0x10
251
#define HDA_CMD_SET_DIGITAL_CONV_FMT1_PRE 0x08
252
#define HDA_CMD_SET_DIGITAL_CONV_FMT1_VCFG 0x04
253
#define HDA_CMD_SET_DIGITAL_CONV_FMT1_V 0x02
254
#define HDA_CMD_SET_DIGITAL_CONV_FMT1_DIGEN 0x01
255
256
/* Power State */
257
#define HDA_CMD_VERB_GET_POWER_STATE 0xf05
258
#define HDA_CMD_VERB_SET_POWER_STATE 0x705
259
260
#define HDA_CMD_GET_POWER_STATE(cad, nid) \
261
(HDA_CMD_12BIT((cad), (nid), \
262
HDA_CMD_VERB_GET_POWER_STATE, 0x0))
263
#define HDA_CMD_SET_POWER_STATE(cad, nid, payload) \
264
(HDA_CMD_12BIT((cad), (nid), \
265
HDA_CMD_VERB_SET_POWER_STATE, (payload)))
266
267
#define HDA_CMD_POWER_STATE_D0 0x00
268
#define HDA_CMD_POWER_STATE_D1 0x01
269
#define HDA_CMD_POWER_STATE_D2 0x02
270
#define HDA_CMD_POWER_STATE_D3 0x03
271
272
#define HDA_CMD_POWER_STATE_ACT_MASK 0x000000f0
273
#define HDA_CMD_POWER_STATE_ACT_SHIFT 4
274
#define HDA_CMD_POWER_STATE_SET_MASK 0x0000000f
275
#define HDA_CMD_POWER_STATE_SET_SHIFT 0
276
277
#define HDA_CMD_GET_POWER_STATE_ACT(rsp) \
278
(((rsp) & HDA_CMD_POWER_STATE_ACT_MASK) >> \
279
HDA_CMD_POWER_STATE_ACT_SHIFT)
280
#define HDA_CMD_GET_POWER_STATE_SET(rsp) \
281
(((rsp) & HDA_CMD_POWER_STATE_SET_MASK) >> \
282
HDA_CMD_POWER_STATE_SET_SHIFT)
283
284
#define HDA_CMD_SET_POWER_STATE_ACT(ps) \
285
(((ps) << HDA_CMD_POWER_STATE_ACT_SHIFT) & \
286
HDA_CMD_POWER_STATE_ACT_MASK)
287
#define HDA_CMD_SET_POWER_STATE_SET(ps) \
288
(((ps) << HDA_CMD_POWER_STATE_SET_SHIFT) & \
289
HDA_CMD_POWER_STATE_ACT_MASK)
290
291
/* Converter Stream, Channel */
292
#define HDA_CMD_VERB_GET_CONV_STREAM_CHAN 0xf06
293
#define HDA_CMD_VERB_SET_CONV_STREAM_CHAN 0x706
294
295
#define HDA_CMD_GET_CONV_STREAM_CHAN(cad, nid) \
296
(HDA_CMD_12BIT((cad), (nid), \
297
HDA_CMD_VERB_GET_CONV_STREAM_CHAN, 0x0))
298
#define HDA_CMD_SET_CONV_STREAM_CHAN(cad, nid, payload) \
299
(HDA_CMD_12BIT((cad), (nid), \
300
HDA_CMD_VERB_SET_CONV_STREAM_CHAN, (payload)))
301
302
#define HDA_CMD_CONV_STREAM_CHAN_STREAM_MASK 0x000000f0
303
#define HDA_CMD_CONV_STREAM_CHAN_STREAM_SHIFT 4
304
#define HDA_CMD_CONV_STREAM_CHAN_CHAN_MASK 0x0000000f
305
#define HDA_CMD_CONV_STREAM_CHAN_CHAN_SHIFT 0
306
307
#define HDA_CMD_GET_CONV_STREAM_CHAN_STREAM(rsp) \
308
(((rsp) & HDA_CMD_CONV_STREAM_CHAN_STREAM_MASK) >> \
309
HDA_CMD_CONV_STREAM_CHAN_STREAM_SHIFT)
310
#define HDA_CMD_GET_CONV_STREAM_CHAN_CHAN(rsp) \
311
(((rsp) & HDA_CMD_CONV_STREAM_CHAN_CHAN_MASK) >> \
312
HDA_CMD_CONV_STREAM_CHAN_CHAN_SHIFT)
313
314
#define HDA_CMD_SET_CONV_STREAM_CHAN_STREAM(param) \
315
(((param) << HDA_CMD_CONV_STREAM_CHAN_STREAM_SHIFT) & \
316
HDA_CMD_CONV_STREAM_CHAN_STREAM_MASK)
317
#define HDA_CMD_SET_CONV_STREAM_CHAN_CHAN(param) \
318
(((param) << HDA_CMD_CONV_STREAM_CHAN_CHAN_SHIFT) & \
319
HDA_CMD_CONV_STREAM_CHAN_CHAN_MASK)
320
321
/* Input Converter SDI Select */
322
#define HDA_CMD_VERB_GET_INPUT_CONVERTER_SDI_SELECT 0xf04
323
#define HDA_CMD_VERB_SET_INPUT_CONVERTER_SDI_SELECT 0x704
324
325
#define HDA_CMD_GET_INPUT_CONVERTER_SDI_SELECT(cad, nid) \
326
(HDA_CMD_12BIT((cad), (nid), \
327
HDA_CMD_VERB_GET_INPUT_CONVERTER_SDI_SELECT, 0x0))
328
#define HDA_CMD_SET_INPUT_CONVERTER_SDI_SELECT(cad, nid, payload) \
329
(HDA_CMD_12BIT((cad), (nid), \
330
HDA_CMD_VERB_SET_INPUT_CONVERTER_SDI_SELECT, (payload)))
331
332
/* Pin Widget Control */
333
#define HDA_CMD_VERB_GET_PIN_WIDGET_CTRL 0xf07
334
#define HDA_CMD_VERB_SET_PIN_WIDGET_CTRL 0x707
335
336
#define HDA_CMD_GET_PIN_WIDGET_CTRL(cad, nid) \
337
(HDA_CMD_12BIT((cad), (nid), \
338
HDA_CMD_VERB_GET_PIN_WIDGET_CTRL, 0x0))
339
#define HDA_CMD_SET_PIN_WIDGET_CTRL(cad, nid, payload) \
340
(HDA_CMD_12BIT((cad), (nid), \
341
HDA_CMD_VERB_SET_PIN_WIDGET_CTRL, (payload)))
342
343
#define HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_MASK 0x00000080
344
#define HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_SHIFT 7
345
#define HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE_MASK 0x00000040
346
#define HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE_SHIFT 6
347
#define HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_MASK 0x00000020
348
#define HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_SHIFT 5
349
#define HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK 0x00000007
350
#define HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT 0
351
352
#define HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE(rsp) \
353
(((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_MASK) >> \
354
HDA_CMD_GET_PIN_WIDGET_CTRL_HPHN_ENABLE_SHIFT)
355
#define HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE(rsp) \
356
(((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_OUT_ENABLE_MASK) >> \
357
HDA_GET_CMD_PIN_WIDGET_CTRL_OUT_ENABLE_SHIFT)
358
#define HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE(rsp) \
359
(((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_MASK) >> \
360
HDA_CMD_GET_PIN_WIDGET_CTRL_IN_ENABLE_SHIFT)
361
#define HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE(rsp) \
362
(((rsp) & HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK) >> \
363
HDA_CMD_GET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT)
364
365
#define HDA_CMD_SET_PIN_WIDGET_CTRL_HPHN_ENABLE 0x80
366
#define HDA_CMD_SET_PIN_WIDGET_CTRL_OUT_ENABLE 0x40
367
#define HDA_CMD_SET_PIN_WIDGET_CTRL_IN_ENABLE 0x20
368
#define HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK 0x07
369
#define HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT 0
370
371
#define HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE(param) \
372
(((param) << HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_SHIFT) & \
373
HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK)
374
375
#define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_HIZ 0
376
#define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_50 1
377
#define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_GROUND 2
378
#define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_80 4
379
#define HDA_CMD_PIN_WIDGET_CTRL_VREF_ENABLE_100 5
380
381
/* Unsolicited Response */
382
#define HDA_CMD_VERB_GET_UNSOLICITED_RESPONSE 0xf08
383
#define HDA_CMD_VERB_SET_UNSOLICITED_RESPONSE 0x708
384
385
#define HDA_CMD_GET_UNSOLICITED_RESPONSE(cad, nid) \
386
(HDA_CMD_12BIT((cad), (nid), \
387
HDA_CMD_VERB_GET_UNSOLICITED_RESPONSE, 0x0))
388
#define HDA_CMD_SET_UNSOLICITED_RESPONSE(cad, nid, payload) \
389
(HDA_CMD_12BIT((cad), (nid), \
390
HDA_CMD_VERB_SET_UNSOLICITED_RESPONSE, (payload)))
391
392
#define HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_MASK 0x00000080
393
#define HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_SHIFT 7
394
#define HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_MASK 0x0000001f
395
#define HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_SHIFT 0
396
397
#define HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE(rsp) \
398
(((rsp) & HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_MASK) >> \
399
HDA_CMD_GET_UNSOLICITED_RESPONSE_ENABLE_SHIFT)
400
#define HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG(rsp) \
401
(((rsp) & HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_MASK) >> \
402
HDA_CMD_GET_UNSOLICITED_RESPONSE_TAG_SHIFT)
403
404
#define HDA_CMD_SET_UNSOLICITED_RESPONSE_ENABLE 0x80
405
#define HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_MASK 0x3f
406
#define HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_SHIFT 0
407
408
#define HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG(param) \
409
(((param) << HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_SHIFT) & \
410
HDA_CMD_SET_UNSOLICITED_RESPONSE_TAG_MASK)
411
412
/* Pin Sense */
413
#define HDA_CMD_VERB_GET_PIN_SENSE 0xf09
414
#define HDA_CMD_VERB_SET_PIN_SENSE 0x709
415
416
#define HDA_CMD_GET_PIN_SENSE(cad, nid) \
417
(HDA_CMD_12BIT((cad), (nid), \
418
HDA_CMD_VERB_GET_PIN_SENSE, 0x0))
419
#define HDA_CMD_SET_PIN_SENSE(cad, nid, payload) \
420
(HDA_CMD_12BIT((cad), (nid), \
421
HDA_CMD_VERB_SET_PIN_SENSE, (payload)))
422
423
#define HDA_CMD_GET_PIN_SENSE_PRESENCE_DETECT 0x80000000
424
#define HDA_CMD_GET_PIN_SENSE_ELD_VALID 0x40000000
425
#define HDA_CMD_GET_PIN_SENSE_IMP_SENSE_MASK 0x7fffffff
426
#define HDA_CMD_GET_PIN_SENSE_IMP_SENSE_SHIFT 0
427
428
#define HDA_CMD_GET_PIN_SENSE_IMP_SENSE(rsp) \
429
(((rsp) & HDA_CMD_GET_PIN_SENSE_IMP_SENSE_MASK) >> \
430
HDA_CMD_GET_PIN_SENSE_IMP_SENSE_SHIFT)
431
432
#define HDA_CMD_GET_PIN_SENSE_IMP_SENSE_INVALID 0x7fffffff
433
434
#define HDA_CMD_SET_PIN_SENSE_LEFT_CHANNEL 0x00
435
#define HDA_CMD_SET_PIN_SENSE_RIGHT_CHANNEL 0x01
436
437
/* EAPD/BTL Enable */
438
#define HDA_CMD_VERB_GET_EAPD_BTL_ENABLE 0xf0c
439
#define HDA_CMD_VERB_SET_EAPD_BTL_ENABLE 0x70c
440
441
#define HDA_CMD_GET_EAPD_BTL_ENABLE(cad, nid) \
442
(HDA_CMD_12BIT((cad), (nid), \
443
HDA_CMD_VERB_GET_EAPD_BTL_ENABLE, 0x0))
444
#define HDA_CMD_SET_EAPD_BTL_ENABLE(cad, nid, payload) \
445
(HDA_CMD_12BIT((cad), (nid), \
446
HDA_CMD_VERB_SET_EAPD_BTL_ENABLE, (payload)))
447
448
#define HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_MASK 0x00000004
449
#define HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_SHIFT 2
450
#define HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_MASK 0x00000002
451
#define HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_SHIFT 1
452
#define HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_MASK 0x00000001
453
#define HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_SHIFT 0
454
455
#define HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP(rsp) \
456
(((rsp) & HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_MASK) >> \
457
HDA_CMD_GET_EAPD_BTL_ENABLE_LR_SWAP_SHIFT)
458
#define HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD(rsp) \
459
(((rsp) & HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_MASK) >> \
460
HDA_CMD_GET_EAPD_BTL_ENABLE_EAPD_SHIFT)
461
#define HDA_CMD_GET_EAPD_BTL_ENABLE_BTL(rsp) \
462
(((rsp) & HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_MASK) >> \
463
HDA_CMD_GET_EAPD_BTL_ENABLE_BTL_SHIFT)
464
465
#define HDA_CMD_SET_EAPD_BTL_ENABLE_LR_SWAP 0x04
466
#define HDA_CMD_SET_EAPD_BTL_ENABLE_EAPD 0x02
467
#define HDA_CMD_SET_EAPD_BTL_ENABLE_BTL 0x01
468
469
/* GPI Data */
470
#define HDA_CMD_VERB_GET_GPI_DATA 0xf10
471
#define HDA_CMD_VERB_SET_GPI_DATA 0x710
472
473
#define HDA_CMD_GET_GPI_DATA(cad, nid) \
474
(HDA_CMD_12BIT((cad), (nid), \
475
HDA_CMD_VERB_GET_GPI_DATA, 0x0))
476
#define HDA_CMD_SET_GPI_DATA(cad, nid) \
477
(HDA_CMD_12BIT((cad), (nid), \
478
HDA_CMD_VERB_SET_GPI_DATA, (payload)))
479
480
/* GPI Wake Enable Mask */
481
#define HDA_CMD_VERB_GET_GPI_WAKE_ENABLE_MASK 0xf11
482
#define HDA_CMD_VERB_SET_GPI_WAKE_ENABLE_MASK 0x711
483
484
#define HDA_CMD_GET_GPI_WAKE_ENABLE_MASK(cad, nid) \
485
(HDA_CMD_12BIT((cad), (nid), \
486
HDA_CMD_VERB_GET_GPI_WAKE_ENABLE_MASK, 0x0))
487
#define HDA_CMD_SET_GPI_WAKE_ENABLE_MASK(cad, nid, payload) \
488
(HDA_CMD_12BIT((cad), (nid), \
489
HDA_CMD_VERB_SET_GPI_WAKE_ENABLE_MASK, (payload)))
490
491
/* GPI Unsolicited Enable Mask */
492
#define HDA_CMD_VERB_GET_GPI_UNSOLICITED_ENABLE_MASK 0xf12
493
#define HDA_CMD_VERB_SET_GPI_UNSOLICITED_ENABLE_MASK 0x712
494
495
#define HDA_CMD_GET_GPI_UNSOLICITED_ENABLE_MASK(cad, nid) \
496
(HDA_CMD_12BIT((cad), (nid), \
497
HDA_CMD_VERB_GET_GPI_UNSOLICITED_ENABLE_MASK, 0x0))
498
#define HDA_CMD_SET_GPI_UNSOLICITED_ENABLE_MASK(cad, nid, payload) \
499
(HDA_CMD_12BIT((cad), (nid), \
500
HDA_CMD_VERB_SET_GPI_UNSOLICITED_ENABLE_MASK, (payload)))
501
502
/* GPI Sticky Mask */
503
#define HDA_CMD_VERB_GET_GPI_STICKY_MASK 0xf13
504
#define HDA_CMD_VERB_SET_GPI_STICKY_MASK 0x713
505
506
#define HDA_CMD_GET_GPI_STICKY_MASK(cad, nid) \
507
(HDA_CMD_12BIT((cad), (nid), \
508
HDA_CMD_VERB_GET_GPI_STICKY_MASK, 0x0))
509
#define HDA_CMD_SET_GPI_STICKY_MASK(cad, nid, payload) \
510
(HDA_CMD_12BIT((cad), (nid), \
511
HDA_CMD_VERB_SET_GPI_STICKY_MASK, (payload)))
512
513
/* GPO Data */
514
#define HDA_CMD_VERB_GET_GPO_DATA 0xf14
515
#define HDA_CMD_VERB_SET_GPO_DATA 0x714
516
517
#define HDA_CMD_GET_GPO_DATA(cad, nid) \
518
(HDA_CMD_12BIT((cad), (nid), \
519
HDA_CMD_VERB_GET_GPO_DATA, 0x0))
520
#define HDA_CMD_SET_GPO_DATA(cad, nid, payload) \
521
(HDA_CMD_12BIT((cad), (nid), \
522
HDA_CMD_VERB_SET_GPO_DATA, (payload)))
523
524
/* GPIO Data */
525
#define HDA_CMD_VERB_GET_GPIO_DATA 0xf15
526
#define HDA_CMD_VERB_SET_GPIO_DATA 0x715
527
528
#define HDA_CMD_GET_GPIO_DATA(cad, nid) \
529
(HDA_CMD_12BIT((cad), (nid), \
530
HDA_CMD_VERB_GET_GPIO_DATA, 0x0))
531
#define HDA_CMD_SET_GPIO_DATA(cad, nid, payload) \
532
(HDA_CMD_12BIT((cad), (nid), \
533
HDA_CMD_VERB_SET_GPIO_DATA, (payload)))
534
535
/* GPIO Enable Mask */
536
#define HDA_CMD_VERB_GET_GPIO_ENABLE_MASK 0xf16
537
#define HDA_CMD_VERB_SET_GPIO_ENABLE_MASK 0x716
538
539
#define HDA_CMD_GET_GPIO_ENABLE_MASK(cad, nid) \
540
(HDA_CMD_12BIT((cad), (nid), \
541
HDA_CMD_VERB_GET_GPIO_ENABLE_MASK, 0x0))
542
#define HDA_CMD_SET_GPIO_ENABLE_MASK(cad, nid, payload) \
543
(HDA_CMD_12BIT((cad), (nid), \
544
HDA_CMD_VERB_SET_GPIO_ENABLE_MASK, (payload)))
545
546
/* GPIO Direction */
547
#define HDA_CMD_VERB_GET_GPIO_DIRECTION 0xf17
548
#define HDA_CMD_VERB_SET_GPIO_DIRECTION 0x717
549
550
#define HDA_CMD_GET_GPIO_DIRECTION(cad, nid) \
551
(HDA_CMD_12BIT((cad), (nid), \
552
HDA_CMD_VERB_GET_GPIO_DIRECTION, 0x0))
553
#define HDA_CMD_SET_GPIO_DIRECTION(cad, nid, payload) \
554
(HDA_CMD_12BIT((cad), (nid), \
555
HDA_CMD_VERB_SET_GPIO_DIRECTION, (payload)))
556
557
/* GPIO Wake Enable Mask */
558
#define HDA_CMD_VERB_GET_GPIO_WAKE_ENABLE_MASK 0xf18
559
#define HDA_CMD_VERB_SET_GPIO_WAKE_ENABLE_MASK 0x718
560
561
#define HDA_CMD_GET_GPIO_WAKE_ENABLE_MASK(cad, nid) \
562
(HDA_CMD_12BIT((cad), (nid), \
563
HDA_CMD_VERB_GET_GPIO_WAKE_ENABLE_MASK, 0x0))
564
#define HDA_CMD_SET_GPIO_WAKE_ENABLE_MASK(cad, nid, payload) \
565
(HDA_CMD_12BIT((cad), (nid), \
566
HDA_CMD_VERB_SET_GPIO_WAKE_ENABLE_MASK, (payload)))
567
568
/* GPIO Unsolicited Enable Mask */
569
#define HDA_CMD_VERB_GET_GPIO_UNSOLICITED_ENABLE_MASK 0xf19
570
#define HDA_CMD_VERB_SET_GPIO_UNSOLICITED_ENABLE_MASK 0x719
571
572
#define HDA_CMD_GET_GPIO_UNSOLICITED_ENABLE_MASK(cad, nid) \
573
(HDA_CMD_12BIT((cad), (nid), \
574
HDA_CMD_VERB_GET_GPIO_UNSOLICITED_ENABLE_MASK, 0x0))
575
#define HDA_CMD_SET_GPIO_UNSOLICITED_ENABLE_MASK(cad, nid, payload) \
576
(HDA_CMD_12BIT((cad), (nid), \
577
HDA_CMD_VERB_SET_GPIO_UNSOLICITED_ENABLE_MASK, (payload)))
578
579
/* GPIO_STICKY_MASK */
580
#define HDA_CMD_VERB_GET_GPIO_STICKY_MASK 0xf1a
581
#define HDA_CMD_VERB_SET_GPIO_STICKY_MASK 0x71a
582
583
#define HDA_CMD_GET_GPIO_STICKY_MASK(cad, nid) \
584
(HDA_CMD_12BIT((cad), (nid), \
585
HDA_CMD_VERB_GET_GPIO_STICKY_MASK, 0x0))
586
#define HDA_CMD_SET_GPIO_STICKY_MASK(cad, nid, payload) \
587
(HDA_CMD_12BIT((cad), (nid), \
588
HDA_CMD_VERB_SET_GPIO_STICKY_MASK, (payload)))
589
590
/* Beep Generation */
591
#define HDA_CMD_VERB_GET_BEEP_GENERATION 0xf0a
592
#define HDA_CMD_VERB_SET_BEEP_GENERATION 0x70a
593
594
#define HDA_CMD_GET_BEEP_GENERATION(cad, nid) \
595
(HDA_CMD_12BIT((cad), (nid), \
596
HDA_CMD_VERB_GET_BEEP_GENERATION, 0x0))
597
#define HDA_CMD_SET_BEEP_GENERATION(cad, nid, payload) \
598
(HDA_CMD_12BIT((cad), (nid), \
599
HDA_CMD_VERB_SET_BEEP_GENERATION, (payload)))
600
601
/* Volume Knob */
602
#define HDA_CMD_VERB_GET_VOLUME_KNOB 0xf0f
603
#define HDA_CMD_VERB_SET_VOLUME_KNOB 0x70f
604
605
#define HDA_CMD_GET_VOLUME_KNOB(cad, nid) \
606
(HDA_CMD_12BIT((cad), (nid), \
607
HDA_CMD_VERB_GET_VOLUME_KNOB, 0x0))
608
#define HDA_CMD_SET_VOLUME_KNOB(cad, nid, payload) \
609
(HDA_CMD_12BIT((cad), (nid), \
610
HDA_CMD_VERB_SET_VOLUME_KNOB, (payload)))
611
612
/* Subsystem ID */
613
#define HDA_CMD_VERB_GET_SUBSYSTEM_ID 0xf20
614
#define HDA_CMD_VERB_SET_SUSBYSTEM_ID1 0x720
615
#define HDA_CMD_VERB_SET_SUBSYSTEM_ID2 0x721
616
#define HDA_CMD_VERB_SET_SUBSYSTEM_ID3 0x722
617
#define HDA_CMD_VERB_SET_SUBSYSTEM_ID4 0x723
618
619
#define HDA_CMD_GET_SUBSYSTEM_ID(cad, nid) \
620
(HDA_CMD_12BIT((cad), (nid), \
621
HDA_CMD_VERB_GET_SUBSYSTEM_ID, 0x0))
622
#define HDA_CMD_SET_SUBSYSTEM_ID1(cad, nid, payload) \
623
(HDA_CMD_12BIT((cad), (nid), \
624
HDA_CMD_VERB_SET_SUSBYSTEM_ID1, (payload)))
625
#define HDA_CMD_SET_SUBSYSTEM_ID2(cad, nid, payload) \
626
(HDA_CMD_12BIT((cad), (nid), \
627
HDA_CMD_VERB_SET_SUSBYSTEM_ID2, (payload)))
628
#define HDA_CMD_SET_SUBSYSTEM_ID3(cad, nid, payload) \
629
(HDA_CMD_12BIT((cad), (nid), \
630
HDA_CMD_VERB_SET_SUSBYSTEM_ID3, (payload)))
631
#define HDA_CMD_SET_SUBSYSTEM_ID4(cad, nid, payload) \
632
(HDA_CMD_12BIT((cad), (nid), \
633
HDA_CMD_VERB_SET_SUSBYSTEM_ID4, (payload)))
634
635
/* Configuration Default */
636
#define HDA_CMD_VERB_GET_CONFIGURATION_DEFAULT 0xf1c
637
#define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT1 0x71c
638
#define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT2 0x71d
639
#define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT3 0x71e
640
#define HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT4 0x71f
641
642
#define HDA_CMD_GET_CONFIGURATION_DEFAULT(cad, nid) \
643
(HDA_CMD_12BIT((cad), (nid), \
644
HDA_CMD_VERB_GET_CONFIGURATION_DEFAULT, 0x0))
645
#define HDA_CMD_SET_CONFIGURATION_DEFAULT1(cad, nid, payload) \
646
(HDA_CMD_12BIT((cad), (nid), \
647
HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT1, (payload)))
648
#define HDA_CMD_SET_CONFIGURATION_DEFAULT2(cad, nid, payload) \
649
(HDA_CMD_12BIT((cad), (nid), \
650
HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT2, (payload)))
651
#define HDA_CMD_SET_CONFIGURATION_DEFAULT3(cad, nid, payload) \
652
(HDA_CMD_12BIT((cad), (nid), \
653
HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT3, (payload)))
654
#define HDA_CMD_SET_CONFIGURATION_DEFAULT4(cad, nid, payload) \
655
(HDA_CMD_12BIT((cad), (nid), \
656
HDA_CMD_VERB_SET_CONFIGURATION_DEFAULT4, (payload)))
657
658
/* Stripe Control */
659
#define HDA_CMD_VERB_GET_STRIPE_CONTROL 0xf24
660
#define HDA_CMD_VERB_SET_STRIPE_CONTROL 0x724
661
662
#define HDA_CMD_GET_STRIPE_CONTROL(cad, nid) \
663
(HDA_CMD_12BIT((cad), (nid), \
664
HDA_CMD_VERB_GET_STRIPE_CONTROL, 0x0))
665
#define HDA_CMD_SET_STRIPE_CONTROL(cad, nid, payload) \
666
(HDA_CMD_12BIT((cad), (nid), \
667
HDA_CMD_VERB_SET_STRIPE_CONTROL, (payload)))
668
669
/* Channel Count Control */
670
#define HDA_CMD_VERB_GET_CONV_CHAN_COUNT 0xf2d
671
#define HDA_CMD_VERB_SET_CONV_CHAN_COUNT 0x72d
672
673
#define HDA_CMD_GET_CONV_CHAN_COUNT(cad, nid) \
674
(HDA_CMD_12BIT((cad), (nid), \
675
HDA_CMD_VERB_GET_CONV_CHAN_COUNT, 0x0))
676
#define HDA_CMD_SET_CONV_CHAN_COUNT(cad, nid, payload) \
677
(HDA_CMD_12BIT((cad), (nid), \
678
HDA_CMD_VERB_SET_CONV_CHAN_COUNT, (payload)))
679
680
#define HDA_CMD_VERB_GET_HDMI_DIP_SIZE 0xf2e
681
682
#define HDA_CMD_GET_HDMI_DIP_SIZE(cad, nid, arg) \
683
(HDA_CMD_12BIT((cad), (nid), \
684
HDA_CMD_VERB_GET_HDMI_DIP_SIZE, (arg)))
685
686
#define HDA_CMD_VERB_GET_HDMI_ELDD 0xf2f
687
688
#define HDA_CMD_GET_HDMI_ELDD(cad, nid, off) \
689
(HDA_CMD_12BIT((cad), (nid), \
690
HDA_CMD_VERB_GET_HDMI_ELDD, (off)))
691
692
#define HDA_CMD_VERB_GET_HDMI_DIP_INDEX 0xf30
693
#define HDA_CMD_VERB_SET_HDMI_DIP_INDEX 0x730
694
695
#define HDA_CMD_GET_HDMI_DIP_INDEX(cad, nid) \
696
(HDA_CMD_12BIT((cad), (nid), \
697
HDA_CMD_VERB_GET_HDMI_DIP_INDEX, 0x0))
698
#define HDA_CMD_SET_HDMI_DIP_INDEX(cad, nid, payload) \
699
(HDA_CMD_12BIT((cad), (nid), \
700
HDA_CMD_VERB_SET_HDMI_DIP_INDEX, (payload)))
701
702
#define HDA_CMD_VERB_GET_HDMI_DIP_DATA 0xf31
703
#define HDA_CMD_VERB_SET_HDMI_DIP_DATA 0x731
704
705
#define HDA_CMD_GET_HDMI_DIP_DATA(cad, nid) \
706
(HDA_CMD_12BIT((cad), (nid), \
707
HDA_CMD_VERB_GET_HDMI_DIP_DATA, 0x0))
708
#define HDA_CMD_SET_HDMI_DIP_DATA(cad, nid, payload) \
709
(HDA_CMD_12BIT((cad), (nid), \
710
HDA_CMD_VERB_SET_HDMI_DIP_DATA, (payload)))
711
712
#define HDA_CMD_VERB_GET_HDMI_DIP_XMIT 0xf32
713
#define HDA_CMD_VERB_SET_HDMI_DIP_XMIT 0x732
714
715
#define HDA_CMD_GET_HDMI_DIP_XMIT(cad, nid) \
716
(HDA_CMD_12BIT((cad), (nid), \
717
HDA_CMD_VERB_GET_HDMI_DIP_XMIT, 0x0))
718
#define HDA_CMD_SET_HDMI_DIP_XMIT(cad, nid, payload) \
719
(HDA_CMD_12BIT((cad), (nid), \
720
HDA_CMD_VERB_SET_HDMI_DIP_XMIT, (payload)))
721
722
#define HDA_CMD_VERB_GET_HDMI_CP_CTRL 0xf33
723
#define HDA_CMD_VERB_SET_HDMI_CP_CTRL 0x733
724
725
#define HDA_CMD_VERB_GET_HDMI_CHAN_SLOT 0xf34
726
#define HDA_CMD_VERB_SET_HDMI_CHAN_SLOT 0x734
727
728
#define HDA_CMD_GET_HDMI_CHAN_SLOT(cad, nid) \
729
(HDA_CMD_12BIT((cad), (nid), \
730
HDA_CMD_VERB_GET_HDMI_CHAN_SLOT, 0x0))
731
#define HDA_CMD_SET_HDMI_CHAN_SLOT(cad, nid, payload) \
732
(HDA_CMD_12BIT((cad), (nid), \
733
HDA_CMD_VERB_SET_HDMI_CHAN_SLOT, (payload)))
734
735
#define HDA_HDMI_CODING_TYPE_REF_STREAM_HEADER 0
736
#define HDA_HDMI_CODING_TYPE_LPCM 1
737
#define HDA_HDMI_CODING_TYPE_AC3 2
738
#define HDA_HDMI_CODING_TYPE_MPEG1 3
739
#define HDA_HDMI_CODING_TYPE_MP3 4
740
#define HDA_HDMI_CODING_TYPE_MPEG2 5
741
#define HDA_HDMI_CODING_TYPE_AACLC 6
742
#define HDA_HDMI_CODING_TYPE_DTS 7
743
#define HDA_HDMI_CODING_TYPE_ATRAC 8
744
#define HDA_HDMI_CODING_TYPE_SACD 9
745
#define HDA_HDMI_CODING_TYPE_EAC3 10
746
#define HDA_HDMI_CODING_TYPE_DTS_HD 11
747
#define HDA_HDMI_CODING_TYPE_MLP 12
748
#define HDA_HDMI_CODING_TYPE_DST 13
749
#define HDA_HDMI_CODING_TYPE_WMAPRO 14
750
#define HDA_HDMI_CODING_TYPE_REF_CTX 15
751
752
/* Function Reset */
753
#define HDA_CMD_VERB_FUNCTION_RESET 0x7ff
754
755
#define HDA_CMD_FUNCTION_RESET(cad, nid) \
756
(HDA_CMD_12BIT((cad), (nid), \
757
HDA_CMD_VERB_FUNCTION_RESET, 0x0))
758
759
/****************************************************************************
760
* HDA Device Parameters
761
****************************************************************************/
762
763
/* Vendor ID */
764
#define HDA_PARAM_VENDOR_ID 0x00
765
766
#define HDA_PARAM_VENDOR_ID_VENDOR_ID_MASK 0xffff0000
767
#define HDA_PARAM_VENDOR_ID_VENDOR_ID_SHIFT 16
768
#define HDA_PARAM_VENDOR_ID_DEVICE_ID_MASK 0x0000ffff
769
#define HDA_PARAM_VENDOR_ID_DEVICE_ID_SHIFT 0
770
771
#define HDA_PARAM_VENDOR_ID_VENDOR_ID(param) \
772
(((param) & HDA_PARAM_VENDOR_ID_VENDOR_ID_MASK) >> \
773
HDA_PARAM_VENDOR_ID_VENDOR_ID_SHIFT)
774
#define HDA_PARAM_VENDOR_ID_DEVICE_ID(param) \
775
(((param) & HDA_PARAM_VENDOR_ID_DEVICE_ID_MASK) >> \
776
HDA_PARAM_VENDOR_ID_DEVICE_ID_SHIFT)
777
778
/* Revision ID */
779
#define HDA_PARAM_REVISION_ID 0x02
780
781
#define HDA_PARAM_REVISION_ID_MAJREV_MASK 0x00f00000
782
#define HDA_PARAM_REVISION_ID_MAJREV_SHIFT 20
783
#define HDA_PARAM_REVISION_ID_MINREV_MASK 0x000f0000
784
#define HDA_PARAM_REVISION_ID_MINREV_SHIFT 16
785
#define HDA_PARAM_REVISION_ID_REVISION_ID_MASK 0x0000ff00
786
#define HDA_PARAM_REVISION_ID_REVISION_ID_SHIFT 8
787
#define HDA_PARAM_REVISION_ID_STEPPING_ID_MASK 0x000000ff
788
#define HDA_PARAM_REVISION_ID_STEPPING_ID_SHIFT 0
789
790
#define HDA_PARAM_REVISION_ID_MAJREV(param) \
791
(((param) & HDA_PARAM_REVISION_ID_MAJREV_MASK) >> \
792
HDA_PARAM_REVISION_ID_MAJREV_SHIFT)
793
#define HDA_PARAM_REVISION_ID_MINREV(param) \
794
(((param) & HDA_PARAM_REVISION_ID_MINREV_MASK) >> \
795
HDA_PARAM_REVISION_ID_MINREV_SHIFT)
796
#define HDA_PARAM_REVISION_ID_REVISION_ID(param) \
797
(((param) & HDA_PARAM_REVISION_ID_REVISION_ID_MASK) >> \
798
HDA_PARAM_REVISION_ID_REVISION_ID_SHIFT)
799
#define HDA_PARAM_REVISION_ID_STEPPING_ID(param) \
800
(((param) & HDA_PARAM_REVISION_ID_STEPPING_ID_MASK) >> \
801
HDA_PARAM_REVISION_ID_STEPPING_ID_SHIFT)
802
803
/* Subordinate Node Cound */
804
#define HDA_PARAM_SUB_NODE_COUNT 0x04
805
806
#define HDA_PARAM_SUB_NODE_COUNT_START_MASK 0x00ff0000
807
#define HDA_PARAM_SUB_NODE_COUNT_START_SHIFT 16
808
#define HDA_PARAM_SUB_NODE_COUNT_TOTAL_MASK 0x000000ff
809
#define HDA_PARAM_SUB_NODE_COUNT_TOTAL_SHIFT 0
810
811
#define HDA_PARAM_SUB_NODE_COUNT_START(param) \
812
(((param) & HDA_PARAM_SUB_NODE_COUNT_START_MASK) >> \
813
HDA_PARAM_SUB_NODE_COUNT_START_SHIFT)
814
#define HDA_PARAM_SUB_NODE_COUNT_TOTAL(param) \
815
(((param) & HDA_PARAM_SUB_NODE_COUNT_TOTAL_MASK) >> \
816
HDA_PARAM_SUB_NODE_COUNT_TOTAL_SHIFT)
817
818
/* Function Group Type */
819
#define HDA_PARAM_FCT_GRP_TYPE 0x05
820
821
#define HDA_PARAM_FCT_GRP_TYPE_UNSOL_MASK 0x00000100
822
#define HDA_PARAM_FCT_GRP_TYPE_UNSOL_SHIFT 8
823
#define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_MASK 0x000000ff
824
#define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_SHIFT 0
825
826
#define HDA_PARAM_FCT_GRP_TYPE_UNSOL(param) \
827
(((param) & HDA_PARAM_FCT_GRP_TYPE_UNSOL_MASK) >> \
828
HDA_PARAM_FCT_GROUP_TYPE_UNSOL_SHIFT)
829
#define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE(param) \
830
(((param) & HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_MASK) >> \
831
HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_SHIFT)
832
833
#define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_AUDIO 0x01
834
#define HDA_PARAM_FCT_GRP_TYPE_NODE_TYPE_MODEM 0x02
835
836
/* Audio Function Group Capabilities */
837
#define HDA_PARAM_AUDIO_FCT_GRP_CAP 0x08
838
839
#define HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_MASK 0x00010000
840
#define HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_SHIFT 16
841
#define HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_MASK 0x00000f00
842
#define HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_SHIFT 8
843
#define HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_MASK 0x0000000f
844
#define HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_SHIFT 0
845
846
#define HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN(param) \
847
(((param) & HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_MASK) >> \
848
HDA_PARAM_AUDIO_FCT_GRP_CAP_BEEP_GEN_SHIFT)
849
#define HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY(param) \
850
(((param) & HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_MASK) >> \
851
HDA_PARAM_AUDIO_FCT_GRP_CAP_INPUT_DELAY_SHIFT)
852
#define HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY(param) \
853
(((param) & HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_MASK) >> \
854
HDA_PARAM_AUDIO_FCT_GRP_CAP_OUTPUT_DELAY_SHIFT)
855
856
/* Audio Widget Capabilities */
857
#define HDA_PARAM_AUDIO_WIDGET_CAP 0x09
858
859
#define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_MASK 0x00f00000
860
#define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_SHIFT 20
861
#define HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_MASK 0x000f0000
862
#define HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_SHIFT 16
863
#define HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_MASK 0x0000e000
864
#define HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_SHIFT 13
865
#define HDA_PARAM_AUDIO_WIDGET_CAP_CP_MASK 0x00001000
866
#define HDA_PARAM_AUDIO_WIDGET_CAP_CP_SHIFT 12
867
#define HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_MASK 0x00000800
868
#define HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_SHIFT 11
869
#define HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_MASK 0x00000400
870
#define HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_SHIFT 10
871
#define HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_MASK 0x00000200
872
#define HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_SHIFT 9
873
#define HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_MASK 0x00000100
874
#define HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_SHIFT 8
875
#define HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_MASK 0x00000080
876
#define HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_SHIFT 7
877
#define HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_MASK 0x00000040
878
#define HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_SHIFT 6
879
#define HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_MASK 0x00000020
880
#define HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_SHIFT 5
881
#define HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_MASK 0x00000010
882
#define HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_SHIFT 4
883
#define HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_MASK 0x00000008
884
#define HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_SHIFT 3
885
#define HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_MASK 0x00000004
886
#define HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_SHIFT 2
887
#define HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_MASK 0x00000002
888
#define HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_SHIFT 1
889
#define HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_MASK 0x00000001
890
#define HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_SHIFT 0
891
892
#define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE(param) \
893
(((param) & HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_MASK) >> \
894
HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_SHIFT)
895
#define HDA_PARAM_AUDIO_WIDGET_CAP_DELAY(param) \
896
(((param) & HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_MASK) >> \
897
HDA_PARAM_AUDIO_WIDGET_CAP_DELAY_SHIFT)
898
#define HDA_PARAM_AUDIO_WIDGET_CAP_CC(param) \
899
((((param) & HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_MASK) >> \
900
(HDA_PARAM_AUDIO_WIDGET_CAP_CC_EXT_SHIFT - 1)) | \
901
(((param) & HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_MASK) >> \
902
HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_SHIFT))
903
#define HDA_PARAM_AUDIO_WIDGET_CAP_CP(param) \
904
(((param) & HDA_PARAM_AUDIO_WIDGET_CAP_CP_MASK) >> \
905
HDA_PARAM_AUDIO_WIDGET_CAP_CP_SHIFT)
906
#define HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP(param) \
907
(((param) & HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_MASK) >> \
908
HDA_PARAM_AUDIO_WIDGET_CAP_LR_SWAP_SHIFT)
909
#define HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL(param) \
910
(((param) & HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_MASK) >> \
911
HDA_PARAM_AUDIO_WIDGET_CAP_POWER_CTRL_SHIFT)
912
#define HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL(param) \
913
(((param) & HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_MASK) >> \
914
HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL_SHIFT)
915
#define HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST(param) \
916
(((param) & HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_MASK) >> \
917
HDA_PARAM_AUDIO_WIDGET_CAP_CONN_LIST_SHIFT)
918
#define HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP(param) \
919
(((param) & HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_MASK) >> \
920
HDA_PARAM_AUDIO_WIDGET_CAP_UNSOL_CAP_SHIFT)
921
#define HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET(param) \
922
(((param) & HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_MASK) >> \
923
HDA_PARAM_AUDIO_WIDGET_CAP_PROC_WIDGET_SHIFT)
924
#define HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE(param) \
925
(((param) & HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_MASK) >> \
926
HDA_PARAM_AUDIO_WIDGET_CAP_STRIPE_SHIFT)
927
#define HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR(param) \
928
(((param) & HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_MASK) >> \
929
HDA_PARAM_AUDIO_WIDGET_CAP_FORMAT_OVR_SHIFT)
930
#define HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR(param) \
931
(((param) & HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_MASK) >> \
932
HDA_PARAM_AUDIO_WIDGET_CAP_AMP_OVR_SHIFT)
933
#define HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP(param) \
934
(((param) & HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_MASK) >> \
935
HDA_PARAM_AUDIO_WIDGET_CAP_OUT_AMP_SHIFT)
936
#define HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP(param) \
937
(((param) & HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_MASK) >> \
938
HDA_PARAM_AUDIO_WIDGET_CAP_IN_AMP_SHIFT)
939
#define HDA_PARAM_AUDIO_WIDGET_CAP_STEREO(param) \
940
(((param) & HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_MASK) >> \
941
HDA_PARAM_AUDIO_WIDGET_CAP_STEREO_SHIFT)
942
943
#define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_OUTPUT 0x0
944
#define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_INPUT 0x1
945
#define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_MIXER 0x2
946
#define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_AUDIO_SELECTOR 0x3
947
#define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_PIN_COMPLEX 0x4
948
#define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_POWER_WIDGET 0x5
949
#define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_VOLUME_WIDGET 0x6
950
#define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_BEEP_WIDGET 0x7
951
#define HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_VENDOR_WIDGET 0xf
952
953
/* Supported PCM Size, Rates */
954
955
#define HDA_PARAM_SUPP_PCM_SIZE_RATE 0x0a
956
957
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_MASK 0x00100000
958
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_SHIFT 20
959
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_MASK 0x00080000
960
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_SHIFT 19
961
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_MASK 0x00040000
962
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_SHIFT 18
963
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_MASK 0x00020000
964
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_SHIFT 17
965
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_MASK 0x00010000
966
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_SHIFT 16
967
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_MASK 0x00000001
968
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_SHIFT 0
969
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_MASK 0x00000002
970
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_SHIFT 1
971
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_MASK 0x00000004
972
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_SHIFT 2
973
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_MASK 0x00000008
974
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_SHIFT 3
975
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_MASK 0x00000010
976
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_SHIFT 4
977
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_MASK 0x00000020
978
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_SHIFT 5
979
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_MASK 0x00000040
980
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_SHIFT 6
981
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_MASK 0x00000080
982
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_SHIFT 7
983
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_MASK 0x00000100
984
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_SHIFT 8
985
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_MASK 0x00000200
986
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_SHIFT 9
987
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_MASK 0x00000400
988
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_SHIFT 10
989
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_MASK 0x00000800
990
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_SHIFT 11
991
992
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT(param) \
993
(((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_MASK) >> \
994
HDA_PARAM_SUPP_PCM_SIZE_RATE_32BIT_SHIFT)
995
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT(param) \
996
(((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_MASK) >> \
997
HDA_PARAM_SUPP_PCM_SIZE_RATE_24BIT_SHIFT)
998
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT(param) \
999
(((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_MASK) >> \
1000
HDA_PARAM_SUPP_PCM_SIZE_RATE_20BIT_SHIFT)
1001
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT(param) \
1002
(((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_MASK) >> \
1003
HDA_PARAM_SUPP_PCM_SIZE_RATE_16BIT_SHIFT)
1004
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT(param) \
1005
(((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_MASK) >> \
1006
HDA_PARAM_SUPP_PCM_SIZE_RATE_8BIT_SHIFT)
1007
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ(param) \
1008
(((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_MASK) >> \
1009
HDA_PARAM_SUPP_PCM_SIZE_RATE_8KHZ_SHIFT)
1010
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ(param) \
1011
(((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_MASK) >> \
1012
HDA_PARAM_SUPP_PCM_SIZE_RATE_11KHZ_SHIFT)
1013
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ(param) \
1014
(((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_MASK) >> \
1015
HDA_PARAM_SUPP_PCM_SIZE_RATE_16KHZ_SHIFT)
1016
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ(param) \
1017
(((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_MASK) >> \
1018
HDA_PARAM_SUPP_PCM_SIZE_RATE_22KHZ_SHIFT)
1019
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ(param) \
1020
(((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_MASK) >> \
1021
HDA_PARAM_SUPP_PCM_SIZE_RATE_32KHZ_SHIFT)
1022
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ(param) \
1023
(((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_MASK) >> \
1024
HDA_PARAM_SUPP_PCM_SIZE_RATE_44KHZ_SHIFT)
1025
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ(param) \
1026
(((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_MASK) >> \
1027
HDA_PARAM_SUPP_PCM_SIZE_RATE_48KHZ_SHIFT)
1028
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ(param) \
1029
(((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_MASK) >> \
1030
HDA_PARAM_SUPP_PCM_SIZE_RATE_88KHZ_SHIFT)
1031
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ(param) \
1032
(((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_MASK) >> \
1033
HDA_PARAM_SUPP_PCM_SIZE_RATE_96KHZ_SHIFT)
1034
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ(param) \
1035
(((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_MASK) >> \
1036
HDA_PARAM_SUPP_PCM_SIZE_RATE_176KHZ_SHIFT)
1037
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ(param) \
1038
(((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_MASK) >> \
1039
HDA_PARAM_SUPP_PCM_SIZE_RATE_192KHZ_SHIFT)
1040
#define HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ(param) \
1041
(((param) & HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_MASK) >> \
1042
HDA_PARAM_SUPP_PCM_SIZE_RATE_384KHZ_SHIFT)
1043
1044
/* Supported Stream Formats */
1045
#define HDA_PARAM_SUPP_STREAM_FORMATS 0x0b
1046
1047
#define HDA_PARAM_SUPP_STREAM_FORMATS_AC3_MASK 0x00000004
1048
#define HDA_PARAM_SUPP_STREAM_FORMATS_AC3_SHIFT 2
1049
#define HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_MASK 0x00000002
1050
#define HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_SHIFT 1
1051
#define HDA_PARAM_SUPP_STREAM_FORMATS_PCM_MASK 0x00000001
1052
#define HDA_PARAM_SUPP_STREAM_FORMATS_PCM_SHIFT 0
1053
1054
#define HDA_PARAM_SUPP_STREAM_FORMATS_AC3(param) \
1055
(((param) & HDA_PARAM_SUPP_STREAM_FORMATS_AC3_MASK) >> \
1056
HDA_PARAM_SUPP_STREAM_FORMATS_AC3_SHIFT)
1057
#define HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32(param) \
1058
(((param) & HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_MASK) >> \
1059
HDA_PARAM_SUPP_STREAM_FORMATS_FLOAT32_SHIFT)
1060
#define HDA_PARAM_SUPP_STREAM_FORMATS_PCM(param) \
1061
(((param) & HDA_PARAM_SUPP_STREAM_FORMATS_PCM_MASK) >> \
1062
HDA_PARAM_SUPP_STREAM_FORMATS_PCM_SHIFT)
1063
1064
/* Pin Capabilities */
1065
#define HDA_PARAM_PIN_CAP 0x0c
1066
1067
#define HDA_PARAM_PIN_CAP_HBR_MASK 0x08000000
1068
#define HDA_PARAM_PIN_CAP_HBR_SHIFT 27
1069
#define HDA_PARAM_PIN_CAP_DP_MASK 0x01000000
1070
#define HDA_PARAM_PIN_CAP_DP_SHIFT 24
1071
#define HDA_PARAM_PIN_CAP_EAPD_CAP_MASK 0x00010000
1072
#define HDA_PARAM_PIN_CAP_EAPD_CAP_SHIFT 16
1073
#define HDA_PARAM_PIN_CAP_VREF_CTRL_MASK 0x0000ff00
1074
#define HDA_PARAM_PIN_CAP_VREF_CTRL_SHIFT 8
1075
#define HDA_PARAM_PIN_CAP_VREF_CTRL_100_MASK 0x00002000
1076
#define HDA_PARAM_PIN_CAP_VREF_CTRL_100_SHIFT 13
1077
#define HDA_PARAM_PIN_CAP_VREF_CTRL_80_MASK 0x00001000
1078
#define HDA_PARAM_PIN_CAP_VREF_CTRL_80_SHIFT 12
1079
#define HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_MASK 0x00000400
1080
#define HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_SHIFT 10
1081
#define HDA_PARAM_PIN_CAP_VREF_CTRL_50_MASK 0x00000200
1082
#define HDA_PARAM_PIN_CAP_VREF_CTRL_50_SHIFT 9
1083
#define HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_MASK 0x00000100
1084
#define HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_SHIFT 8
1085
#define HDA_PARAM_PIN_CAP_HDMI_MASK 0x00000080
1086
#define HDA_PARAM_PIN_CAP_HDMI_SHIFT 7
1087
#define HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_MASK 0x00000040
1088
#define HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_SHIFT 6
1089
#define HDA_PARAM_PIN_CAP_INPUT_CAP_MASK 0x00000020
1090
#define HDA_PARAM_PIN_CAP_INPUT_CAP_SHIFT 5
1091
#define HDA_PARAM_PIN_CAP_OUTPUT_CAP_MASK 0x00000010
1092
#define HDA_PARAM_PIN_CAP_OUTPUT_CAP_SHIFT 4
1093
#define HDA_PARAM_PIN_CAP_HEADPHONE_CAP_MASK 0x00000008
1094
#define HDA_PARAM_PIN_CAP_HEADPHONE_CAP_SHIFT 3
1095
#define HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_MASK 0x00000004
1096
#define HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_SHIFT 2
1097
#define HDA_PARAM_PIN_CAP_TRIGGER_REQD_MASK 0x00000002
1098
#define HDA_PARAM_PIN_CAP_TRIGGER_REQD_SHIFT 1
1099
#define HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_MASK 0x00000001
1100
#define HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_SHIFT 0
1101
1102
#define HDA_PARAM_PIN_CAP_HBR(param) \
1103
(((param) & HDA_PARAM_PIN_CAP_HBR_MASK) >> \
1104
HDA_PARAM_PIN_CAP_HBR_SHIFT)
1105
#define HDA_PARAM_PIN_CAP_DP(param) \
1106
(((param) & HDA_PARAM_PIN_CAP_DP_MASK) >> \
1107
HDA_PARAM_PIN_CAP_DP_SHIFT)
1108
#define HDA_PARAM_PIN_CAP_EAPD_CAP(param) \
1109
(((param) & HDA_PARAM_PIN_CAP_EAPD_CAP_MASK) >> \
1110
HDA_PARAM_PIN_CAP_EAPD_CAP_SHIFT)
1111
#define HDA_PARAM_PIN_CAP_VREF_CTRL(param) \
1112
(((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_MASK) >> \
1113
HDA_PARAM_PIN_CAP_VREF_CTRL_SHIFT)
1114
#define HDA_PARAM_PIN_CAP_VREF_CTRL_100(param) \
1115
(((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_100_MASK) >> \
1116
HDA_PARAM_PIN_CAP_VREF_CTRL_100_SHIFT)
1117
#define HDA_PARAM_PIN_CAP_VREF_CTRL_80(param) \
1118
(((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_80_MASK) >> \
1119
HDA_PARAM_PIN_CAP_VREF_CTRL_80_SHIFT)
1120
#define HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND(param) \
1121
(((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_MASK) >> \
1122
HDA_PARAM_PIN_CAP_VREF_CTRL_GROUND_SHIFT)
1123
#define HDA_PARAM_PIN_CAP_VREF_CTRL_50(param) \
1124
(((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_50_MASK) >> \
1125
HDA_PARAM_PIN_CAP_VREF_CTRL_50_SHIFT)
1126
#define HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ(param) \
1127
(((param) & HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_MASK) >> \
1128
HDA_PARAM_PIN_CAP_VREF_CTRL_HIZ_SHIFT)
1129
#define HDA_PARAM_PIN_CAP_HDMI(param) \
1130
(((param) & HDA_PARAM_PIN_CAP_HDMI_MASK) >> \
1131
HDA_PARAM_PIN_CAP_HDMI_SHIFT)
1132
#define HDA_PARAM_PIN_CAP_BALANCED_IO_PINS(param) \
1133
(((param) & HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_MASK) >> \
1134
HDA_PARAM_PIN_CAP_BALANCED_IO_PINS_SHIFT)
1135
#define HDA_PARAM_PIN_CAP_INPUT_CAP(param) \
1136
(((param) & HDA_PARAM_PIN_CAP_INPUT_CAP_MASK) >> \
1137
HDA_PARAM_PIN_CAP_INPUT_CAP_SHIFT)
1138
#define HDA_PARAM_PIN_CAP_OUTPUT_CAP(param) \
1139
(((param) & HDA_PARAM_PIN_CAP_OUTPUT_CAP_MASK) >> \
1140
HDA_PARAM_PIN_CAP_OUTPUT_CAP_SHIFT)
1141
#define HDA_PARAM_PIN_CAP_HEADPHONE_CAP(param) \
1142
(((param) & HDA_PARAM_PIN_CAP_HEADPHONE_CAP_MASK) >> \
1143
HDA_PARAM_PIN_CAP_HEADPHONE_CAP_SHIFT)
1144
#define HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP(param) \
1145
(((param) & HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_MASK) >> \
1146
HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_SHIFT)
1147
#define HDA_PARAM_PIN_CAP_TRIGGER_REQD(param) \
1148
(((param) & HDA_PARAM_PIN_CAP_TRIGGER_REQD_MASK) >> \
1149
HDA_PARAM_PIN_CAP_TRIGGER_REQD_SHIFT)
1150
#define HDA_PARAM_PIN_CAP_IMP_SENSE_CAP(param) \
1151
(((param) & HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_MASK) >> \
1152
HDA_PARAM_PIN_CAP_IMP_SENSE_CAP_SHIFT)
1153
1154
/* Input Amplifier Capabilities */
1155
#define HDA_PARAM_INPUT_AMP_CAP 0x0d
1156
1157
#define HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_MASK 0x80000000
1158
#define HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_SHIFT 31
1159
#define HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_MASK 0x007f0000
1160
#define HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_SHIFT 16
1161
#define HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_MASK 0x00007f00
1162
#define HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_SHIFT 8
1163
#define HDA_PARAM_INPUT_AMP_CAP_OFFSET_MASK 0x0000007f
1164
#define HDA_PARAM_INPUT_AMP_CAP_OFFSET_SHIFT 0
1165
1166
#define HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP(param) \
1167
(((param) & HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_MASK) >> \
1168
HDA_PARAM_INPUT_AMP_CAP_MUTE_CAP_SHIFT)
1169
#define HDA_PARAM_INPUT_AMP_CAP_STEPSIZE(param) \
1170
(((param) & HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_MASK) >> \
1171
HDA_PARAM_INPUT_AMP_CAP_STEPSIZE_SHIFT)
1172
#define HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS(param) \
1173
(((param) & HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_MASK) >> \
1174
HDA_PARAM_INPUT_AMP_CAP_NUMSTEPS_SHIFT)
1175
#define HDA_PARAM_INPUT_AMP_CAP_OFFSET(param) \
1176
(((param) & HDA_PARAM_INPUT_AMP_CAP_OFFSET_MASK) >> \
1177
HDA_PARAM_INPUT_AMP_CAP_OFFSET_SHIFT)
1178
1179
/* Output Amplifier Capabilities */
1180
#define HDA_PARAM_OUTPUT_AMP_CAP 0x12
1181
1182
#define HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_MASK 0x80000000
1183
#define HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_SHIFT 31
1184
#define HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_MASK 0x007f0000
1185
#define HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_SHIFT 16
1186
#define HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_MASK 0x00007f00
1187
#define HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_SHIFT 8
1188
#define HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_MASK 0x0000007f
1189
#define HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_SHIFT 0
1190
1191
#define HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP(param) \
1192
(((param) & HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_MASK) >> \
1193
HDA_PARAM_OUTPUT_AMP_CAP_MUTE_CAP_SHIFT)
1194
#define HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE(param) \
1195
(((param) & HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_MASK) >> \
1196
HDA_PARAM_OUTPUT_AMP_CAP_STEPSIZE_SHIFT)
1197
#define HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS(param) \
1198
(((param) & HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_MASK) >> \
1199
HDA_PARAM_OUTPUT_AMP_CAP_NUMSTEPS_SHIFT)
1200
#define HDA_PARAM_OUTPUT_AMP_CAP_OFFSET(param) \
1201
(((param) & HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_MASK) >> \
1202
HDA_PARAM_OUTPUT_AMP_CAP_OFFSET_SHIFT)
1203
1204
/* Connection List Length */
1205
#define HDA_PARAM_CONN_LIST_LENGTH 0x0e
1206
1207
#define HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_MASK 0x00000080
1208
#define HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_SHIFT 7
1209
#define HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_MASK 0x0000007f
1210
#define HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_SHIFT 0
1211
1212
#define HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM(param) \
1213
(((param) & HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_MASK) >> \
1214
HDA_PARAM_CONN_LIST_LENGTH_LONG_FORM_SHIFT)
1215
#define HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH(param) \
1216
(((param) & HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_MASK) >> \
1217
HDA_PARAM_CONN_LIST_LENGTH_LIST_LENGTH_SHIFT)
1218
1219
/* Supported Power States */
1220
#define HDA_PARAM_SUPP_POWER_STATES 0x0f
1221
1222
#define HDA_PARAM_SUPP_POWER_STATES_D3_MASK 0x00000008
1223
#define HDA_PARAM_SUPP_POWER_STATES_D3_SHIFT 3
1224
#define HDA_PARAM_SUPP_POWER_STATES_D2_MASK 0x00000004
1225
#define HDA_PARAM_SUPP_POWER_STATES_D2_SHIFT 2
1226
#define HDA_PARAM_SUPP_POWER_STATES_D1_MASK 0x00000002
1227
#define HDA_PARAM_SUPP_POWER_STATES_D1_SHIFT 1
1228
#define HDA_PARAM_SUPP_POWER_STATES_D0_MASK 0x00000001
1229
#define HDA_PARAM_SUPP_POWER_STATES_D0_SHIFT 0
1230
1231
#define HDA_PARAM_SUPP_POWER_STATES_D3(param) \
1232
(((param) & HDA_PARAM_SUPP_POWER_STATES_D3_MASK) >> \
1233
HDA_PARAM_SUPP_POWER_STATES_D3_SHIFT)
1234
#define HDA_PARAM_SUPP_POWER_STATES_D2(param) \
1235
(((param) & HDA_PARAM_SUPP_POWER_STATES_D2_MASK) >> \
1236
HDA_PARAM_SUPP_POWER_STATES_D2_SHIFT)
1237
#define HDA_PARAM_SUPP_POWER_STATES_D1(param) \
1238
(((param) & HDA_PARAM_SUPP_POWER_STATES_D1_MASK) >> \
1239
HDA_PARAM_SUPP_POWER_STATES_D1_SHIFT)
1240
#define HDA_PARAM_SUPP_POWER_STATES_D0(param) \
1241
(((param) & HDA_PARAM_SUPP_POWER_STATES_D0_MASK) >> \
1242
HDA_PARAM_SUPP_POWER_STATES_D0_SHIFT)
1243
1244
/* Processing Capabilities */
1245
#define HDA_PARAM_PROCESSING_CAP 0x10
1246
1247
#define HDA_PARAM_PROCESSING_CAP_NUMCOEFF_MASK 0x0000ff00
1248
#define HDA_PARAM_PROCESSING_CAP_NUMCOEFF_SHIFT 8
1249
#define HDA_PARAM_PROCESSING_CAP_BENIGN_MASK 0x00000001
1250
#define HDA_PARAM_PROCESSING_CAP_BENIGN_SHIFT 0
1251
1252
#define HDA_PARAM_PROCESSING_CAP_NUMCOEFF(param) \
1253
(((param) & HDA_PARAM_PROCESSING_CAP_NUMCOEFF_MASK) >> \
1254
HDA_PARAM_PROCESSING_CAP_NUMCOEFF_SHIFT)
1255
#define HDA_PARAM_PROCESSING_CAP_BENIGN(param) \
1256
(((param) & HDA_PARAM_PROCESSING_CAP_BENIGN_MASK) >> \
1257
HDA_PARAM_PROCESSING_CAP_BENIGN_SHIFT)
1258
1259
/* GPIO Count */
1260
#define HDA_PARAM_GPIO_COUNT 0x11
1261
1262
#define HDA_PARAM_GPIO_COUNT_GPI_WAKE_MASK 0x80000000
1263
#define HDA_PARAM_GPIO_COUNT_GPI_WAKE_SHIFT 31
1264
#define HDA_PARAM_GPIO_COUNT_GPI_UNSOL_MASK 0x40000000
1265
#define HDA_PARAM_GPIO_COUNT_GPI_UNSOL_SHIFT 30
1266
#define HDA_PARAM_GPIO_COUNT_NUM_GPI_MASK 0x00ff0000
1267
#define HDA_PARAM_GPIO_COUNT_NUM_GPI_SHIFT 16
1268
#define HDA_PARAM_GPIO_COUNT_NUM_GPO_MASK 0x0000ff00
1269
#define HDA_PARAM_GPIO_COUNT_NUM_GPO_SHIFT 8
1270
#define HDA_PARAM_GPIO_COUNT_NUM_GPIO_MASK 0x000000ff
1271
#define HDA_PARAM_GPIO_COUNT_NUM_GPIO_SHIFT 0
1272
1273
#define HDA_PARAM_GPIO_COUNT_GPI_WAKE(param) \
1274
(((param) & HDA_PARAM_GPIO_COUNT_GPI_WAKE_MASK) >> \
1275
HDA_PARAM_GPIO_COUNT_GPI_WAKE_SHIFT)
1276
#define HDA_PARAM_GPIO_COUNT_GPI_UNSOL(param) \
1277
(((param) & HDA_PARAM_GPIO_COUNT_GPI_UNSOL_MASK) >> \
1278
HDA_PARAM_GPIO_COUNT_GPI_UNSOL_SHIFT)
1279
#define HDA_PARAM_GPIO_COUNT_NUM_GPI(param) \
1280
(((param) & HDA_PARAM_GPIO_COUNT_NUM_GPI_MASK) >> \
1281
HDA_PARAM_GPIO_COUNT_NUM_GPI_SHIFT)
1282
#define HDA_PARAM_GPIO_COUNT_NUM_GPO(param) \
1283
(((param) & HDA_PARAM_GPIO_COUNT_NUM_GPO_MASK) >> \
1284
HDA_PARAM_GPIO_COUNT_NUM_GPO_SHIFT)
1285
#define HDA_PARAM_GPIO_COUNT_NUM_GPIO(param) \
1286
(((param) & HDA_PARAM_GPIO_COUNT_NUM_GPIO_MASK) >> \
1287
HDA_PARAM_GPIO_COUNT_NUM_GPIO_SHIFT)
1288
1289
/* Volume Knob Capabilities */
1290
#define HDA_PARAM_VOLUME_KNOB_CAP 0x13
1291
1292
#define HDA_PARAM_VOLUME_KNOB_CAP_DELTA_MASK 0x00000080
1293
#define HDA_PARAM_VOLUME_KNOB_CAP_DELTA_SHIFT 7
1294
#define HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_MASK 0x0000007f
1295
#define HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_SHIFT 0
1296
1297
#define HDA_PARAM_VOLUME_KNOB_CAP_DELTA(param) \
1298
(((param) & HDA_PARAM_VOLUME_KNOB_CAP_DELTA_MASK) >> \
1299
HDA_PARAM_VOLUME_KNOB_CAP_DELTA_SHIFT)
1300
#define HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS(param) \
1301
(((param) & HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_MASK) >> \
1302
HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_SHIFT)
1303
1304
#define HDA_CONFIG_DEFAULTCONF_SEQUENCE_MASK 0x0000000f
1305
#define HDA_CONFIG_DEFAULTCONF_SEQUENCE_SHIFT 0
1306
#define HDA_CONFIG_DEFAULTCONF_ASSOCIATION_MASK 0x000000f0
1307
#define HDA_CONFIG_DEFAULTCONF_ASSOCIATION_SHIFT 4
1308
#define HDA_CONFIG_DEFAULTCONF_MISC_MASK 0x00000f00
1309
#define HDA_CONFIG_DEFAULTCONF_MISC_SHIFT 8
1310
#define HDA_CONFIG_DEFAULTCONF_COLOR_MASK 0x0000f000
1311
#define HDA_CONFIG_DEFAULTCONF_COLOR_SHIFT 12
1312
#define HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_MASK 0x000f0000
1313
#define HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_SHIFT 16
1314
#define HDA_CONFIG_DEFAULTCONF_DEVICE_MASK 0x00f00000
1315
#define HDA_CONFIG_DEFAULTCONF_DEVICE_SHIFT 20
1316
#define HDA_CONFIG_DEFAULTCONF_LOCATION_MASK 0x3f000000
1317
#define HDA_CONFIG_DEFAULTCONF_LOCATION_SHIFT 24
1318
#define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK 0xc0000000
1319
#define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_SHIFT 30
1320
1321
#define HDA_CONFIG_DEFAULTCONF_SEQUENCE(conf) \
1322
(((conf) & HDA_CONFIG_DEFAULTCONF_SEQUENCE_MASK) >> \
1323
HDA_CONFIG_DEFAULTCONF_SEQUENCE_SHIFT)
1324
#define HDA_CONFIG_DEFAULTCONF_ASSOCIATION(conf) \
1325
(((conf) & HDA_CONFIG_DEFAULTCONF_ASSOCIATION_MASK) >> \
1326
HDA_CONFIG_DEFAULTCONF_ASSOCIATION_SHIFT)
1327
#define HDA_CONFIG_DEFAULTCONF_MISC(conf) \
1328
(((conf) & HDA_CONFIG_DEFAULTCONF_MISC_MASK) >> \
1329
HDA_CONFIG_DEFAULTCONF_MISC_SHIFT)
1330
#define HDA_CONFIG_DEFAULTCONF_COLOR(conf) \
1331
(((conf) & HDA_CONFIG_DEFAULTCONF_COLOR_MASK) >> \
1332
HDA_CONFIG_DEFAULTCONF_COLOR_SHIFT)
1333
#define HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE(conf) \
1334
(((conf) & HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_MASK) >> \
1335
HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_SHIFT)
1336
#define HDA_CONFIG_DEFAULTCONF_DEVICE(conf) \
1337
(((conf) & HDA_CONFIG_DEFAULTCONF_DEVICE_MASK) >> \
1338
HDA_CONFIG_DEFAULTCONF_DEVICE_SHIFT)
1339
#define HDA_CONFIG_DEFAULTCONF_LOCATION(conf) \
1340
(((conf) & HDA_CONFIG_DEFAULTCONF_LOCATION_MASK) >> \
1341
HDA_CONFIG_DEFAULTCONF_LOCATION_SHIFT)
1342
#define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY(conf) \
1343
(((conf) & HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK) >> \
1344
HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_SHIFT)
1345
1346
#define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_JACK (0<<30)
1347
#define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_NONE (1<<30)
1348
#define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED (2<<30)
1349
#define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_BOTH (3<<30)
1350
1351
#define HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_OUT (0<<20)
1352
#define HDA_CONFIG_DEFAULTCONF_DEVICE_SPEAKER (1<<20)
1353
#define HDA_CONFIG_DEFAULTCONF_DEVICE_HP_OUT (2<<20)
1354
#define HDA_CONFIG_DEFAULTCONF_DEVICE_CD (3<<20)
1355
#define HDA_CONFIG_DEFAULTCONF_DEVICE_SPDIF_OUT (4<<20)
1356
#define HDA_CONFIG_DEFAULTCONF_DEVICE_DIGITAL_OTHER_OUT (5<<20)
1357
#define HDA_CONFIG_DEFAULTCONF_DEVICE_MODEM_LINE (6<<20)
1358
#define HDA_CONFIG_DEFAULTCONF_DEVICE_MODEM_HANDSET (7<<20)
1359
#define HDA_CONFIG_DEFAULTCONF_DEVICE_LINE_IN (8<<20)
1360
#define HDA_CONFIG_DEFAULTCONF_DEVICE_AUX (9<<20)
1361
#define HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN (10<<20)
1362
#define HDA_CONFIG_DEFAULTCONF_DEVICE_TELEPHONY (11<<20)
1363
#define HDA_CONFIG_DEFAULTCONF_DEVICE_SPDIF_IN (12<<20)
1364
#define HDA_CONFIG_DEFAULTCONF_DEVICE_DIGITAL_OTHER_IN (13<<20)
1365
#define HDA_CONFIG_DEFAULTCONF_DEVICE_OTHER (15<<20)
1366
1367
#endif
dev
sound
pci
hda
hda_reg.h
Generated by
1.9.3