1
2
3
4
5
6
7
8
9
10 #ifndef _WM8983_H
11 #define _WM8983_H
12
13
14
15
16 #define WM8983_SOFTWARE_RESET 0x00
17 #define WM8983_POWER_MANAGEMENT_1 0x01
18 #define WM8983_POWER_MANAGEMENT_2 0x02
19 #define WM8983_POWER_MANAGEMENT_3 0x03
20 #define WM8983_AUDIO_INTERFACE 0x04
21 #define WM8983_COMPANDING_CONTROL 0x05
22 #define WM8983_CLOCK_GEN_CONTROL 0x06
23 #define WM8983_ADDITIONAL_CONTROL 0x07
24 #define WM8983_GPIO_CONTROL 0x08
25 #define WM8983_JACK_DETECT_CONTROL_1 0x09
26 #define WM8983_DAC_CONTROL 0x0A
27 #define WM8983_LEFT_DAC_DIGITAL_VOL 0x0B
28 #define WM8983_RIGHT_DAC_DIGITAL_VOL 0x0C
29 #define WM8983_JACK_DETECT_CONTROL_2 0x0D
30 #define WM8983_ADC_CONTROL 0x0E
31 #define WM8983_LEFT_ADC_DIGITAL_VOL 0x0F
32 #define WM8983_RIGHT_ADC_DIGITAL_VOL 0x10
33 #define WM8983_EQ1_LOW_SHELF 0x12
34 #define WM8983_EQ2_PEAK_1 0x13
35 #define WM8983_EQ3_PEAK_2 0x14
36 #define WM8983_EQ4_PEAK_3 0x15
37 #define WM8983_EQ5_HIGH_SHELF 0x16
38 #define WM8983_DAC_LIMITER_1 0x18
39 #define WM8983_DAC_LIMITER_2 0x19
40 #define WM8983_NOTCH_FILTER_1 0x1B
41 #define WM8983_NOTCH_FILTER_2 0x1C
42 #define WM8983_NOTCH_FILTER_3 0x1D
43 #define WM8983_NOTCH_FILTER_4 0x1E
44 #define WM8983_ALC_CONTROL_1 0x20
45 #define WM8983_ALC_CONTROL_2 0x21
46 #define WM8983_ALC_CONTROL_3 0x22
47 #define WM8983_NOISE_GATE 0x23
48 #define WM8983_PLL_N 0x24
49 #define WM8983_PLL_K_1 0x25
50 #define WM8983_PLL_K_2 0x26
51 #define WM8983_PLL_K_3 0x27
52 #define WM8983_3D_CONTROL 0x29
53 #define WM8983_OUT4_TO_ADC 0x2A
54 #define WM8983_BEEP_CONTROL 0x2B
55 #define WM8983_INPUT_CTRL 0x2C
56 #define WM8983_LEFT_INP_PGA_GAIN_CTRL 0x2D
57 #define WM8983_RIGHT_INP_PGA_GAIN_CTRL 0x2E
58 #define WM8983_LEFT_ADC_BOOST_CTRL 0x2F
59 #define WM8983_RIGHT_ADC_BOOST_CTRL 0x30
60 #define WM8983_OUTPUT_CTRL 0x31
61 #define WM8983_LEFT_MIXER_CTRL 0x32
62 #define WM8983_RIGHT_MIXER_CTRL 0x33
63 #define WM8983_LOUT1_HP_VOLUME_CTRL 0x34
64 #define WM8983_ROUT1_HP_VOLUME_CTRL 0x35
65 #define WM8983_LOUT2_SPK_VOLUME_CTRL 0x36
66 #define WM8983_ROUT2_SPK_VOLUME_CTRL 0x37
67 #define WM8983_OUT3_MIXER_CTRL 0x38
68 #define WM8983_OUT4_MONO_MIX_CTRL 0x39
69 #define WM8983_BIAS_CTRL 0x3D
70
71 #define WM8983_REGISTER_COUNT 59
72 #define WM8983_MAX_REGISTER 0x3F
73
74
75
76
77
78
79
80
81 #define WM8983_SOFTWARE_RESET_MASK 0x01FF
82 #define WM8983_SOFTWARE_RESET_SHIFT 0
83 #define WM8983_SOFTWARE_RESET_WIDTH 9
84
85
86
87
88 #define WM8983_BUFDCOPEN 0x0100
89 #define WM8983_BUFDCOPEN_MASK 0x0100
90 #define WM8983_BUFDCOPEN_SHIFT 8
91 #define WM8983_BUFDCOPEN_WIDTH 1
92 #define WM8983_OUT4MIXEN 0x0080
93 #define WM8983_OUT4MIXEN_MASK 0x0080
94 #define WM8983_OUT4MIXEN_SHIFT 7
95 #define WM8983_OUT4MIXEN_WIDTH 1
96 #define WM8983_OUT3MIXEN 0x0040
97 #define WM8983_OUT3MIXEN_MASK 0x0040
98 #define WM8983_OUT3MIXEN_SHIFT 6
99 #define WM8983_OUT3MIXEN_WIDTH 1
100 #define WM8983_PLLEN 0x0020
101 #define WM8983_PLLEN_MASK 0x0020
102 #define WM8983_PLLEN_SHIFT 5
103 #define WM8983_PLLEN_WIDTH 1
104 #define WM8983_MICBEN 0x0010
105 #define WM8983_MICBEN_MASK 0x0010
106 #define WM8983_MICBEN_SHIFT 4
107 #define WM8983_MICBEN_WIDTH 1
108 #define WM8983_BIASEN 0x0008
109 #define WM8983_BIASEN_MASK 0x0008
110 #define WM8983_BIASEN_SHIFT 3
111 #define WM8983_BIASEN_WIDTH 1
112 #define WM8983_BUFIOEN 0x0004
113 #define WM8983_BUFIOEN_MASK 0x0004
114 #define WM8983_BUFIOEN_SHIFT 2
115 #define WM8983_BUFIOEN_WIDTH 1
116 #define WM8983_VMIDSEL_MASK 0x0003
117 #define WM8983_VMIDSEL_SHIFT 0
118 #define WM8983_VMIDSEL_WIDTH 2
119
120
121
122
123 #define WM8983_ROUT1EN 0x0100
124 #define WM8983_ROUT1EN_MASK 0x0100
125 #define WM8983_ROUT1EN_SHIFT 8
126 #define WM8983_ROUT1EN_WIDTH 1
127 #define WM8983_LOUT1EN 0x0080
128 #define WM8983_LOUT1EN_MASK 0x0080
129 #define WM8983_LOUT1EN_SHIFT 7
130 #define WM8983_LOUT1EN_WIDTH 1
131 #define WM8983_SLEEP 0x0040
132 #define WM8983_SLEEP_MASK 0x0040
133 #define WM8983_SLEEP_SHIFT 6
134 #define WM8983_SLEEP_WIDTH 1
135 #define WM8983_BOOSTENR 0x0020
136 #define WM8983_BOOSTENR_MASK 0x0020
137 #define WM8983_BOOSTENR_SHIFT 5
138 #define WM8983_BOOSTENR_WIDTH 1
139 #define WM8983_BOOSTENL 0x0010
140 #define WM8983_BOOSTENL_MASK 0x0010
141 #define WM8983_BOOSTENL_SHIFT 4
142 #define WM8983_BOOSTENL_WIDTH 1
143 #define WM8983_INPGAENR 0x0008
144 #define WM8983_INPGAENR_MASK 0x0008
145 #define WM8983_INPGAENR_SHIFT 3
146 #define WM8983_INPGAENR_WIDTH 1
147 #define WM8983_INPPGAENL 0x0004
148 #define WM8983_INPPGAENL_MASK 0x0004
149 #define WM8983_INPPGAENL_SHIFT 2
150 #define WM8983_INPPGAENL_WIDTH 1
151 #define WM8983_ADCENR 0x0002
152 #define WM8983_ADCENR_MASK 0x0002
153 #define WM8983_ADCENR_SHIFT 1
154 #define WM8983_ADCENR_WIDTH 1
155 #define WM8983_ADCENL 0x0001
156 #define WM8983_ADCENL_MASK 0x0001
157 #define WM8983_ADCENL_SHIFT 0
158 #define WM8983_ADCENL_WIDTH 1
159
160
161
162
163 #define WM8983_OUT4EN 0x0100
164 #define WM8983_OUT4EN_MASK 0x0100
165 #define WM8983_OUT4EN_SHIFT 8
166 #define WM8983_OUT4EN_WIDTH 1
167 #define WM8983_OUT3EN 0x0080
168 #define WM8983_OUT3EN_MASK 0x0080
169 #define WM8983_OUT3EN_SHIFT 7
170 #define WM8983_OUT3EN_WIDTH 1
171 #define WM8983_LOUT2EN 0x0040
172 #define WM8983_LOUT2EN_MASK 0x0040
173 #define WM8983_LOUT2EN_SHIFT 6
174 #define WM8983_LOUT2EN_WIDTH 1
175 #define WM8983_ROUT2EN 0x0020
176 #define WM8983_ROUT2EN_MASK 0x0020
177 #define WM8983_ROUT2EN_SHIFT 5
178 #define WM8983_ROUT2EN_WIDTH 1
179 #define WM8983_RMIXEN 0x0008
180 #define WM8983_RMIXEN_MASK 0x0008
181 #define WM8983_RMIXEN_SHIFT 3
182 #define WM8983_RMIXEN_WIDTH 1
183 #define WM8983_LMIXEN 0x0004
184 #define WM8983_LMIXEN_MASK 0x0004
185 #define WM8983_LMIXEN_SHIFT 2
186 #define WM8983_LMIXEN_WIDTH 1
187 #define WM8983_DACENR 0x0002
188 #define WM8983_DACENR_MASK 0x0002
189 #define WM8983_DACENR_SHIFT 1
190 #define WM8983_DACENR_WIDTH 1
191 #define WM8983_DACENL 0x0001
192 #define WM8983_DACENL_MASK 0x0001
193 #define WM8983_DACENL_SHIFT 0
194 #define WM8983_DACENL_WIDTH 1
195
196
197
198
199 #define WM8983_BCP 0x0100
200 #define WM8983_BCP_MASK 0x0100
201 #define WM8983_BCP_SHIFT 8
202 #define WM8983_BCP_WIDTH 1
203 #define WM8983_LRCP 0x0080
204 #define WM8983_LRCP_MASK 0x0080
205 #define WM8983_LRCP_SHIFT 7
206 #define WM8983_LRCP_WIDTH 1
207 #define WM8983_WL_MASK 0x0060
208 #define WM8983_WL_SHIFT 5
209 #define WM8983_WL_WIDTH 2
210 #define WM8983_FMT_MASK 0x0018
211 #define WM8983_FMT_SHIFT 3
212 #define WM8983_FMT_WIDTH 2
213 #define WM8983_DLRSWAP 0x0004
214 #define WM8983_DLRSWAP_MASK 0x0004
215 #define WM8983_DLRSWAP_SHIFT 2
216 #define WM8983_DLRSWAP_WIDTH 1
217 #define WM8983_ALRSWAP 0x0002
218 #define WM8983_ALRSWAP_MASK 0x0002
219 #define WM8983_ALRSWAP_SHIFT 1
220 #define WM8983_ALRSWAP_WIDTH 1
221 #define WM8983_MONO 0x0001
222 #define WM8983_MONO_MASK 0x0001
223 #define WM8983_MONO_SHIFT 0
224 #define WM8983_MONO_WIDTH 1
225
226
227
228
229 #define WM8983_WL8 0x0020
230 #define WM8983_WL8_MASK 0x0020
231 #define WM8983_WL8_SHIFT 5
232 #define WM8983_WL8_WIDTH 1
233 #define WM8983_DAC_COMP_MASK 0x0018
234 #define WM8983_DAC_COMP_SHIFT 3
235 #define WM8983_DAC_COMP_WIDTH 2
236 #define WM8983_ADC_COMP_MASK 0x0006
237 #define WM8983_ADC_COMP_SHIFT 1
238 #define WM8983_ADC_COMP_WIDTH 2
239 #define WM8983_LOOPBACK 0x0001
240 #define WM8983_LOOPBACK_MASK 0x0001
241 #define WM8983_LOOPBACK_SHIFT 0
242 #define WM8983_LOOPBACK_WIDTH 1
243
244
245
246
247 #define WM8983_CLKSEL 0x0100
248 #define WM8983_CLKSEL_MASK 0x0100
249 #define WM8983_CLKSEL_SHIFT 8
250 #define WM8983_CLKSEL_WIDTH 1
251 #define WM8983_MCLKDIV_MASK 0x00E0
252 #define WM8983_MCLKDIV_SHIFT 5
253 #define WM8983_MCLKDIV_WIDTH 3
254 #define WM8983_BCLKDIV_MASK 0x001C
255 #define WM8983_BCLKDIV_SHIFT 2
256 #define WM8983_BCLKDIV_WIDTH 3
257 #define WM8983_MS 0x0001
258 #define WM8983_MS_MASK 0x0001
259 #define WM8983_MS_SHIFT 0
260 #define WM8983_MS_WIDTH 1
261
262
263
264
265 #define WM8983_SR_MASK 0x000E
266 #define WM8983_SR_SHIFT 1
267 #define WM8983_SR_WIDTH 3
268 #define WM8983_SLOWCLKEN 0x0001
269 #define WM8983_SLOWCLKEN_MASK 0x0001
270 #define WM8983_SLOWCLKEN_SHIFT 0
271 #define WM8983_SLOWCLKEN_WIDTH 1
272
273
274
275
276 #define WM8983_OPCLKDIV_MASK 0x0030
277 #define WM8983_OPCLKDIV_SHIFT 4
278 #define WM8983_OPCLKDIV_WIDTH 2
279 #define WM8983_GPIO1POL 0x0008
280 #define WM8983_GPIO1POL_MASK 0x0008
281 #define WM8983_GPIO1POL_SHIFT 3
282 #define WM8983_GPIO1POL_WIDTH 1
283 #define WM8983_GPIO1SEL_MASK 0x0007
284 #define WM8983_GPIO1SEL_SHIFT 0
285 #define WM8983_GPIO1SEL_WIDTH 3
286
287
288
289
290 #define WM8983_JD_VMID1 0x0100
291 #define WM8983_JD_VMID1_MASK 0x0100
292 #define WM8983_JD_VMID1_SHIFT 8
293 #define WM8983_JD_VMID1_WIDTH 1
294 #define WM8983_JD_VMID0 0x0080
295 #define WM8983_JD_VMID0_MASK 0x0080
296 #define WM8983_JD_VMID0_SHIFT 7
297 #define WM8983_JD_VMID0_WIDTH 1
298 #define WM8983_JD_EN 0x0040
299 #define WM8983_JD_EN_MASK 0x0040
300 #define WM8983_JD_EN_SHIFT 6
301 #define WM8983_JD_EN_WIDTH 1
302 #define WM8983_JD_SEL_MASK 0x0030
303 #define WM8983_JD_SEL_SHIFT 4
304 #define WM8983_JD_SEL_WIDTH 2
305
306
307
308
309 #define WM8983_SOFTMUTE 0x0040
310 #define WM8983_SOFTMUTE_MASK 0x0040
311 #define WM8983_SOFTMUTE_SHIFT 6
312 #define WM8983_SOFTMUTE_WIDTH 1
313 #define WM8983_DACOSR128 0x0008
314 #define WM8983_DACOSR128_MASK 0x0008
315 #define WM8983_DACOSR128_SHIFT 3
316 #define WM8983_DACOSR128_WIDTH 1
317 #define WM8983_AMUTE 0x0004
318 #define WM8983_AMUTE_MASK 0x0004
319 #define WM8983_AMUTE_SHIFT 2
320 #define WM8983_AMUTE_WIDTH 1
321 #define WM8983_DACRPOL 0x0002
322 #define WM8983_DACRPOL_MASK 0x0002
323 #define WM8983_DACRPOL_SHIFT 1
324 #define WM8983_DACRPOL_WIDTH 1
325 #define WM8983_DACLPOL 0x0001
326 #define WM8983_DACLPOL_MASK 0x0001
327 #define WM8983_DACLPOL_SHIFT 0
328 #define WM8983_DACLPOL_WIDTH 1
329
330
331
332
333 #define WM8983_DACVU 0x0100
334 #define WM8983_DACVU_MASK 0x0100
335 #define WM8983_DACVU_SHIFT 8
336 #define WM8983_DACVU_WIDTH 1
337 #define WM8983_DACLVOL_MASK 0x00FF
338 #define WM8983_DACLVOL_SHIFT 0
339 #define WM8983_DACLVOL_WIDTH 8
340
341
342
343
344 #define WM8983_DACVU 0x0100
345 #define WM8983_DACVU_MASK 0x0100
346 #define WM8983_DACVU_SHIFT 8
347 #define WM8983_DACVU_WIDTH 1
348 #define WM8983_DACRVOL_MASK 0x00FF
349 #define WM8983_DACRVOL_SHIFT 0
350 #define WM8983_DACRVOL_WIDTH 8
351
352
353
354
355 #define WM8983_JD_EN1_MASK 0x00F0
356 #define WM8983_JD_EN1_SHIFT 4
357 #define WM8983_JD_EN1_WIDTH 4
358 #define WM8983_JD_EN0_MASK 0x000F
359 #define WM8983_JD_EN0_SHIFT 0
360 #define WM8983_JD_EN0_WIDTH 4
361
362
363
364
365 #define WM8983_HPFEN 0x0100
366 #define WM8983_HPFEN_MASK 0x0100
367 #define WM8983_HPFEN_SHIFT 8
368 #define WM8983_HPFEN_WIDTH 1
369 #define WM8983_HPFAPP 0x0080
370 #define WM8983_HPFAPP_MASK 0x0080
371 #define WM8983_HPFAPP_SHIFT 7
372 #define WM8983_HPFAPP_WIDTH 1
373 #define WM8983_HPFCUT_MASK 0x0070
374 #define WM8983_HPFCUT_SHIFT 4
375 #define WM8983_HPFCUT_WIDTH 3
376 #define WM8983_ADCOSR128 0x0008
377 #define WM8983_ADCOSR128_MASK 0x0008
378 #define WM8983_ADCOSR128_SHIFT 3
379 #define WM8983_ADCOSR128_WIDTH 1
380 #define WM8983_ADCRPOL 0x0002
381 #define WM8983_ADCRPOL_MASK 0x0002
382 #define WM8983_ADCRPOL_SHIFT 1
383 #define WM8983_ADCRPOL_WIDTH 1
384 #define WM8983_ADCLPOL 0x0001
385 #define WM8983_ADCLPOL_MASK 0x0001
386 #define WM8983_ADCLPOL_SHIFT 0
387 #define WM8983_ADCLPOL_WIDTH 1
388
389
390
391
392 #define WM8983_ADCVU 0x0100
393 #define WM8983_ADCVU_MASK 0x0100
394 #define WM8983_ADCVU_SHIFT 8
395 #define WM8983_ADCVU_WIDTH 1
396 #define WM8983_ADCLVOL_MASK 0x00FF
397 #define WM8983_ADCLVOL_SHIFT 0
398 #define WM8983_ADCLVOL_WIDTH 8
399
400
401
402
403 #define WM8983_ADCVU 0x0100
404 #define WM8983_ADCVU_MASK 0x0100
405 #define WM8983_ADCVU_SHIFT 8
406 #define WM8983_ADCVU_WIDTH 1
407 #define WM8983_ADCRVOL_MASK 0x00FF
408 #define WM8983_ADCRVOL_SHIFT 0
409 #define WM8983_ADCRVOL_WIDTH 8
410
411
412
413
414 #define WM8983_EQ3DMODE 0x0100
415 #define WM8983_EQ3DMODE_MASK 0x0100
416 #define WM8983_EQ3DMODE_SHIFT 8
417 #define WM8983_EQ3DMODE_WIDTH 1
418 #define WM8983_EQ1C_MASK 0x0060
419 #define WM8983_EQ1C_SHIFT 5
420 #define WM8983_EQ1C_WIDTH 2
421 #define WM8983_EQ1G_MASK 0x001F
422 #define WM8983_EQ1G_SHIFT 0
423 #define WM8983_EQ1G_WIDTH 5
424
425
426
427
428 #define WM8983_EQ2BW 0x0100
429 #define WM8983_EQ2BW_MASK 0x0100
430 #define WM8983_EQ2BW_SHIFT 8
431 #define WM8983_EQ2BW_WIDTH 1
432 #define WM8983_EQ2C_MASK 0x0060
433 #define WM8983_EQ2C_SHIFT 5
434 #define WM8983_EQ2C_WIDTH 2
435 #define WM8983_EQ2G_MASK 0x001F
436 #define WM8983_EQ2G_SHIFT 0
437 #define WM8983_EQ2G_WIDTH 5
438
439
440
441
442 #define WM8983_EQ3BW 0x0100
443 #define WM8983_EQ3BW_MASK 0x0100
444 #define WM8983_EQ3BW_SHIFT 8
445 #define WM8983_EQ3BW_WIDTH 1
446 #define WM8983_EQ3C_MASK 0x0060
447 #define WM8983_EQ3C_SHIFT 5
448 #define WM8983_EQ3C_WIDTH 2
449 #define WM8983_EQ3G_MASK 0x001F
450 #define WM8983_EQ3G_SHIFT 0
451 #define WM8983_EQ3G_WIDTH 5
452
453
454
455
456 #define WM8983_EQ4BW 0x0100
457 #define WM8983_EQ4BW_MASK 0x0100
458 #define WM8983_EQ4BW_SHIFT 8
459 #define WM8983_EQ4BW_WIDTH 1
460 #define WM8983_EQ4C_MASK 0x0060
461 #define WM8983_EQ4C_SHIFT 5
462 #define WM8983_EQ4C_WIDTH 2
463 #define WM8983_EQ4G_MASK 0x001F
464 #define WM8983_EQ4G_SHIFT 0
465 #define WM8983_EQ4G_WIDTH 5
466
467
468
469
470 #define WM8983_EQ5C_MASK 0x0060
471 #define WM8983_EQ5C_SHIFT 5
472 #define WM8983_EQ5C_WIDTH 2
473 #define WM8983_EQ5G_MASK 0x001F
474 #define WM8983_EQ5G_SHIFT 0
475 #define WM8983_EQ5G_WIDTH 5
476
477
478
479
480 #define WM8983_LIMEN 0x0100
481 #define WM8983_LIMEN_MASK 0x0100
482 #define WM8983_LIMEN_SHIFT 8
483 #define WM8983_LIMEN_WIDTH 1
484 #define WM8983_LIMDCY_MASK 0x00F0
485 #define WM8983_LIMDCY_SHIFT 4
486 #define WM8983_LIMDCY_WIDTH 4
487 #define WM8983_LIMATK_MASK 0x000F
488 #define WM8983_LIMATK_SHIFT 0
489 #define WM8983_LIMATK_WIDTH 4
490
491
492
493
494 #define WM8983_LIMLVL_MASK 0x0070
495 #define WM8983_LIMLVL_SHIFT 4
496 #define WM8983_LIMLVL_WIDTH 3
497 #define WM8983_LIMBOOST_MASK 0x000F
498 #define WM8983_LIMBOOST_SHIFT 0
499 #define WM8983_LIMBOOST_WIDTH 4
500
501
502
503
504 #define WM8983_NFU 0x0100
505 #define WM8983_NFU_MASK 0x0100
506 #define WM8983_NFU_SHIFT 8
507 #define WM8983_NFU_WIDTH 1
508 #define WM8983_NFEN 0x0080
509 #define WM8983_NFEN_MASK 0x0080
510 #define WM8983_NFEN_SHIFT 7
511 #define WM8983_NFEN_WIDTH 1
512 #define WM8983_NFA0_13_7_MASK 0x007F
513 #define WM8983_NFA0_13_7_SHIFT 0
514 #define WM8983_NFA0_13_7_WIDTH 7
515
516
517
518
519 #define WM8983_NFU 0x0100
520 #define WM8983_NFU_MASK 0x0100
521 #define WM8983_NFU_SHIFT 8
522 #define WM8983_NFU_WIDTH 1
523 #define WM8983_NFA0_6_0_MASK 0x007F
524 #define WM8983_NFA0_6_0_SHIFT 0
525 #define WM8983_NFA0_6_0_WIDTH 7
526
527
528
529
530 #define WM8983_NFU 0x0100
531 #define WM8983_NFU_MASK 0x0100
532 #define WM8983_NFU_SHIFT 8
533 #define WM8983_NFU_WIDTH 1
534 #define WM8983_NFA1_13_7_MASK 0x007F
535 #define WM8983_NFA1_13_7_SHIFT 0
536 #define WM8983_NFA1_13_7_WIDTH 7
537
538
539
540
541 #define WM8983_NFU 0x0100
542 #define WM8983_NFU_MASK 0x0100
543 #define WM8983_NFU_SHIFT 8
544 #define WM8983_NFU_WIDTH 1
545 #define WM8983_NFA1_6_0_MASK 0x007F
546 #define WM8983_NFA1_6_0_SHIFT 0
547 #define WM8983_NFA1_6_0_WIDTH 7
548
549
550
551
552 #define WM8983_ALCSEL_MASK 0x0180
553 #define WM8983_ALCSEL_SHIFT 7
554 #define WM8983_ALCSEL_WIDTH 2
555 #define WM8983_ALCMAX_MASK 0x0038
556 #define WM8983_ALCMAX_SHIFT 3
557 #define WM8983_ALCMAX_WIDTH 3
558 #define WM8983_ALCMIN_MASK 0x0007
559 #define WM8983_ALCMIN_SHIFT 0
560 #define WM8983_ALCMIN_WIDTH 3
561
562
563
564
565 #define WM8983_ALCHLD_MASK 0x00F0
566 #define WM8983_ALCHLD_SHIFT 4
567 #define WM8983_ALCHLD_WIDTH 4
568 #define WM8983_ALCLVL_MASK 0x000F
569 #define WM8983_ALCLVL_SHIFT 0
570 #define WM8983_ALCLVL_WIDTH 4
571
572
573
574
575 #define WM8983_ALCMODE 0x0100
576 #define WM8983_ALCMODE_MASK 0x0100
577 #define WM8983_ALCMODE_SHIFT 8
578 #define WM8983_ALCMODE_WIDTH 1
579 #define WM8983_ALCDCY_MASK 0x00F0
580 #define WM8983_ALCDCY_SHIFT 4
581 #define WM8983_ALCDCY_WIDTH 4
582 #define WM8983_ALCATK_MASK 0x000F
583 #define WM8983_ALCATK_SHIFT 0
584 #define WM8983_ALCATK_WIDTH 4
585
586
587
588
589 #define WM8983_NGEN 0x0008
590 #define WM8983_NGEN_MASK 0x0008
591 #define WM8983_NGEN_SHIFT 3
592 #define WM8983_NGEN_WIDTH 1
593 #define WM8983_NGTH_MASK 0x0007
594 #define WM8983_NGTH_SHIFT 0
595 #define WM8983_NGTH_WIDTH 3
596
597
598
599
600 #define WM8983_PLL_PRESCALE 0x0010
601 #define WM8983_PLL_PRESCALE_MASK 0x0010
602 #define WM8983_PLL_PRESCALE_SHIFT 4
603 #define WM8983_PLL_PRESCALE_WIDTH 1
604 #define WM8983_PLLN_MASK 0x000F
605 #define WM8983_PLLN_SHIFT 0
606 #define WM8983_PLLN_WIDTH 4
607
608
609
610
611 #define WM8983_PLLK_23_18_MASK 0x003F
612 #define WM8983_PLLK_23_18_SHIFT 0
613 #define WM8983_PLLK_23_18_WIDTH 6
614
615
616
617
618 #define WM8983_PLLK_17_9_MASK 0x01FF
619 #define WM8983_PLLK_17_9_SHIFT 0
620 #define WM8983_PLLK_17_9_WIDTH 9
621
622
623
624
625 #define WM8983_PLLK_8_0_MASK 0x01FF
626 #define WM8983_PLLK_8_0_SHIFT 0
627 #define WM8983_PLLK_8_0_WIDTH 9
628
629
630
631
632 #define WM8983_DEPTH3D_MASK 0x000F
633 #define WM8983_DEPTH3D_SHIFT 0
634 #define WM8983_DEPTH3D_WIDTH 4
635
636
637
638
639 #define WM8983_OUT4_2ADCVOL_MASK 0x01C0
640 #define WM8983_OUT4_2ADCVOL_SHIFT 6
641 #define WM8983_OUT4_2ADCVOL_WIDTH 3
642 #define WM8983_OUT4_2LNR 0x0020
643 #define WM8983_OUT4_2LNR_MASK 0x0020
644 #define WM8983_OUT4_2LNR_SHIFT 5
645 #define WM8983_OUT4_2LNR_WIDTH 1
646 #define WM8983_POBCTRL 0x0004
647 #define WM8983_POBCTRL_MASK 0x0004
648 #define WM8983_POBCTRL_SHIFT 2
649 #define WM8983_POBCTRL_WIDTH 1
650 #define WM8983_DELEN 0x0002
651 #define WM8983_DELEN_MASK 0x0002
652 #define WM8983_DELEN_SHIFT 1
653 #define WM8983_DELEN_WIDTH 1
654 #define WM8983_OUT1DEL 0x0001
655 #define WM8983_OUT1DEL_MASK 0x0001
656 #define WM8983_OUT1DEL_SHIFT 0
657 #define WM8983_OUT1DEL_WIDTH 1
658
659
660
661
662 #define WM8983_BYPL2RMIX 0x0100
663 #define WM8983_BYPL2RMIX_MASK 0x0100
664 #define WM8983_BYPL2RMIX_SHIFT 8
665 #define WM8983_BYPL2RMIX_WIDTH 1
666 #define WM8983_BYPR2LMIX 0x0080
667 #define WM8983_BYPR2LMIX_MASK 0x0080
668 #define WM8983_BYPR2LMIX_SHIFT 7
669 #define WM8983_BYPR2LMIX_WIDTH 1
670 #define WM8983_MUTERPGA2INV 0x0020
671 #define WM8983_MUTERPGA2INV_MASK 0x0020
672 #define WM8983_MUTERPGA2INV_SHIFT 5
673 #define WM8983_MUTERPGA2INV_WIDTH 1
674 #define WM8983_INVROUT2 0x0010
675 #define WM8983_INVROUT2_MASK 0x0010
676 #define WM8983_INVROUT2_SHIFT 4
677 #define WM8983_INVROUT2_WIDTH 1
678 #define WM8983_BEEPVOL_MASK 0x000E
679 #define WM8983_BEEPVOL_SHIFT 1
680 #define WM8983_BEEPVOL_WIDTH 3
681 #define WM8983_BEEPEN 0x0001
682 #define WM8983_BEEPEN_MASK 0x0001
683 #define WM8983_BEEPEN_SHIFT 0
684 #define WM8983_BEEPEN_WIDTH 1
685
686
687
688
689 #define WM8983_MBVSEL 0x0100
690 #define WM8983_MBVSEL_MASK 0x0100
691 #define WM8983_MBVSEL_SHIFT 8
692 #define WM8983_MBVSEL_WIDTH 1
693 #define WM8983_R2_2INPPGA 0x0040
694 #define WM8983_R2_2INPPGA_MASK 0x0040
695 #define WM8983_R2_2INPPGA_SHIFT 6
696 #define WM8983_R2_2INPPGA_WIDTH 1
697 #define WM8983_RIN2INPPGA 0x0020
698 #define WM8983_RIN2INPPGA_MASK 0x0020
699 #define WM8983_RIN2INPPGA_SHIFT 5
700 #define WM8983_RIN2INPPGA_WIDTH 1
701 #define WM8983_RIP2INPPGA 0x0010
702 #define WM8983_RIP2INPPGA_MASK 0x0010
703 #define WM8983_RIP2INPPGA_SHIFT 4
704 #define WM8983_RIP2INPPGA_WIDTH 1
705 #define WM8983_L2_2INPPGA 0x0004
706 #define WM8983_L2_2INPPGA_MASK 0x0004
707 #define WM8983_L2_2INPPGA_SHIFT 2
708 #define WM8983_L2_2INPPGA_WIDTH 1
709 #define WM8983_LIN2INPPGA 0x0002
710 #define WM8983_LIN2INPPGA_MASK 0x0002
711 #define WM8983_LIN2INPPGA_SHIFT 1
712 #define WM8983_LIN2INPPGA_WIDTH 1
713 #define WM8983_LIP2INPPGA 0x0001
714 #define WM8983_LIP2INPPGA_MASK 0x0001
715 #define WM8983_LIP2INPPGA_SHIFT 0
716 #define WM8983_LIP2INPPGA_WIDTH 1
717
718
719
720
721 #define WM8983_INPGAVU 0x0100
722 #define WM8983_INPGAVU_MASK 0x0100
723 #define WM8983_INPGAVU_SHIFT 8
724 #define WM8983_INPGAVU_WIDTH 1
725 #define WM8983_INPPGAZCL 0x0080
726 #define WM8983_INPPGAZCL_MASK 0x0080
727 #define WM8983_INPPGAZCL_SHIFT 7
728 #define WM8983_INPPGAZCL_WIDTH 1
729 #define WM8983_INPPGAMUTEL 0x0040
730 #define WM8983_INPPGAMUTEL_MASK 0x0040
731 #define WM8983_INPPGAMUTEL_SHIFT 6
732 #define WM8983_INPPGAMUTEL_WIDTH 1
733 #define WM8983_INPPGAVOLL_MASK 0x003F
734 #define WM8983_INPPGAVOLL_SHIFT 0
735 #define WM8983_INPPGAVOLL_WIDTH 6
736
737
738
739
740 #define WM8983_INPGAVU 0x0100
741 #define WM8983_INPGAVU_MASK 0x0100
742 #define WM8983_INPGAVU_SHIFT 8
743 #define WM8983_INPGAVU_WIDTH 1
744 #define WM8983_INPPGAZCR 0x0080
745 #define WM8983_INPPGAZCR_MASK 0x0080
746 #define WM8983_INPPGAZCR_SHIFT 7
747 #define WM8983_INPPGAZCR_WIDTH 1
748 #define WM8983_INPPGAMUTER 0x0040
749 #define WM8983_INPPGAMUTER_MASK 0x0040
750 #define WM8983_INPPGAMUTER_SHIFT 6
751 #define WM8983_INPPGAMUTER_WIDTH 1
752 #define WM8983_INPPGAVOLR_MASK 0x003F
753 #define WM8983_INPPGAVOLR_SHIFT 0
754 #define WM8983_INPPGAVOLR_WIDTH 6
755
756
757
758
759 #define WM8983_PGABOOSTL 0x0100
760 #define WM8983_PGABOOSTL_MASK 0x0100
761 #define WM8983_PGABOOSTL_SHIFT 8
762 #define WM8983_PGABOOSTL_WIDTH 1
763 #define WM8983_L2_2BOOSTVOL_MASK 0x0070
764 #define WM8983_L2_2BOOSTVOL_SHIFT 4
765 #define WM8983_L2_2BOOSTVOL_WIDTH 3
766 #define WM8983_AUXL2BOOSTVOL_MASK 0x0007
767 #define WM8983_AUXL2BOOSTVOL_SHIFT 0
768 #define WM8983_AUXL2BOOSTVOL_WIDTH 3
769
770
771
772
773 #define WM8983_PGABOOSTR 0x0100
774 #define WM8983_PGABOOSTR_MASK 0x0100
775 #define WM8983_PGABOOSTR_SHIFT 8
776 #define WM8983_PGABOOSTR_WIDTH 1
777 #define WM8983_R2_2BOOSTVOL_MASK 0x0070
778 #define WM8983_R2_2BOOSTVOL_SHIFT 4
779 #define WM8983_R2_2BOOSTVOL_WIDTH 3
780 #define WM8983_AUXR2BOOSTVOL_MASK 0x0007
781 #define WM8983_AUXR2BOOSTVOL_SHIFT 0
782 #define WM8983_AUXR2BOOSTVOL_WIDTH 3
783
784
785
786
787 #define WM8983_DACL2RMIX 0x0040
788 #define WM8983_DACL2RMIX_MASK 0x0040
789 #define WM8983_DACL2RMIX_SHIFT 6
790 #define WM8983_DACL2RMIX_WIDTH 1
791 #define WM8983_DACR2LMIX 0x0020
792 #define WM8983_DACR2LMIX_MASK 0x0020
793 #define WM8983_DACR2LMIX_SHIFT 5
794 #define WM8983_DACR2LMIX_WIDTH 1
795 #define WM8983_OUT4BOOST 0x0010
796 #define WM8983_OUT4BOOST_MASK 0x0010
797 #define WM8983_OUT4BOOST_SHIFT 4
798 #define WM8983_OUT4BOOST_WIDTH 1
799 #define WM8983_OUT3BOOST 0x0008
800 #define WM8983_OUT3BOOST_MASK 0x0008
801 #define WM8983_OUT3BOOST_SHIFT 3
802 #define WM8983_OUT3BOOST_WIDTH 1
803 #define WM8983_SPKBOOST 0x0004
804 #define WM8983_SPKBOOST_MASK 0x0004
805 #define WM8983_SPKBOOST_SHIFT 2
806 #define WM8983_SPKBOOST_WIDTH 1
807 #define WM8983_TSDEN 0x0002
808 #define WM8983_TSDEN_MASK 0x0002
809 #define WM8983_TSDEN_SHIFT 1
810 #define WM8983_TSDEN_WIDTH 1
811 #define WM8983_VROI 0x0001
812 #define WM8983_VROI_MASK 0x0001
813 #define WM8983_VROI_SHIFT 0
814 #define WM8983_VROI_WIDTH 1
815
816
817
818
819 #define WM8983_AUXLMIXVOL_MASK 0x01C0
820 #define WM8983_AUXLMIXVOL_SHIFT 6
821 #define WM8983_AUXLMIXVOL_WIDTH 3
822 #define WM8983_AUXL2LMIX 0x0020
823 #define WM8983_AUXL2LMIX_MASK 0x0020
824 #define WM8983_AUXL2LMIX_SHIFT 5
825 #define WM8983_AUXL2LMIX_WIDTH 1
826 #define WM8983_BYPLMIXVOL_MASK 0x001C
827 #define WM8983_BYPLMIXVOL_SHIFT 2
828 #define WM8983_BYPLMIXVOL_WIDTH 3
829 #define WM8983_BYPL2LMIX 0x0002
830 #define WM8983_BYPL2LMIX_MASK 0x0002
831 #define WM8983_BYPL2LMIX_SHIFT 1
832 #define WM8983_BYPL2LMIX_WIDTH 1
833 #define WM8983_DACL2LMIX 0x0001
834 #define WM8983_DACL2LMIX_MASK 0x0001
835 #define WM8983_DACL2LMIX_SHIFT 0
836 #define WM8983_DACL2LMIX_WIDTH 1
837
838
839
840
841 #define WM8983_AUXRMIXVOL_MASK 0x01C0
842 #define WM8983_AUXRMIXVOL_SHIFT 6
843 #define WM8983_AUXRMIXVOL_WIDTH 3
844 #define WM8983_AUXR2RMIX 0x0020
845 #define WM8983_AUXR2RMIX_MASK 0x0020
846 #define WM8983_AUXR2RMIX_SHIFT 5
847 #define WM8983_AUXR2RMIX_WIDTH 1
848 #define WM8983_BYPRMIXVOL_MASK 0x001C
849 #define WM8983_BYPRMIXVOL_SHIFT 2
850 #define WM8983_BYPRMIXVOL_WIDTH 3
851 #define WM8983_BYPR2RMIX 0x0002
852 #define WM8983_BYPR2RMIX_MASK 0x0002
853 #define WM8983_BYPR2RMIX_SHIFT 1
854 #define WM8983_BYPR2RMIX_WIDTH 1
855 #define WM8983_DACR2RMIX 0x0001
856 #define WM8983_DACR2RMIX_MASK 0x0001
857 #define WM8983_DACR2RMIX_SHIFT 0
858 #define WM8983_DACR2RMIX_WIDTH 1
859
860
861
862
863 #define WM8983_OUT1VU 0x0100
864 #define WM8983_OUT1VU_MASK 0x0100
865 #define WM8983_OUT1VU_SHIFT 8
866 #define WM8983_OUT1VU_WIDTH 1
867 #define WM8983_LOUT1ZC 0x0080
868 #define WM8983_LOUT1ZC_MASK 0x0080
869 #define WM8983_LOUT1ZC_SHIFT 7
870 #define WM8983_LOUT1ZC_WIDTH 1
871 #define WM8983_LOUT1MUTE 0x0040
872 #define WM8983_LOUT1MUTE_MASK 0x0040
873 #define WM8983_LOUT1MUTE_SHIFT 6
874 #define WM8983_LOUT1MUTE_WIDTH 1
875 #define WM8983_LOUT1VOL_MASK 0x003F
876 #define WM8983_LOUT1VOL_SHIFT 0
877 #define WM8983_LOUT1VOL_WIDTH 6
878
879
880
881
882 #define WM8983_OUT1VU 0x0100
883 #define WM8983_OUT1VU_MASK 0x0100
884 #define WM8983_OUT1VU_SHIFT 8
885 #define WM8983_OUT1VU_WIDTH 1
886 #define WM8983_ROUT1ZC 0x0080
887 #define WM8983_ROUT1ZC_MASK 0x0080
888 #define WM8983_ROUT1ZC_SHIFT 7
889 #define WM8983_ROUT1ZC_WIDTH 1
890 #define WM8983_ROUT1MUTE 0x0040
891 #define WM8983_ROUT1MUTE_MASK 0x0040
892 #define WM8983_ROUT1MUTE_SHIFT 6
893 #define WM8983_ROUT1MUTE_WIDTH 1
894 #define WM8983_ROUT1VOL_MASK 0x003F
895 #define WM8983_ROUT1VOL_SHIFT 0
896 #define WM8983_ROUT1VOL_WIDTH 6
897
898
899
900
901 #define WM8983_OUT2VU 0x0100
902 #define WM8983_OUT2VU_MASK 0x0100
903 #define WM8983_OUT2VU_SHIFT 8
904 #define WM8983_OUT2VU_WIDTH 1
905 #define WM8983_LOUT2ZC 0x0080
906 #define WM8983_LOUT2ZC_MASK 0x0080
907 #define WM8983_LOUT2ZC_SHIFT 7
908 #define WM8983_LOUT2ZC_WIDTH 1
909 #define WM8983_LOUT2MUTE 0x0040
910 #define WM8983_LOUT2MUTE_MASK 0x0040
911 #define WM8983_LOUT2MUTE_SHIFT 6
912 #define WM8983_LOUT2MUTE_WIDTH 1
913 #define WM8983_LOUT2VOL_MASK 0x003F
914 #define WM8983_LOUT2VOL_SHIFT 0
915 #define WM8983_LOUT2VOL_WIDTH 6
916
917
918
919
920 #define WM8983_OUT2VU 0x0100
921 #define WM8983_OUT2VU_MASK 0x0100
922 #define WM8983_OUT2VU_SHIFT 8
923 #define WM8983_OUT2VU_WIDTH 1
924 #define WM8983_ROUT2ZC 0x0080
925 #define WM8983_ROUT2ZC_MASK 0x0080
926 #define WM8983_ROUT2ZC_SHIFT 7
927 #define WM8983_ROUT2ZC_WIDTH 1
928 #define WM8983_ROUT2MUTE 0x0040
929 #define WM8983_ROUT2MUTE_MASK 0x0040
930 #define WM8983_ROUT2MUTE_SHIFT 6
931 #define WM8983_ROUT2MUTE_WIDTH 1
932 #define WM8983_ROUT2VOL_MASK 0x003F
933 #define WM8983_ROUT2VOL_SHIFT 0
934 #define WM8983_ROUT2VOL_WIDTH 6
935
936
937
938
939 #define WM8983_OUT3MUTE 0x0040
940 #define WM8983_OUT3MUTE_MASK 0x0040
941 #define WM8983_OUT3MUTE_SHIFT 6
942 #define WM8983_OUT3MUTE_WIDTH 1
943 #define WM8983_OUT4_2OUT3 0x0008
944 #define WM8983_OUT4_2OUT3_MASK 0x0008
945 #define WM8983_OUT4_2OUT3_SHIFT 3
946 #define WM8983_OUT4_2OUT3_WIDTH 1
947 #define WM8983_BYPL2OUT3 0x0004
948 #define WM8983_BYPL2OUT3_MASK 0x0004
949 #define WM8983_BYPL2OUT3_SHIFT 2
950 #define WM8983_BYPL2OUT3_WIDTH 1
951 #define WM8983_LMIX2OUT3 0x0002
952 #define WM8983_LMIX2OUT3_MASK 0x0002
953 #define WM8983_LMIX2OUT3_SHIFT 1
954 #define WM8983_LMIX2OUT3_WIDTH 1
955 #define WM8983_LDAC2OUT3 0x0001
956 #define WM8983_LDAC2OUT3_MASK 0x0001
957 #define WM8983_LDAC2OUT3_SHIFT 0
958 #define WM8983_LDAC2OUT3_WIDTH 1
959
960
961
962
963 #define WM8983_OUT3_2OUT4 0x0080
964 #define WM8983_OUT3_2OUT4_MASK 0x0080
965 #define WM8983_OUT3_2OUT4_SHIFT 7
966 #define WM8983_OUT3_2OUT4_WIDTH 1
967 #define WM8983_OUT4MUTE 0x0040
968 #define WM8983_OUT4MUTE_MASK 0x0040
969 #define WM8983_OUT4MUTE_SHIFT 6
970 #define WM8983_OUT4MUTE_WIDTH 1
971 #define WM8983_OUT4ATTN 0x0020
972 #define WM8983_OUT4ATTN_MASK 0x0020
973 #define WM8983_OUT4ATTN_SHIFT 5
974 #define WM8983_OUT4ATTN_WIDTH 1
975 #define WM8983_LMIX2OUT4 0x0010
976 #define WM8983_LMIX2OUT4_MASK 0x0010
977 #define WM8983_LMIX2OUT4_SHIFT 4
978 #define WM8983_LMIX2OUT4_WIDTH 1
979 #define WM8983_LDAC2OUT4 0x0008
980 #define WM8983_LDAC2OUT4_MASK 0x0008
981 #define WM8983_LDAC2OUT4_SHIFT 3
982 #define WM8983_LDAC2OUT4_WIDTH 1
983 #define WM8983_BYPR2OUT4 0x0004
984 #define WM8983_BYPR2OUT4_MASK 0x0004
985 #define WM8983_BYPR2OUT4_SHIFT 2
986 #define WM8983_BYPR2OUT4_WIDTH 1
987 #define WM8983_RMIX2OUT4 0x0002
988 #define WM8983_RMIX2OUT4_MASK 0x0002
989 #define WM8983_RMIX2OUT4_SHIFT 1
990 #define WM8983_RMIX2OUT4_WIDTH 1
991 #define WM8983_RDAC2OUT4 0x0001
992 #define WM8983_RDAC2OUT4_MASK 0x0001
993 #define WM8983_RDAC2OUT4_SHIFT 0
994 #define WM8983_RDAC2OUT4_WIDTH 1
995
996
997
998
999 #define WM8983_BIASCUT 0x0100
1000 #define WM8983_BIASCUT_MASK 0x0100
1001 #define WM8983_BIASCUT_SHIFT 8
1002 #define WM8983_BIASCUT_WIDTH 1
1003 #define WM8983_HALFIPBIAS 0x0080
1004 #define WM8983_HALFIPBIAS_MASK 0x0080
1005 #define WM8983_HALFIPBIAS_SHIFT 7
1006 #define WM8983_HALFIPBIAS_WIDTH 1
1007 #define WM8983_VBBIASTST_MASK 0x0060
1008 #define WM8983_VBBIASTST_SHIFT 5
1009 #define WM8983_VBBIASTST_WIDTH 2
1010 #define WM8983_BUFBIAS_MASK 0x0018
1011 #define WM8983_BUFBIAS_SHIFT 3
1012 #define WM8983_BUFBIAS_WIDTH 2
1013 #define WM8983_ADCBIAS_MASK 0x0006
1014 #define WM8983_ADCBIAS_SHIFT 1
1015 #define WM8983_ADCBIAS_WIDTH 2
1016 #define WM8983_HALFOPBIAS 0x0001
1017 #define WM8983_HALFOPBIAS_MASK 0x0001
1018 #define WM8983_HALFOPBIAS_SHIFT 0
1019 #define WM8983_HALFOPBIAS_WIDTH 1
1020
1021 enum clk_src {
1022 WM8983_CLKSRC_MCLK,
1023 WM8983_CLKSRC_PLL
1024 };
1025
1026 #endif