Rev 3083 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
3083 | leency | 1 | ; Universal Interface for Intel High Definition Audio Codec |
2 | |||
3 | ; nodes |
||
4 | AC_NODE_ROOT equ 0x00 |
||
5 | |||
6 | ; function group types |
||
7 | AC_GRP_AUDIO_FUNCTION equ 0x01 |
||
8 | AC_GRP_MODEM_FUNCTION equ 0x02 |
||
9 | |||
10 | ; widget types |
||
11 | AC_WID_AUD_OUT equ 0x0 ; Audio Out |
||
12 | AC_WID_AUD_IN equ 0x1 ; Audio In |
||
13 | AC_WID_AUD_MIX equ 0x2 ; Audio Mixer |
||
14 | AC_WID_AUD_SEL equ 0x3 ; Audio Selector |
||
15 | AC_WID_PIN equ 0x4 ; Pin Complex |
||
16 | AC_WID_POWER equ 0x5 ; Power |
||
17 | AC_WID_VOL_KNB equ 0x6 ; Volume Knob |
||
18 | AC_WID_BEEP equ 0x7 ; Beep Generator |
||
19 | AC_WID_VENDOR equ 0x0F ; Vendor specific |
||
20 | |||
21 | ; GET verbs |
||
22 | AC_VERB_GET_STREAM_FORMAT equ 0x0A00 |
||
23 | AC_VERB_GET_AMP_GAIN_MUTE equ 0x0B00 |
||
24 | AC_VERB_GET_PROC_COEF equ 0x0C00 |
||
25 | AC_VERB_GET_COEF_INDEX equ 0x0D00 |
||
26 | AC_VERB_PARAMETERS equ 0x0F00 |
||
27 | AC_VERB_GET_CONNECT_SEL equ 0x0F01 |
||
28 | AC_VERB_GET_CONNECT_LIST equ 0x0F02 |
||
29 | AC_VERB_GET_PROC_STATE equ 0x0F03 |
||
30 | AC_VERB_GET_SDI_SELECT equ 0x0F04 |
||
31 | AC_VERB_GET_POWER_STATE equ 0x0F05 |
||
32 | AC_VERB_GET_CONV equ 0x0F06 |
||
33 | AC_VERB_GET_PIN_WIDGET_CONTROL equ 0x0F07 |
||
34 | AC_VERB_GET_UNSOLICITED_RESPONSE equ 0x0F08 |
||
35 | AC_VERB_GET_PIN_SENSE equ 0x0F09 |
||
36 | AC_VERB_GET_BEEP_CONTROL equ 0x0F0A |
||
37 | AC_VERB_GET_EAPD_BTLENABLE equ 0x0F0C |
||
38 | AC_VERB_GET_DIGI_CONVERT_1 equ 0x0F0D |
||
39 | AC_VERB_GET_DIGI_CONVERT_2 equ 0x0F0E ; unused |
||
40 | AC_VERB_GET_VOLUME_KNOB_CONTROL equ 0x0F0F |
||
41 | ; f10-f1a: GPIO |
||
42 | AC_VERB_GET_GPIO_DATA equ 0x0F15 |
||
43 | AC_VERB_GET_GPIO_MASK equ 0x0F16 |
||
44 | AC_VERB_GET_GPIO_DIRECTION equ 0x0F17 |
||
45 | AC_VERB_GET_GPIO_WAKE_MASK equ 0x0F18 |
||
46 | AC_VERB_GET_GPIO_UNSOLICITED_RSP_MASK equ 0x0F19 |
||
47 | AC_VERB_GET_GPIO_STICKY_MASK equ 0x0F1A |
||
48 | AC_VERB_GET_CONFIG_DEFAULT equ 0x0F1C |
||
49 | ; f20: AFG/MFG |
||
50 | AC_VERB_GET_SUBSYSTEM_ID equ 0x0F20 |
||
51 | AC_VERB_GET_CVT_CHAN_COUNT equ 0x0F2D |
||
52 | AC_VERB_GET_HDMI_DIP_SIZE equ 0x0F2E |
||
53 | AC_VERB_GET_HDMI_ELDD equ 0x0F2F |
||
54 | AC_VERB_GET_HDMI_DIP_INDEX equ 0x0F30 |
||
55 | AC_VERB_GET_HDMI_DIP_DATA equ 0x0F31 |
||
56 | AC_VERB_GET_HDMI_DIP_XMIT equ 0x0F32 |
||
57 | AC_VERB_GET_HDMI_CP_CTRL equ 0x0F33 |
||
58 | AC_VERB_GET_HDMI_CHAN_SLOT equ 0x0F34 |
||
59 | |||
60 | ; SET verbs |
||
61 | |||
62 | AC_VERB_SET_STREAM_FORMAT equ 0x200 |
||
63 | AC_VERB_SET_AMP_GAIN_MUTE equ 0x300 |
||
64 | AC_VERB_SET_PROC_COEF equ 0x400 |
||
65 | AC_VERB_SET_COEF_INDEX equ 0x500 |
||
66 | AC_VERB_SET_CONNECT_SEL equ 0x701 |
||
67 | AC_VERB_SET_PROC_STATE equ 0x703 |
||
68 | AC_VERB_SET_SDI_SELECT equ 0x704 |
||
69 | AC_VERB_SET_POWER_STATE equ 0x705 |
||
70 | AC_VERB_SET_CHANNEL_STREAMID equ 0x706 |
||
71 | AC_VERB_SET_PIN_WIDGET_CONTROL equ 0x707 |
||
72 | AC_VERB_SET_UNSOLICITED_ENABLE equ 0x708 |
||
73 | AC_VERB_SET_PIN_SENSE equ 0x709 |
||
74 | AC_VERB_SET_BEEP_CONTROL equ 0x70A |
||
75 | AC_VERB_SET_EAPD_BTLENABLE equ 0x70C |
||
76 | AC_VERB_SET_DIGI_CONVERT_1 equ 0x70D |
||
77 | AC_VERB_SET_DIGI_CONVERT_2 equ 0x70E |
||
78 | AC_VERB_SET_VOLUME_KNOB_CONTROL equ 0x70F |
||
79 | AC_VERB_SET_GPIO_DATA equ 0x715 |
||
80 | AC_VERB_SET_GPIO_MASK equ 0x716 |
||
81 | AC_VERB_SET_GPIO_DIRECTION equ 0x717 |
||
82 | AC_VERB_SET_GPIO_WAKE_MASK equ 0x718 |
||
83 | AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK equ 0x719 |
||
84 | AC_VERB_SET_GPIO_STICKY_MASK equ 0x71A |
||
85 | AC_VERB_SET_CONFIG_DEFAULT_BYTES_0 equ 0x71C |
||
86 | AC_VERB_SET_CONFIG_DEFAULT_BYTES_1 equ 0x71D |
||
87 | AC_VERB_SET_CONFIG_DEFAULT_BYTES_2 equ 0x71E |
||
88 | AC_VERB_SET_CONFIG_DEFAULT_BYTES_3 equ 0x71F |
||
89 | AC_VERB_SET_EAPD equ 0x788 |
||
90 | AC_VERB_SET_CODEC_RESET equ 0x7FF |
||
91 | AC_VERB_SET_CVT_CHAN_COUNT equ 0x72D |
||
92 | AC_VERB_SET_HDMI_DIP_INDEX equ 0x730 |
||
93 | AC_VERB_SET_HDMI_DIP_DATA equ 0x731 |
||
94 | AC_VERB_SET_HDMI_DIP_XMIT equ 0x732 |
||
95 | AC_VERB_SET_HDMI_CP_CTRL equ 0x733 |
||
96 | AC_VERB_SET_HDMI_CHAN_SLOT equ 0x734 |
||
97 | |||
98 | ; Parameter IDs |
||
99 | |||
100 | AC_PAR_VENDOR_ID equ 0x00 |
||
101 | AC_PAR_SUBSYSTEM_ID equ 0x01 |
||
102 | AC_PAR_REV_ID equ 0x02 |
||
103 | AC_PAR_NODE_COUNT equ 0x04 |
||
104 | AC_PAR_FUNCTION_TYPE equ 0x05 |
||
105 | AC_PAR_AUDIO_FG_CAP equ 0x08 |
||
106 | AC_PAR_AUDIO_WIDGET_CAP equ 0x09 |
||
107 | AC_PAR_PCM equ 0x0A |
||
108 | AC_PAR_STREAM equ 0x0B |
||
109 | AC_PAR_PIN_CAP equ 0x0C |
||
110 | AC_PAR_AMP_IN_CAP equ 0x0D |
||
111 | AC_PAR_CONNLIST_LEN equ 0x0E |
||
112 | AC_PAR_POWER_STATE equ 0x0F |
||
113 | AC_PAR_PROC_CAP equ 0x10 |
||
114 | AC_PAR_GPIO_CAP equ 0x11 |
||
115 | AC_PAR_AMP_OUT_CAP equ 0x12 |
||
116 | AC_PAR_VOL_KNB_CAP equ 0x13 |
||
117 | AC_PAR_HDMI_LPCM_CAP equ 0x20 |
||
118 | |||
119 | ; AC_VERB_PARAMETERS results (32bit) |
||
120 | |||
121 | |||
122 | ; Function Group Type |
||
123 | AC_FGT_TYPE equ (0xFF shl 0) |
||
124 | AC_FGT_TYPE_SHIFT equ 0 |
||
125 | AC_FGT_UNSOL_CAP equ (1 shl 8) |
||
126 | |||
127 | ; Audio Function Group Capabilities |
||
128 | AC_AFG_OUT_DELAY equ (0xF shl 0) |
||
129 | AC_AFG_IN_DELAY equ (0xF shl 8) |
||
130 | AC_AFG_BEEP_GEN equ (1 shl 16) |
||
131 | |||
132 | ; Audio Widget Capabilities |
||
133 | AC_WCAP_STEREO equ (1 shl 0) ; stereo I/O |
||
134 | AC_WCAP_IN_AMP equ (1 shl 1) ; AMP-in present |
||
135 | AC_WCAP_OUT_AMP equ (1 shl 2) ; AMP-out present |
||
136 | AC_WCAP_AMP_OVRD equ (1 shl 3) ; AMP-parameter override |
||
137 | AC_WCAP_FORMAT_OVRD equ (1 shl 4) ; format override |
||
138 | AC_WCAP_STRIPE equ (1 shl 5) ; stripe |
||
139 | AC_WCAP_PROC_WID equ (1 shl 6) ; Proc Widget |
||
140 | AC_WCAP_UNSOL_CAP equ (1 shl 7) ; Unsol capable |
||
141 | AC_WCAP_CONN_LIST equ (1 shl 8) ; connection list |
||
142 | AC_WCAP_DIGITAL equ (1 shl 9) ; digital I/O |
||
143 | AC_WCAP_POWER equ (1 shl 10) ; power control |
||
144 | AC_WCAP_LR_SWAP equ (1 shl 11) ; L/R swap |
||
145 | AC_WCAP_CP_CAPS equ (1 shl 12) ; content protection |
||
146 | AC_WCAP_CHAN_CNT_EXT equ (7 shl 13) ; channel count ext |
||
147 | AC_WCAP_DELAY equ (0xF shl 16) |
||
148 | AC_WCAP_DELAY_SHIFT equ 16 |
||
149 | AC_WCAP_TYPE equ (0xF shl 20) |
||
150 | AC_WCAP_TYPE_SHIFT equ 20 |
||
151 | |||
152 | ; supported PCM rates and bits |
||
153 | AC_SUPPCM_RATES equ (0xFFF shl 0) |
||
154 | AC_SUPPCM_BITS_8 equ (1 shl 16) |
||
155 | AC_SUPPCM_BITS_16 equ (1 shl 17) |
||
156 | AC_SUPPCM_BITS_20 equ (1 shl 18) |
||
157 | AC_SUPPCM_BITS_24 equ (1 shl 19) |
||
158 | AC_SUPPCM_BITS_32 equ (1 shl 20) |
||
159 | |||
160 | ; supported PCM stream format |
||
161 | AC_SUPFMT_PCM equ (1 shl 0) |
||
162 | AC_SUPFMT_FLOAT32 equ (1 shl 1) |
||
163 | AC_SUPFMT_AC3 equ (1 shl 2) |
||
164 | |||
165 | ; GP I/O count |
||
166 | AC_GPIO_IO_COUNT equ (0xFF shl 0) |
||
167 | AC_GPIO_O_COUNT equ (0xFF shl 8) |
||
168 | AC_GPIO_O_COUNT_SHIFT equ 8 |
||
169 | AC_GPIO_I_COUNT equ (0xFF shl 16) |
||
170 | AC_GPIO_I_COUNT_SHIFT equ 16 |
||
171 | AC_GPIO_UNSOLICITED equ (1 shl 30) |
||
172 | AC_GPIO_WAKE equ (1 shl 31) |
||
173 | |||
174 | ; Converter stream, channel |
||
175 | AC_CONV_CHANNEL equ (0xF shl 0) |
||
176 | AC_CONV_STREAM equ (0xF shl 4) |
||
177 | AC_CONV_STREAM_SHIFT equ 4 |
||
178 | |||
179 | ; Input converter SDI select |
||
180 | AC_SDI_SELECT equ (0xF shl 0) |
||
181 | |||
182 | ; Unsolicited response control |
||
183 | AC_UNSOL_TAG equ (0x3F shl 0) |
||
184 | AC_UNSOL_ENABLED equ (1 shl 7) |
||
185 | AC_USRSP_EN equ AC_UNSOL_ENABLED |
||
186 | |||
187 | ; Unsolicited responses |
||
188 | AC_UNSOL_RES_TAG equ (0x3F shl 26) |
||
189 | AC_UNSOL_RES_TAG_SHIFT equ 26 |
||
190 | AC_UNSOL_RES_SUBTAG equ (0x1F shl 21) |
||
191 | AC_UNSOL_RES_SUBTAG_SHIFT equ 21 |
||
192 | AC_UNSOL_RES_ELDV equ (1 shl 1) ; ELD Data valid (for HDMI) |
||
193 | AC_UNSOL_RES_PD equ (1 shl 0) ; pinsense detect |
||
194 | AC_UNSOL_RES_CP_STATE equ (1 shl 1) ; content protection |
||
195 | AC_UNSOL_RES_CP_READY equ (1 shl 0) ; content protection |
||
196 | |||
197 | ; Pin widget capabilies |
||
198 | AC_PINCAP_IMP_SENSE equ (1 shl 0) ; impedance sense capable |
||
199 | AC_PINCAP_TRIG_REQ equ (1 shl 1) ; trigger required |
||
200 | AC_PINCAP_PRES_DETECT equ (1 shl 2) ; presence detect capable |
||
201 | AC_PINCAP_HP_DRV equ (1 shl 3) ; headphone drive capable |
||
202 | AC_PINCAP_OUT equ (1 shl 4) ; output capable |
||
203 | AC_PINCAP_IN equ (1 shl 5) ; input capable |
||
204 | AC_PINCAP_BALANCE equ (1 shl 6) ; balanced I/O capable |
||
205 | ; Note: This LR_SWAP pincap is defined in the Realtek ALC883 specification, |
||
206 | ; but is marked reserved in the Intel HDA specification. |
||
207 | |||
208 | AC_PINCAP_LR_SWAP equ (1 shl 7) ; L/R swap |
||
209 | ; Note: The same bit as LR_SWAP is newly defined as HDMI capability |
||
210 | ; in HD-audio specification |
||
211 | |||
212 | AC_PINCAP_HDMI equ (1 shl 7) ; HDMI pin |
||
213 | AC_PINCAP_DP equ (1 shl 24) ; DisplayPort pin, can |
||
214 | ; coexist with AC_PINCAP_HDMI |
||
215 | |||
216 | AC_PINCAP_VREF equ (0x37 shl 8) |
||
217 | AC_PINCAP_VREF_SHIFT equ 8 |
||
218 | AC_PINCAP_EAPD equ (1 shl 16) ; EAPD capable |
||
219 | AC_PINCAP_HBR equ (1 shl 27) ; High Bit Rate |
||
220 | ; Vref status (used in pin cap) |
||
221 | AC_PINCAP_VREF_HIZ equ (1 shl 0) ; Hi-Z |
||
222 | AC_PINCAP_VREF_50 equ (1 shl 1) ; 50% |
||
223 | AC_PINCAP_VREF_GRD equ (1 shl 2) ; ground |
||
224 | AC_PINCAP_VREF_80 equ (1 shl 4) ; 80% |
||
225 | AC_PINCAP_VREF_100 equ (1 shl 5) ; 100% |
||
226 | |||
227 | ; Amplifier capabilities |
||
228 | AC_AMPCAP_OFFSET equ (0x7F shl 0) ; 0dB offset |
||
229 | AC_AMPCAP_OFFSET_SHIFT equ 0 |
||
230 | AC_AMPCAP_NUM_STEPS equ (0x7F shl 8) ; number of steps |
||
231 | AC_AMPCAP_NUM_STEPS_SHIFT equ 8 |
||
232 | AC_AMPCAP_STEP_SIZE equ (0x7F shl 16) ; step size 0-32dB |
||
233 | ; in 0.25dB |
||
234 | AC_AMPCAP_STEP_SIZE_SHIFT equ 16 |
||
235 | AC_AMPCAP_MUTE equ (1 shl 31) ; mute capable |
||
236 | AC_AMPCAP_MUTE_SHIFT equ 31 |
||
237 | |||
238 | ; Connection list |
||
239 | AC_CLIST_LENGTH equ (0x7F shl 0) |
||
240 | AC_CLIST_LONG equ (1 shl 7) |
||
241 | |||
242 | ; Supported power status |
||
243 | AC_PWRST_D0SUP equ (1 shl 0) |
||
244 | AC_PWRST_D1SUP equ (1 shl 1) |
||
245 | AC_PWRST_D2SUP equ (1 shl 2) |
||
246 | AC_PWRST_D3SUP equ (1 shl 3) |
||
247 | AC_PWRST_D3COLDSUP equ (1 shl 4) |
||
248 | AC_PWRST_S3D3COLDSUP equ (1 shl 29) |
||
249 | AC_PWRST_CLKSTOP equ (1 shl 30) |
||
250 | AC_PWRST_EPSS equ (1 shl 31) |
||
251 | |||
252 | ; Power state values |
||
253 | AC_PWRST_SETTING equ (0xF shl 0) |
||
254 | AC_PWRST_ACTUAL equ (0xF shl 4) |
||
255 | AC_PWRST_ACTUAL_SHIFT equ 4 |
||
256 | AC_PWRST_D0 equ 0x00 |
||
257 | AC_PWRST_D1 equ 0x01 |
||
258 | AC_PWRST_D2 equ 0x02 |
||
259 | AC_PWRST_D3 equ 0x03 |
||
260 | |||
261 | ; Processing capabilies |
||
262 | AC_PCAP_BENIGN equ (1 shl 0) |
||
263 | AC_PCAP_NUM_COEF equ (0xFF shl 8) |
||
264 | AC_PCAP_NUM_COEF_SHIFT equ 8 |
||
265 | |||
266 | ; Volume knobs capabilities |
||
267 | AC_KNBCAP_NUM_STEPS equ (0x7F shl 0) |
||
268 | AC_KNBCAP_DELTA equ (1 shl 7) |
||
269 | |||
270 | ; HDMI LPCM capabilities |
||
271 | AC_LPCMCAP_48K_CP_CHNS equ (0x0F shl 0) ; max channels w/ CP-on |
||
272 | AC_LPCMCAP_48K_NO_CHNS equ (0x0F shl 4) ; max channels w/o CP-on |
||
273 | AC_LPCMCAP_48K_20BIT equ (1 shl 8) ; 20b bitrate supported |
||
274 | AC_LPCMCAP_48K_24BIT equ (1 shl 9) ; 24b bitrate supported |
||
275 | AC_LPCMCAP_96K_CP_CHNS equ (0x0F shl 10) ; max channels w/ CP-on |
||
276 | AC_LPCMCAP_96K_NO_CHNS equ (0x0F shl 14) ; max channels w/o CP-on |
||
277 | AC_LPCMCAP_96K_20BIT equ (1 shl 18) ; 20b bitrate supported |
||
278 | AC_LPCMCAP_96K_24BIT equ (1 shl 19) ; 24b bitrate supported |
||
279 | AC_LPCMCAP_192K_CP_CHNS equ (0x0F shl 20) ; max channels w/ CP-on |
||
280 | AC_LPCMCAP_192K_NO_CHNS equ (0x0F shl 24) ; max channels w/o CP-on |
||
281 | AC_LPCMCAP_192K_20BIT equ (1 shl 28) ; 20b bitrate supported |
||
282 | AC_LPCMCAP_192K_24BIT equ (1 shl 29) ; 24b bitrate supported |
||
283 | AC_LPCMCAP_44K equ (1 shl 30) ; 44.1kHz support |
||
284 | AC_LPCMCAP_44K_MS equ (1 shl 31) ; 44.1kHz-multiplies support |
||
285 | |||
286 | |||
287 | ; Control Parameters |
||
288 | |||
289 | ; Amp gain/mute |
||
290 | AC_AMP_MUTE equ (1 shl 7) |
||
291 | AC_AMP_GAIN equ (0x7F) |
||
292 | AC_AMP_GET_INDEX equ (0xF shl 0) |
||
293 | |||
294 | AC_AMP_GET_LEFT equ (1 shl 13) |
||
295 | AC_AMP_GET_RIGHT equ (0 shl 13) |
||
296 | AC_AMP_GET_OUTPUT equ (1 shl 15) |
||
297 | AC_AMP_GET_INPUT equ (0 shl 15) |
||
298 | |||
299 | AC_AMP_SET_INDEX equ (0xF shl 8) |
||
300 | AC_AMP_SET_INDEX_SHIFT equ 8 |
||
301 | AC_AMP_SET_RIGHT equ (1 shl 12) |
||
302 | AC_AMP_SET_LEFT equ (1 shl 13) |
||
303 | AC_AMP_SET_INPUT equ (1 shl 14) |
||
304 | AC_AMP_SET_OUTPUT equ (1 shl 15) |
||
305 | |||
306 | ; DIGITAL1 bits |
||
307 | AC_DIG1_ENABLE equ (1 shl 0) |
||
308 | AC_DIG1_V equ (1 shl 1) |
||
309 | AC_DIG1_VCFG equ (1 shl 2) |
||
310 | AC_DIG1_EMPHASIS equ (1 shl 3) |
||
311 | AC_DIG1_COPYRIGHT equ (1 shl 4) |
||
312 | AC_DIG1_NONAUDIO equ (1 shl 5) |
||
313 | AC_DIG1_PROFESSIONAL equ (1 shl 6) |
||
314 | AC_DIG1_LEVEL equ (1 shl 7) |
||
315 | |||
316 | ; DIGITAL2 bits |
||
317 | AC_DIG2_CC equ (0x7F shl 0) |
||
318 | |||
319 | ; Pin widget control - 8bit |
||
320 | AC_PINCTL_VREFEN equ (0x7 shl 0) |
||
321 | AC_PINCTL_VREF_HIZ equ 0 ; Hi-Z |
||
322 | AC_PINCTL_VREF_50 equ 1 ; 50% |
||
323 | AC_PINCTL_VREF_GRD equ 2 ; ground |
||
324 | AC_PINCTL_VREF_80 equ 4 ; 80% |
||
325 | AC_PINCTL_VREF_100 equ 5 ; 100% |
||
326 | AC_PINCTL_IN_EN equ (1 shl 5) |
||
327 | AC_PINCTL_OUT_EN equ (1 shl 6) |
||
328 | AC_PINCTL_HP_EN equ (1 shl 7) |
||
329 | |||
330 | ; Pin sense - 32bit |
||
331 | AC_PINSENSE_IMPEDANCE_MASK equ (0x7FFFFFFF) |
||
332 | AC_PINSENSE_PRESENCE equ (1 shl 31) |
||
333 | AC_PINSENSE_ELDV equ (1 shl 30) ; ELD valid (HDMI) |
||
334 | |||
335 | ; EAPD/BTL enable - 32bit |
||
336 | AC_EAPDBTL_BALANCED equ (1 shl 0) |
||
337 | AC_EAPDBTL_EAPD equ (1 shl 1) |
||
338 | AC_EAPDBTL_LR_SWAP equ (1 shl 2) |
||
339 | |||
340 | ; HDMI ELD data |
||
341 | AC_ELDD_ELD_VALID equ (1 shl 31) |
||
342 | AC_ELDD_ELD_DATA equ 0xFF |
||
343 | |||
344 | ; HDMI DIP size |
||
345 | AC_DIPSIZE_ELD_BUF equ (1 shl 3) ; ELD buf size of packet size |
||
346 | AC_DIPSIZE_PACK_IDX equ (0x07 shl 0) ; packet index |
||
347 | |||
348 | ; HDMI DIP index |
||
349 | AC_DIPIDX_PACK_IDX equ (0x07 shl 5) ; packet idnex |
||
350 | AC_DIPIDX_BYTE_IDX equ (0x1F shl 0) ; byte index |
||
351 | |||
352 | ; HDMI DIP xmit (transmit) control |
||
353 | AC_DIPXMIT_MASK equ (0x3 shl 6) |
||
354 | AC_DIPXMIT_DISABLE equ (0x0 shl 6) ; disable xmit |
||
355 | AC_DIPXMIT_ONCE equ (0x2 shl 6) ; xmit once then disable |
||
356 | AC_DIPXMIT_BEST equ (0x3 shl 6) ; best effort |
||
357 | |||
358 | ; HDMI content protection (CP) control |
||
359 | AC_CPCTRL_CES equ (1 shl 9) ; current encryption state |
||
360 | AC_CPCTRL_READY equ (1 shl 8) ; ready bit |
||
361 | AC_CPCTRL_SUBTAG equ (0x1F shl 3) ; subtag for unsol-resp |
||
362 | AC_CPCTRL_STATE equ (3 shl 0) ; current CP request state |
||
363 | |||
364 | ; Converter channel <-> HDMI slot mapping |
||
365 | AC_CVTMAP_HDMI_SLOT equ (0xF shl 0) ; HDMI slot number |
||
366 | AC_CVTMAP_CHAN equ (0xF shl 4) ; converter channel number |
||
367 | |||
368 | ; configuration default - 32bit |
||
369 | AC_DEFCFG_SEQUENCE equ (0xF shl 0) |
||
370 | AC_DEFCFG_DEF_ASSOC equ (0xF shl 4) |
||
371 | AC_DEFCFG_ASSOC_SHIFT equ 4 |
||
372 | AC_DEFCFG_MISC equ (0xF shl 8) |
||
373 | AC_DEFCFG_MISC_SHIFT equ 8 |
||
374 | AC_DEFCFG_MISC_NO_PRESENCE equ (1 shl 0) |
||
375 | AC_DEFCFG_COLOR equ (0xF shl 12) |
||
376 | AC_DEFCFG_COLOR_SHIFT equ 12 |
||
377 | AC_DEFCFG_CONN_TYPE equ (0xF shl 16) |
||
378 | AC_DEFCFG_CONN_TYPE_SHIFT equ 16 |
||
379 | AC_DEFCFG_DEVICE equ (0xF shl 20) |
||
380 | AC_DEFCFG_DEVICE_SHIFT equ 20 |
||
381 | AC_DEFCFG_LOCATION equ (0x3F shl 24) |
||
382 | AC_DEFCFG_LOCATION_SHIFT equ 24 |
||
383 | AC_DEFCFG_PORT_CONN equ (0x3 shl 30) |
||
384 | AC_DEFCFG_PORT_CONN_SHIFT equ 30 |
||
385 | |||
386 | ; device device types (0x0-0xf) |
||
387 | AC_JACK_LINE_OUT equ 0x0 |
||
388 | AC_JACK_SPEAKER equ 0x1 |
||
389 | AC_JACK_HP_OUT equ 0x2 |
||
390 | AC_JACK_CD equ 0x3 |
||
391 | AC_JACK_SPDIF_OUT equ 0x4 |
||
392 | AC_JACK_DIG_OTHER_OUT equ 0x5 |
||
393 | AC_JACK_MODEM_LINE_SIDE equ 0x6 |
||
394 | AC_JACK_MODEM_HAND_SIDE equ 0x7 |
||
395 | AC_JACK_LINE_IN equ 0x8 |
||
396 | AC_JACK_AUX equ 0x9 |
||
397 | AC_JACK_MIC_IN equ 0xA |
||
398 | AC_JACK_TELEPHONY equ 0xB |
||
399 | AC_JACK_SPDIF_IN equ 0xC |
||
400 | AC_JACK_DIG_OTHER_IN equ 0xD |
||
401 | AC_JACK_OTHER equ 0xF |
||
402 | |||
403 | ; jack connection types (0x0-0xf) |
||
404 | AC_JACK_CONN_UNKNOWN equ 0x0 |
||
405 | AC_JACK_CONN_1_8 equ 0x1 |
||
406 | AC_JACK_CONN_1_4 equ 0x2 |
||
407 | AC_JACK_CONN_ATAPI equ 0x3 |
||
408 | AC_JACK_CONN_RCA equ 0x4 |
||
409 | AC_JACK_CONN_OPTICAL equ 0x5 |
||
410 | AC_JACK_CONN_OTHER_DIGITAL equ 0x6 |
||
411 | AC_JACK_CONN_OTHER_ANALOG equ 0x7 |
||
412 | AC_JACK_CONN_DIN equ 0x8 |
||
413 | AC_JACK_CONN_XLR equ 0x9 |
||
414 | AC_JACK_CONN_RJ11 equ 0xA |
||
415 | AC_JACK_CONN_COMB equ 0xB |
||
416 | AC_JACK_CONN_OTHER equ 0xF |
||
417 | |||
418 | ; jack colors (0x0-0xf) |
||
419 | AC_JACK_COLOR_UNKNOWN equ 0x0 |
||
420 | AC_JACK_COLOR_BLACK equ 0x1 |
||
421 | AC_JACK_COLOR_GREY equ 0x2 |
||
422 | AC_JACK_COLOR_BLUE equ 0x3 |
||
423 | AC_JACK_COLOR_GREEN equ 0x4 |
||
424 | AC_JACK_COLOR_RED equ 0x5 |
||
425 | AC_JACK_COLOR_ORANGE equ 0x6 |
||
426 | AC_JACK_COLOR_YELLOW equ 0x7 |
||
427 | AC_JACK_COLOR_PURPLE equ 0x8 |
||
428 | AC_JACK_COLOR_PINK equ 0x9 |
||
429 | AC_JACK_COLOR_WHITE equ 0xE |
||
430 | AC_JACK_COLOR_OTHER equ 0xF |
||
431 | |||
432 | ; Jack location (0x0-0x3f) |
||
433 | ; common case |
||
434 | AC_JACK_LOC_NONE equ 0 |
||
435 | AC_JACK_LOC_REAR equ 1 |
||
436 | AC_JACK_LOC_FRONT equ 2 |
||
437 | AC_JACK_LOC_LEFT equ 3 |
||
438 | AC_JACK_LOC_RIGHT equ 4 |
||
439 | AC_JACK_LOC_TOP equ 5 |
||
440 | AC_JACK_LOC_BOTTOM equ 6 |
||
441 | |||
442 | ; bits 4-5 |
||
443 | AC_JACK_LOC_EXTERNAL equ 0x00 |
||
444 | AC_JACK_LOC_INTERNAL equ 0x10 |
||
445 | AC_JACK_LOC_SEPARATE equ 0x20 |
||
446 | AC_JACK_LOC_OTHER equ 0x30 |
||
447 | |||
448 | ; external on primary chasis |
||
449 | AC_JACK_LOC_REAR_PANEL equ 0x07 |
||
450 | AC_JACK_LOC_DRIVE_BAY equ 0x08 |
||
451 | ; internal |
||
452 | AC_JACK_LOC_RISER equ 0x17 |
||
453 | AC_JACK_LOC_HDMI equ 0x18 |
||
454 | AC_JACK_LOC_ATAPI equ 0x19 |
||
455 | ; others |
||
456 | AC_JACK_LOC_MOBILE_IN equ 0x37 |
||
457 | AC_JACK_LOC_MOBILE_OUT equ 0x38 |
||
458 | |||
459 | ; Port connectivity (0-3) |
||
460 | AC_JACK_PORT_COMPLEX equ 0 |
||
461 | AC_JACK_PORT_NONE equ 1 |
||
462 | AC_JACK_PORT_FIXED equ 2 |
||
463 | AC_JACK_PORT_BOTH equ 3 |
||
464 | |||
465 | ; max. connections to a widget |
||
466 | HDA_MAX_CONNECTIONS equ 32 |
||
467 | |||
468 | ; max. codec address |
||
469 | HDA_MAX_CODEC_ADDRESS equ 0x0f |
||
470 | |||
471 | ; max number of PCM devics per card |
||
472 | HDA_MAX_PCMS equ 10 |
||
473 | |||
474 | |||
475 | ; Structures |
||
476 | |||
477 | ; direction |
||
5048 | Asper | 478 | HDA_INPUT equ 0x0 |
479 | HDA_OUTPUT equ 0x1 |
||
3083 | leency | 480 | |
481 | |||
482 | struc HDA_VERB |
||
483 | { |
||
5048 | Asper | 484 | .nid dw ? |
485 | .verb dd ? |
||
486 | .param dd ? |
||
3083 | leency | 487 | } |
488 | |||
489 | virtual at 0 |
||
490 | HDA_VERB HDA_VERB |
||
491 | end virtual |
||
492 | |||
493 | ; the struct for codec->pin_configs |
||
494 | struc HDA_PINCFG |
||
495 | { |
||
496 | .nid dw ? |
||
497 | .reserved dw ? ;Asper + for align purposes |
||
498 | .cfg dd ? |
||
499 | .sizeof: |
||
500 | } |
||
501 | |||
502 | virtual at 0 |
||
503 | HDA_PINCFG HDA_PINCFG |
||
504 | end virtual |
||
505 | |||
506 | |||
507 | ;Asper [ this part is from "hda_local.h" |
||
508 | |||
509 | ;(...) |
||
510 | ; amp value bits |
||
5048 | Asper | 511 | HDA_AMP_MUTE equ 0x80 |
512 | HDA_AMP_UNMUTE equ 0x00 |
||
513 | HDA_AMP_VOLMASK equ 0x7F |
||
3083 | leency | 514 | ;(...) |
515 | |||
516 | |||
517 | ; unsolicited event handler |
||
518 | HDA_UNSOL_QUEUE_SIZE equ 64 |
||
519 | |||
520 | ;struc HDA_BUS_UNSOLICITED |
||
521 | ;{ |
||
522 | ; ; ring buffer |
||
523 | ; .queue: |
||
524 | ; times HDA_UNSOL_QUEUE_SIZE*2 dd ? |
||
525 | ; .rp dd ? |
||
526 | ; .wp dd ? |
||
527 | ; |
||
528 | ; ; workqueue |
||
529 | ; .work dd ?;struct work_struct work; |
||
530 | ; .bus dd ? ;struct hda_bus ;bus |
||
531 | ;}; |
||
532 | |||
533 | ; Helper for automatic ping configuration |
||
534 | AUTO_PIN_MIC equ 0 |
||
535 | AUTO_PIN_FRONT_MIC equ 1 |
||
536 | AUTO_PIN_LINE equ 2 |
||
537 | AUTO_PIN_FRONT_LINE equ 3 |
||
538 | AUTO_PIN_CD equ 4 |
||
539 | AUTO_PIN_AUX equ 5 |
||
540 | AUTO_PIN_LAST equ 6 |
||
541 | |||
542 | |||
543 | AUTO_PIN_LINE_OUT equ 0 |
||
544 | AUTO_PIN_SPEAKER_OUT equ 1 |
||
545 | AUTO_PIN_HP_OUT equ 2 |
||
546 | |||
547 | |||
548 | ;extern const char *auto_pin_cfg_labels[AUTO_PIN_LAST]; |
||
549 | |||
550 | AUTO_CFG_MAX_OUTS equ 5 |
||
551 | |||
552 | ;struc AUTO_PIN_CFG |
||
553 | ;{ |
||
554 | ; .line_outs dd ? |
||
555 | ; ; sorted in the order of FrontSurrCLFESide |
||
556 | ; .line_out_pins times AUTO_CFG_MAX_OUTS dw ? |
||
557 | ; .speaker_outs dd ? |
||
558 | ; .speaker_pins times AUTO_CFG_MAX_OUTS dw ? |
||
559 | ; .hp_outs dd ? |
||
560 | ; .line_out_type dd ? ; AUTO_PIN_XXX_OUT |
||
561 | ; .hp_pins times AUTO_CFG_MAX_OUTS dw ? |
||
562 | ; .input_pins times AUTO_PIN_LAST dw ? |
||
563 | ; .dig_outs dd ? |
||
564 | ; .dig_out_pins times 2 dd ? |
||
565 | ; .dig_in_pin dw ? |
||
566 | ; .mono_out_pin dw ? |
||
567 | ; .dig_out_type times 2 dd ? ; HDA_PCM_TYPE_XXX |
||
568 | ; .dig_in_type dd ? ; HDA_PCM_TYPE_XXX |
||
569 | ;} |
||
570 | |||
571 | ;#define get_defcfg_connect(cfg) \ |
||
572 | ; ((cfg & AC_DEFCFG_PORT_CONN) >> AC_DEFCFG_PORT_CONN_SHIFT) |
||
573 | ;#define get_defcfg_association(cfg) \ |
||
574 | ; ((cfg & AC_DEFCFG_DEF_ASSOC) >> AC_DEFCFG_ASSOC_SHIFT) |
||
575 | ;#define get_defcfg_location(cfg) \ |
||
576 | ; ((cfg & AC_DEFCFG_LOCATION) >> AC_DEFCFG_LOCATION_SHIFT) |
||
577 | ;#define get_defcfg_sequence(cfg) \ |
||
578 | ; (cfg & AC_DEFCFG_SEQUENCE) |
||
579 | ;#define get_defcfg_device(cfg) \ |
||
580 | ; ((cfg & AC_DEFCFG_DEVICE) >> AC_DEFCFG_DEVICE_SHIFT) |
||
581 | |||
582 | ; amp values |
||
583 | ;AMP_IN_MUTE(idx) (0x7080 | ((idx)<<8)) |
||
584 | ;AMP_IN_UNMUTE(idx) (0x7000 | ((idx)<<8)) |
||
585 | AMP_OUT_MUTE equ 0xb080 |
||
586 | AMP_OUT_UNMUTE equ 0xb000 |
||
587 | AMP_OUT_ZERO equ 0xb000 |
||
588 | ; pinctl values |
||
589 | PIN_IN equ (AC_PINCTL_IN_EN) |
||
590 | PIN_VREFHIZ equ (AC_PINCTL_IN_EN or AC_PINCTL_VREF_HIZ) |
||
591 | PIN_VREF50 equ (AC_PINCTL_IN_EN or AC_PINCTL_VREF_50) |
||
592 | PIN_VREFGRD equ (AC_PINCTL_IN_EN or AC_PINCTL_VREF_GRD) |
||
593 | PIN_VREF80 equ (AC_PINCTL_IN_EN or AC_PINCTL_VREF_80) |
||
594 | PIN_VREF100 equ (AC_PINCTL_IN_EN or AC_PINCTL_VREF_100) |
||
595 | PIN_OUT equ (AC_PINCTL_OUT_EN) |
||
596 | PIN_HP equ (AC_PINCTL_OUT_EN or AC_PINCTL_HP_EN) |
||
597 | PIN_HP_AMP equ (AC_PINCTL_HP_EN) |
||
598 | |||
599 | |||
600 | ; get widget capabilities |
||
601 | proc get_wcaps stdcall, nid:dword |
||
5048 | Asper | 602 | push ebx ecx edx |
603 | xor eax, eax |
||
604 | movzx ebx, [codec.start_nid] |
||
605 | movzx ecx, [codec.num_nodes] |
||
606 | mov edx, [nid] |
||
3083 | leency | 607 | |
5048 | Asper | 608 | cmp edx, ebx |
609 | jl .out |
||
3083 | leency | 610 | |
5048 | Asper | 611 | add ecx, ebx |
612 | cmp edx, ecx |
||
613 | jge .out |
||
3083 | leency | 614 | |
5048 | Asper | 615 | sub edx, ebx |
616 | shl edx, 2 |
||
617 | add edx, [codec.wcaps] |
||
618 | mov eax, [edx] |
||
619 | .out: |
||
620 | pop edx ecx ebx |
||
621 | ret |
||
3083 | leency | 622 | endp |
623 | |||
624 | ; get the widget type from widget capability bits |
||
625 | proc get_wcaps_type stdcall, wcaps:dword |
||
5048 | Asper | 626 | mov eax, [wcaps] |
627 | and eax, AC_WCAP_TYPE |
||
628 | shr eax, AC_WCAP_TYPE_SHIFT |
||
629 | ret |
||
3083 | leency | 630 | endp |
631 | |||
632 | ;static inline unsigned int get_wcaps_channels(u32 wcaps) |
||
633 | proc get_wcaps_channels stdcall, wcaps:dword |
||
5048 | Asper | 634 | mov eax, [wcaps] |
635 | and eax, AC_WCAP_CHAN_CNT_EXT |
||
636 | shr eax, 13 |
||
637 | shl eax, 1 |
||
638 | or eax, 1 |
||
639 | inc eax |
||
640 | ret |
||
3083 | leency | 641 | endp |
642 | |||
643 | ;Asper ]8)) |