1
2
3
4
5
6
7
8
9
10
11
12
13#include <linux/module.h>
14
15#include <linux/mfd/arizona/core.h>
16#include <linux/mfd/arizona/registers.h>
17#include <linux/device.h>
18
19#include "arizona.h"
20
21#define WM8998_NUM_AOD_ISR 2
22#define WM8998_NUM_ISR 5
23
24static const struct reg_sequence wm8998_rev_a_patch[] = {
25 { 0x0212, 0x0000 },
26 { 0x0211, 0x0014 },
27 { 0x04E4, 0x0E0D },
28 { 0x04E5, 0x0E0D },
29 { 0x04E6, 0x0E0D },
30 { 0x04EB, 0x060E },
31 { 0x0441, 0xC759 },
32 { 0x0442, 0x2A08 },
33 { 0x0443, 0x5CFA },
34 { 0x026E, 0x0064 },
35 { 0x026F, 0x00EA },
36 { 0x0270, 0x1F16 },
37 { 0x0410, 0x2080 },
38 { 0x0418, 0x2080 },
39 { 0x0420, 0x2080 },
40 { 0x04B8, 0x1120 },
41 { 0x047E, 0x080E },
42 { 0x0448, 0x03EF },
43};
44
45
46int wm8998_patch(struct arizona *arizona)
47{
48 return regmap_register_patch(arizona->regmap,
49 wm8998_rev_a_patch,
50 ARRAY_SIZE(wm8998_rev_a_patch));
51}
52
53static const struct regmap_irq wm8998_aod_irqs[ARIZONA_NUM_IRQ] = {
54 [ARIZONA_IRQ_MICD_CLAMP_FALL] = {
55 .mask = ARIZONA_MICD_CLAMP_FALL_EINT1
56 },
57 [ARIZONA_IRQ_MICD_CLAMP_RISE] = {
58 .mask = ARIZONA_MICD_CLAMP_RISE_EINT1
59 },
60 [ARIZONA_IRQ_GP5_FALL] = { .mask = ARIZONA_GP5_FALL_EINT1 },
61 [ARIZONA_IRQ_GP5_RISE] = { .mask = ARIZONA_GP5_RISE_EINT1 },
62 [ARIZONA_IRQ_JD_FALL] = { .mask = ARIZONA_JD1_FALL_EINT1 },
63 [ARIZONA_IRQ_JD_RISE] = { .mask = ARIZONA_JD1_RISE_EINT1 },
64};
65
66struct regmap_irq_chip wm8998_aod = {
67 .name = "wm8998 AOD",
68 .status_base = ARIZONA_AOD_IRQ1,
69 .mask_base = ARIZONA_AOD_IRQ_MASK_IRQ1,
70 .ack_base = ARIZONA_AOD_IRQ1,
71 .wake_base = ARIZONA_WAKE_CONTROL,
72 .wake_invert = 1,
73 .num_regs = 1,
74 .irqs = wm8998_aod_irqs,
75 .num_irqs = ARRAY_SIZE(wm8998_aod_irqs),
76};
77
78static const struct regmap_irq wm8998_irqs[ARIZONA_NUM_IRQ] = {
79 [ARIZONA_IRQ_GP4] = { .reg_offset = 0, .mask = ARIZONA_GP4_EINT1 },
80 [ARIZONA_IRQ_GP3] = { .reg_offset = 0, .mask = ARIZONA_GP3_EINT1 },
81 [ARIZONA_IRQ_GP2] = { .reg_offset = 0, .mask = ARIZONA_GP2_EINT1 },
82 [ARIZONA_IRQ_GP1] = { .reg_offset = 0, .mask = ARIZONA_GP1_EINT1 },
83
84 [ARIZONA_IRQ_SPK_OVERHEAT_WARN] = {
85 .reg_offset = 2, .mask = ARIZONA_SPK_OVERHEAT_WARN_EINT1
86 },
87 [ARIZONA_IRQ_SPK_OVERHEAT] = {
88 .reg_offset = 2, .mask = ARIZONA_SPK_OVERHEAT_EINT1
89 },
90 [ARIZONA_IRQ_HPDET] = {
91 .reg_offset = 2, .mask = ARIZONA_HPDET_EINT1
92 },
93 [ARIZONA_IRQ_MICDET] = {
94 .reg_offset = 2, .mask = ARIZONA_MICDET_EINT1
95 },
96 [ARIZONA_IRQ_WSEQ_DONE] = {
97 .reg_offset = 2, .mask = ARIZONA_WSEQ_DONE_EINT1
98 },
99 [ARIZONA_IRQ_DRC1_SIG_DET] = {
100 .reg_offset = 2, .mask = ARIZONA_DRC1_SIG_DET_EINT1
101 },
102 [ARIZONA_IRQ_ASRC2_LOCK] = {
103 .reg_offset = 2, .mask = ARIZONA_ASRC2_LOCK_EINT1
104 },
105 [ARIZONA_IRQ_ASRC1_LOCK] = {
106 .reg_offset = 2, .mask = ARIZONA_ASRC1_LOCK_EINT1
107 },
108 [ARIZONA_IRQ_UNDERCLOCKED] = {
109 .reg_offset = 2, .mask = ARIZONA_UNDERCLOCKED_EINT1
110 },
111 [ARIZONA_IRQ_OVERCLOCKED] = {
112 .reg_offset = 2, .mask = ARIZONA_OVERCLOCKED_EINT1
113 },
114 [ARIZONA_IRQ_FLL2_LOCK] = {
115 .reg_offset = 2, .mask = ARIZONA_FLL2_LOCK_EINT1
116 },
117 [ARIZONA_IRQ_FLL1_LOCK] = {
118 .reg_offset = 2, .mask = ARIZONA_FLL1_LOCK_EINT1
119 },
120 [ARIZONA_IRQ_CLKGEN_ERR] = {
121 .reg_offset = 2, .mask = ARIZONA_CLKGEN_ERR_EINT1
122 },
123 [ARIZONA_IRQ_CLKGEN_ERR_ASYNC] = {
124 .reg_offset = 2, .mask = ARIZONA_CLKGEN_ERR_ASYNC_EINT1
125 },
126
127 [ARIZONA_IRQ_ASRC_CFG_ERR] = {
128 .reg_offset = 3, .mask = ARIZONA_ASRC_CFG_ERR_EINT1
129 },
130 [ARIZONA_IRQ_AIF3_ERR] = {
131 .reg_offset = 3, .mask = ARIZONA_AIF3_ERR_EINT1
132 },
133 [ARIZONA_IRQ_AIF2_ERR] = {
134 .reg_offset = 3, .mask = ARIZONA_AIF2_ERR_EINT1
135 },
136 [ARIZONA_IRQ_AIF1_ERR] = {
137 .reg_offset = 3, .mask = ARIZONA_AIF1_ERR_EINT1
138 },
139 [ARIZONA_IRQ_CTRLIF_ERR] = {
140 .reg_offset = 3, .mask = ARIZONA_CTRLIF_ERR_EINT1
141 },
142 [ARIZONA_IRQ_MIXER_DROPPED_SAMPLES] = {
143 .reg_offset = 3, .mask = ARIZONA_MIXER_DROPPED_SAMPLE_EINT1
144 },
145 [ARIZONA_IRQ_ASYNC_CLK_ENA_LOW] = {
146 .reg_offset = 3, .mask = ARIZONA_ASYNC_CLK_ENA_LOW_EINT1
147 },
148 [ARIZONA_IRQ_SYSCLK_ENA_LOW] = {
149 .reg_offset = 3, .mask = ARIZONA_SYSCLK_ENA_LOW_EINT1
150 },
151 [ARIZONA_IRQ_ISRC1_CFG_ERR] = {
152 .reg_offset = 3, .mask = ARIZONA_ISRC1_CFG_ERR_EINT1
153 },
154 [ARIZONA_IRQ_ISRC2_CFG_ERR] = {
155 .reg_offset = 3, .mask = ARIZONA_ISRC2_CFG_ERR_EINT1
156 },
157
158 [ARIZONA_IRQ_BOOT_DONE] = {
159 .reg_offset = 4, .mask = ARIZONA_BOOT_DONE_EINT1
160 },
161 [ARIZONA_IRQ_FLL2_CLOCK_OK] = {
162 .reg_offset = 4, .mask = ARIZONA_FLL2_CLOCK_OK_EINT1
163 },
164 [ARIZONA_IRQ_FLL1_CLOCK_OK] = {
165 .reg_offset = 4, .mask = ARIZONA_FLL1_CLOCK_OK_EINT1
166 },
167};
168
169struct regmap_irq_chip wm8998_irq = {
170 .name = "wm8998 IRQ",
171 .status_base = ARIZONA_INTERRUPT_STATUS_1,
172 .mask_base = ARIZONA_INTERRUPT_STATUS_1_MASK,
173 .ack_base = ARIZONA_INTERRUPT_STATUS_1,
174 .num_regs = 5,
175 .irqs = wm8998_irqs,
176 .num_irqs = ARRAY_SIZE(wm8998_irqs),
177};
178
179static const struct reg_default wm8998_reg_default[] = {
180 { 0x00000009, 0x0001 },
181 { 0x0000000B, 0x001A },
182 { 0x00000020, 0x0000 },
183 { 0x00000021, 0x1000 },
184 { 0x00000022, 0x0000 },
185 { 0x00000023, 0x1000 },
186 { 0x00000024, 0x0000 },
187 { 0x00000030, 0x0000 },
188 { 0x00000031, 0x0100 },
189 { 0x00000032, 0x0100 },
190 { 0x00000040, 0x0000 },
191 { 0x00000041, 0x0000 },
192 { 0x00000061, 0x01FF },
193 { 0x00000062, 0x01FF },
194 { 0x00000063, 0x01FF },
195 { 0x00000064, 0x01FF },
196 { 0x00000066, 0x01FF },
197 { 0x00000067, 0x01FF },
198 { 0x00000068, 0x01FF },
199 { 0x00000069, 0x01FF },
200 { 0x0000006A, 0x01FF },
201 { 0x0000006B, 0x01FF },
202 { 0x00000090, 0x0000 },
203 { 0x00000091, 0x7FFF },
204 { 0x00000092, 0x0000 },
205 { 0x00000093, 0x0000 },
206 { 0x00000094, 0x0000 },
207 { 0x00000095, 0x0000 },
208 { 0x00000096, 0x0000 },
209 { 0x00000097, 0x0000 },
210 { 0x00000100, 0x0002 },
211 { 0x00000101, 0x0304 },
212 { 0x00000102, 0x0011 },
213 { 0x00000103, 0x0011 },
214 { 0x00000104, 0x0011 },
215 { 0x00000112, 0x0305 },
216 { 0x00000113, 0x0011 },
217 { 0x00000114, 0x0011 },
218 { 0x00000149, 0x0000 },
219 { 0x0000014A, 0x0000 },
220 { 0x00000152, 0x0000 },
221 { 0x00000153, 0x0000 },
222 { 0x00000154, 0x0000 },
223 { 0x00000155, 0x0000 },
224 { 0x00000156, 0x0000 },
225 { 0x00000161, 0x0000 },
226 { 0x00000171, 0x0002 },
227 { 0x00000172, 0x0008 },
228 { 0x00000173, 0x0018 },
229 { 0x00000174, 0x007D },
230 { 0x00000175, 0x0004 },
231 { 0x00000176, 0x0000 },
232 { 0x00000179, 0x0000 },
233 { 0x00000181, 0x0000 },
234 { 0x00000182, 0x0000 },
235 { 0x00000183, 0x0000 },
236 { 0x00000184, 0x0000 },
237 { 0x00000185, 0x0000 },
238 { 0x00000186, 0x0000 },
239 { 0x00000187, 0x0001 },
240 { 0x00000189, 0x0000 },
241 { 0x0000018A, 0x0004 },
242 { 0x00000191, 0x0000 },
243 { 0x00000192, 0x0008 },
244 { 0x00000193, 0x0018 },
245 { 0x00000194, 0x007D },
246 { 0x00000195, 0x0004 },
247 { 0x00000196, 0x0000 },
248 { 0x00000199, 0x0000 },
249 { 0x000001A1, 0x0000 },
250 { 0x000001A2, 0x0000 },
251 { 0x000001A3, 0x0000 },
252 { 0x000001A4, 0x0000 },
253 { 0x000001A5, 0x0000 },
254 { 0x000001A6, 0x0000 },
255 { 0x000001A7, 0x0001 },
256 { 0x000001A9, 0x0000 },
257 { 0x000001AA, 0x0004 },
258 { 0x00000200, 0x0006 },
259 { 0x00000210, 0x00D4 },
260 { 0x00000212, 0x0000 },
261 { 0x00000213, 0x0344 },
262 { 0x00000218, 0x01A6 },
263 { 0x00000219, 0x01A6 },
264 { 0x0000021A, 0x01A6 },
265 { 0x00000293, 0x0080 },
266 { 0x0000029B, 0x0000 },
267 { 0x000002A2, 0x0000 },
268 { 0x000002A3, 0x1102 },
269 { 0x000002A4, 0x009F },
270 { 0x000002A6, 0x3737 },
271 { 0x000002A7, 0x2C37 },
272 { 0x000002A8, 0x1422 },
273 { 0x000002A9, 0x030A },
274 { 0x000002CB, 0x0000 },
275 { 0x000002D3, 0x0000 },
276 { 0x00000300, 0x0000 },
277 { 0x00000308, 0x0000 },
278 { 0x00000309, 0x0022 },
279 { 0x0000030C, 0x0002 },
280 { 0x00000310, 0x2080 },
281 { 0x00000311, 0x0180 },
282 { 0x00000312, 0x0000 },
283 { 0x00000314, 0x0080 },
284 { 0x00000315, 0x0180 },
285 { 0x00000316, 0x0000 },
286 { 0x00000318, 0x2080 },
287 { 0x00000319, 0x0180 },
288 { 0x0000031A, 0x0000 },
289 { 0x00000400, 0x0000 },
290 { 0x00000408, 0x0000 },
291 { 0x00000409, 0x0022 },
292 { 0x00000410, 0x2080 },
293 { 0x00000411, 0x0180 },
294 { 0x00000413, 0x0001 },
295 { 0x00000414, 0x0080 },
296 { 0x00000415, 0x0180 },
297 { 0x00000417, 0x0002 },
298 { 0x00000418, 0x2080 },
299 { 0x00000419, 0x0180 },
300 { 0x0000041B, 0x0004 },
301 { 0x0000041C, 0x0080 },
302 { 0x0000041D, 0x0180 },
303 { 0x0000041F, 0x0008 },
304 { 0x00000420, 0x2080 },
305 { 0x00000421, 0x0180 },
306 { 0x00000423, 0x0010 },
307 { 0x00000428, 0x0000 },
308 { 0x00000429, 0x0180 },
309 { 0x0000042B, 0x0040 },
310 { 0x0000042C, 0x0000 },
311 { 0x0000042D, 0x0180 },
312 { 0x0000042F, 0x0080 },
313 { 0x00000430, 0x0000 },
314 { 0x00000431, 0x0180 },
315 { 0x00000433, 0x0100 },
316 { 0x00000434, 0x0000 },
317 { 0x00000435, 0x0180 },
318 { 0x00000437, 0x0200 },
319 { 0x00000440, 0x002F },
320 { 0x00000441, 0xC759 },
321 { 0x00000442, 0x2A08 },
322 { 0x00000443, 0x5CFA },
323 { 0x00000448, 0x03EF },
324 { 0x00000450, 0x0000 },
325 { 0x00000451, 0x0000 },
326 { 0x00000458, 0x0000 },
327 { 0x00000490, 0x0069 },
328 { 0x00000491, 0x0000 },
329 { 0x0000049A, 0x0000 },
330 { 0x00000500, 0x000C },
331 { 0x00000501, 0x0008 },
332 { 0x00000502, 0x0000 },
333 { 0x00000503, 0x0000 },
334 { 0x00000504, 0x0000 },
335 { 0x00000506, 0x0040 },
336 { 0x00000507, 0x1818 },
337 { 0x00000508, 0x1818 },
338 { 0x00000509, 0x0000 },
339 { 0x0000050A, 0x0001 },
340 { 0x0000050B, 0x0002 },
341 { 0x0000050C, 0x0003 },
342 { 0x0000050D, 0x0004 },
343 { 0x0000050E, 0x0005 },
344 { 0x00000511, 0x0000 },
345 { 0x00000512, 0x0001 },
346 { 0x00000513, 0x0002 },
347 { 0x00000514, 0x0003 },
348 { 0x00000515, 0x0004 },
349 { 0x00000516, 0x0005 },
350 { 0x00000519, 0x0000 },
351 { 0x0000051A, 0x0000 },
352 { 0x00000540, 0x000C },
353 { 0x00000541, 0x0008 },
354 { 0x00000542, 0x0000 },
355 { 0x00000543, 0x0000 },
356 { 0x00000544, 0x0000 },
357 { 0x00000546, 0x0040 },
358 { 0x00000547, 0x1818 },
359 { 0x00000548, 0x1818 },
360 { 0x00000549, 0x0000 },
361 { 0x0000054A, 0x0001 },
362 { 0x0000054B, 0x0002 },
363 { 0x0000054C, 0x0003 },
364 { 0x0000054D, 0x0004 },
365 { 0x0000054E, 0x0005 },
366 { 0x00000551, 0x0000 },
367 { 0x00000552, 0x0001 },
368 { 0x00000553, 0x0002 },
369 { 0x00000554, 0x0003 },
370 { 0x00000555, 0x0004 },
371 { 0x00000556, 0x0005 },
372 { 0x00000559, 0x0000 },
373 { 0x0000055A, 0x0000 },
374 { 0x00000580, 0x000C },
375 { 0x00000581, 0x0008 },
376 { 0x00000582, 0x0000 },
377 { 0x00000583, 0x0000 },
378 { 0x00000584, 0x0000 },
379 { 0x00000586, 0x0040 },
380 { 0x00000587, 0x1818 },
381 { 0x00000588, 0x1818 },
382 { 0x00000589, 0x0000 },
383 { 0x0000058A, 0x0001 },
384 { 0x00000591, 0x0000 },
385 { 0x00000592, 0x0001 },
386 { 0x00000599, 0x0000 },
387 { 0x0000059A, 0x0000 },
388 { 0x000005C2, 0x0000 },
389 { 0x000005C3, 0x0000 },
390 { 0x000005C4, 0x0B01 },
391 { 0x000005C5, 0x0000 },
392 { 0x000005E3, 0x0004 },
393 { 0x000005E5, 0x0000 },
394 { 0x000005E6, 0x0000 },
395 { 0x000005E9, 0x0000 },
396 { 0x000005EA, 0x0000 },
397 { 0x000005EB, 0x0000 },
398 { 0x000005F5, 0x0000 },
399 { 0x000005F6, 0x0000 },
400 { 0x00000640, 0x0000 },
401 { 0x00000641, 0x0080 },
402 { 0x00000642, 0x0000 },
403 { 0x00000643, 0x0080 },
404 { 0x00000644, 0x0000 },
405 { 0x00000645, 0x0080 },
406 { 0x00000646, 0x0000 },
407 { 0x00000647, 0x0080 },
408 { 0x00000648, 0x0000 },
409 { 0x00000649, 0x0080 },
410 { 0x0000064A, 0x0000 },
411 { 0x0000064B, 0x0080 },
412 { 0x0000064C, 0x0000 },
413 { 0x0000064D, 0x0080 },
414 { 0x0000064E, 0x0000 },
415 { 0x0000064F, 0x0080 },
416 { 0x00000680, 0x0000 },
417 { 0x00000681, 0x0080 },
418 { 0x00000682, 0x0000 },
419 { 0x00000683, 0x0080 },
420 { 0x00000684, 0x0000 },
421 { 0x00000685, 0x0080 },
422 { 0x00000686, 0x0000 },
423 { 0x00000687, 0x0080 },
424 { 0x00000688, 0x0000 },
425 { 0x00000689, 0x0080 },
426 { 0x0000068A, 0x0000 },
427 { 0x0000068B, 0x0080 },
428 { 0x0000068C, 0x0000 },
429 { 0x0000068D, 0x0080 },
430 { 0x0000068E, 0x0000 },
431 { 0x0000068F, 0x0080 },
432 { 0x00000690, 0x0000 },
433 { 0x00000691, 0x0080 },
434 { 0x00000692, 0x0000 },
435 { 0x00000693, 0x0080 },
436 { 0x00000694, 0x0000 },
437 { 0x00000695, 0x0080 },
438 { 0x00000696, 0x0000 },
439 { 0x00000697, 0x0080 },
440 { 0x00000698, 0x0000 },
441 { 0x00000699, 0x0080 },
442 { 0x0000069A, 0x0000 },
443 { 0x0000069B, 0x0080 },
444 { 0x0000069C, 0x0000 },
445 { 0x0000069D, 0x0080 },
446 { 0x0000069E, 0x0000 },
447 { 0x0000069F, 0x0080 },
448 { 0x000006A0, 0x0000 },
449 { 0x000006A1, 0x0080 },
450 { 0x000006A2, 0x0000 },
451 { 0x000006A3, 0x0080 },
452 { 0x000006A4, 0x0000 },
453 { 0x000006A5, 0x0080 },
454 { 0x000006A6, 0x0000 },
455 { 0x000006A7, 0x0080 },
456 { 0x000006B0, 0x0000 },
457 { 0x000006B1, 0x0080 },
458 { 0x000006B2, 0x0000 },
459 { 0x000006B3, 0x0080 },
460 { 0x000006B4, 0x0000 },
461 { 0x000006B5, 0x0080 },
462 { 0x000006B6, 0x0000 },
463 { 0x000006B7, 0x0080 },
464 { 0x000006B8, 0x0000 },
465 { 0x000006B9, 0x0080 },
466 { 0x000006BA, 0x0000 },
467 { 0x000006BB, 0x0080 },
468 { 0x000006BC, 0x0000 },
469 { 0x000006BD, 0x0080 },
470 { 0x000006BE, 0x0000 },
471 { 0x000006BF, 0x0080 },
472 { 0x000006C0, 0x0000 },
473 { 0x000006C1, 0x0080 },
474 { 0x000006C2, 0x0000 },
475 { 0x000006C3, 0x0080 },
476 { 0x000006C4, 0x0000 },
477 { 0x000006C5, 0x0080 },
478 { 0x000006C6, 0x0000 },
479 { 0x000006C7, 0x0080 },
480 { 0x000006C8, 0x0000 },
481 { 0x000006C9, 0x0080 },
482 { 0x000006CA, 0x0000 },
483 { 0x000006CB, 0x0080 },
484 { 0x000006CC, 0x0000 },
485 { 0x000006CD, 0x0080 },
486 { 0x000006CE, 0x0000 },
487 { 0x000006CF, 0x0080 },
488 { 0x00000700, 0x0000 },
489 { 0x00000701, 0x0080 },
490 { 0x00000702, 0x0000 },
491 { 0x00000703, 0x0080 },
492 { 0x00000704, 0x0000 },
493 { 0x00000705, 0x0080 },
494 { 0x00000706, 0x0000 },
495 { 0x00000707, 0x0080 },
496 { 0x00000708, 0x0000 },
497 { 0x00000709, 0x0080 },
498 { 0x0000070A, 0x0000 },
499 { 0x0000070B, 0x0080 },
500 { 0x0000070C, 0x0000 },
501 { 0x0000070D, 0x0080 },
502 { 0x0000070E, 0x0000 },
503 { 0x0000070F, 0x0080 },
504 { 0x00000710, 0x0000 },
505 { 0x00000711, 0x0080 },
506 { 0x00000712, 0x0000 },
507 { 0x00000713, 0x0080 },
508 { 0x00000714, 0x0000 },
509 { 0x00000715, 0x0080 },
510 { 0x00000716, 0x0000 },
511 { 0x00000717, 0x0080 },
512 { 0x00000718, 0x0000 },
513 { 0x00000719, 0x0080 },
514 { 0x0000071A, 0x0000 },
515 { 0x0000071B, 0x0080 },
516 { 0x0000071C, 0x0000 },
517 { 0x0000071D, 0x0080 },
518 { 0x0000071E, 0x0000 },
519 { 0x0000071F, 0x0080 },
520 { 0x00000720, 0x0000 },
521 { 0x00000721, 0x0080 },
522 { 0x00000722, 0x0000 },
523 { 0x00000723, 0x0080 },
524 { 0x00000724, 0x0000 },
525 { 0x00000725, 0x0080 },
526 { 0x00000726, 0x0000 },
527 { 0x00000727, 0x0080 },
528 { 0x00000728, 0x0000 },
529 { 0x00000729, 0x0080 },
530 { 0x0000072A, 0x0000 },
531 { 0x0000072B, 0x0080 },
532 { 0x0000072C, 0x0000 },
533 { 0x0000072D, 0x0080 },
534 { 0x0000072E, 0x0000 },
535 { 0x0000072F, 0x0080 },
536 { 0x00000740, 0x0000 },
537 { 0x00000741, 0x0080 },
538 { 0x00000742, 0x0000 },
539 { 0x00000743, 0x0080 },
540 { 0x00000744, 0x0000 },
541 { 0x00000745, 0x0080 },
542 { 0x00000746, 0x0000 },
543 { 0x00000747, 0x0080 },
544 { 0x00000748, 0x0000 },
545 { 0x00000749, 0x0080 },
546 { 0x0000074A, 0x0000 },
547 { 0x0000074B, 0x0080 },
548 { 0x0000074C, 0x0000 },
549 { 0x0000074D, 0x0080 },
550 { 0x0000074E, 0x0000 },
551 { 0x0000074F, 0x0080 },
552 { 0x00000750, 0x0000 },
553 { 0x00000751, 0x0080 },
554 { 0x00000752, 0x0000 },
555 { 0x00000753, 0x0080 },
556 { 0x00000754, 0x0000 },
557 { 0x00000755, 0x0080 },
558 { 0x00000756, 0x0000 },
559 { 0x00000757, 0x0080 },
560 { 0x00000758, 0x0000 },
561 { 0x00000759, 0x0080 },
562 { 0x0000075A, 0x0000 },
563 { 0x0000075B, 0x0080 },
564 { 0x0000075C, 0x0000 },
565 { 0x0000075D, 0x0080 },
566 { 0x0000075E, 0x0000 },
567 { 0x0000075F, 0x0080 },
568 { 0x00000760, 0x0000 },
569 { 0x00000761, 0x0080 },
570 { 0x00000762, 0x0000 },
571 { 0x00000763, 0x0080 },
572 { 0x00000764, 0x0000 },
573 { 0x00000765, 0x0080 },
574 { 0x00000766, 0x0000 },
575 { 0x00000767, 0x0080 },
576 { 0x00000768, 0x0000 },
577 { 0x00000769, 0x0080 },
578 { 0x0000076A, 0x0000 },
579 { 0x0000076B, 0x0080 },
580 { 0x0000076C, 0x0000 },
581 { 0x0000076D, 0x0080 },
582 { 0x0000076E, 0x0000 },
583 { 0x0000076F, 0x0080 },
584 { 0x00000780, 0x0000 },
585 { 0x00000781, 0x0080 },
586 { 0x00000782, 0x0000 },
587 { 0x00000783, 0x0080 },
588 { 0x00000784, 0x0000 },
589 { 0x00000785, 0x0080 },
590 { 0x00000786, 0x0000 },
591 { 0x00000787, 0x0080 },
592 { 0x00000788, 0x0000 },
593 { 0x00000789, 0x0080 },
594 { 0x0000078A, 0x0000 },
595 { 0x0000078B, 0x0080 },
596 { 0x0000078C, 0x0000 },
597 { 0x0000078D, 0x0080 },
598 { 0x0000078E, 0x0000 },
599 { 0x0000078F, 0x0080 },
600 { 0x000007C0, 0x0000 },
601 { 0x000007C1, 0x0080 },
602 { 0x000007C8, 0x0000 },
603 { 0x000007C9, 0x0080 },
604 { 0x000007D0, 0x0000 },
605 { 0x000007D1, 0x0080 },
606 { 0x000007D8, 0x0000 },
607 { 0x000007D9, 0x0080 },
608 { 0x000007E0, 0x0000 },
609 { 0x000007E1, 0x0080 },
610 { 0x000007E8, 0x0000 },
611 { 0x000007E9, 0x0080 },
612 { 0x00000800, 0x0000 },
613 { 0x00000801, 0x0080 },
614 { 0x00000808, 0x0000 },
615 { 0x00000809, 0x0080 },
616 { 0x00000880, 0x0000 },
617 { 0x00000881, 0x0080 },
618 { 0x00000888, 0x0000 },
619 { 0x00000889, 0x0080 },
620 { 0x00000890, 0x0000 },
621 { 0x00000891, 0x0080 },
622 { 0x00000898, 0x0000 },
623 { 0x00000899, 0x0080 },
624 { 0x000008C0, 0x0000 },
625 { 0x000008C1, 0x0080 },
626 { 0x000008C8, 0x0000 },
627 { 0x000008C9, 0x0080 },
628 { 0x00000900, 0x0000 },
629 { 0x00000901, 0x0080 },
630 { 0x00000902, 0x0000 },
631 { 0x00000903, 0x0080 },
632 { 0x00000904, 0x0000 },
633 { 0x00000905, 0x0080 },
634 { 0x00000906, 0x0000 },
635 { 0x00000907, 0x0080 },
636 { 0x00000908, 0x0000 },
637 { 0x00000909, 0x0080 },
638 { 0x0000090A, 0x0000 },
639 { 0x0000090B, 0x0080 },
640 { 0x0000090C, 0x0000 },
641 { 0x0000090D, 0x0080 },
642 { 0x0000090E, 0x0000 },
643 { 0x0000090F, 0x0080 },
644 { 0x00000910, 0x0000 },
645 { 0x00000911, 0x0080 },
646 { 0x00000912, 0x0000 },
647 { 0x00000913, 0x0080 },
648 { 0x00000914, 0x0000 },
649 { 0x00000915, 0x0080 },
650 { 0x00000916, 0x0000 },
651 { 0x00000917, 0x0080 },
652 { 0x00000918, 0x0000 },
653 { 0x00000919, 0x0080 },
654 { 0x0000091A, 0x0000 },
655 { 0x0000091B, 0x0080 },
656 { 0x0000091C, 0x0000 },
657 { 0x0000091D, 0x0080 },
658 { 0x0000091E, 0x0000 },
659 { 0x0000091F, 0x0080 },
660 { 0x00000A80, 0x0000 },
661 { 0x00000A88, 0x0000 },
662 { 0x00000A90, 0x0000 },
663 { 0x00000A98, 0x0000 },
664 { 0x00000B00, 0x0000 },
665 { 0x00000B08, 0x0000 },
666 { 0x00000B10, 0x0000 },
667 { 0x00000B18, 0x0000 },
668 { 0x00000B20, 0x0000 },
669 { 0x00000B28, 0x0000 },
670 { 0x00000B30, 0x0000 },
671 { 0x00000B38, 0x0000 },
672 { 0x00000B40, 0x0000 },
673 { 0x00000B48, 0x0000 },
674 { 0x00000B60, 0x0000 },
675 { 0x00000B68, 0x0000 },
676 { 0x00000C00, 0xA101 },
677 { 0x00000C01, 0xA101 },
678 { 0x00000C02, 0xA101 },
679 { 0x00000C03, 0xA101 },
680 { 0x00000C04, 0xA101 },
681 { 0x00000C0F, 0x0400 },
682 { 0x00000C10, 0x1000 },
683 { 0x00000C18, 0x0000 },
684 { 0x00000C20, 0x8002 },
685 { 0x00000C21, 0x0001 },
686 { 0x00000C22, 0x0000 },
687 { 0x00000C23, 0x0000 },
688 { 0x00000C24, 0x0000 },
689 { 0x00000C25, 0x0000 },
690 { 0x00000D08, 0xFFFF },
691 { 0x00000D09, 0xFFFF },
692 { 0x00000D0A, 0xFFFF },
693 { 0x00000D0B, 0xFFFF },
694 { 0x00000D0C, 0xFEFF },
695 { 0x00000D0F, 0x0000 },
696 { 0x00000D18, 0xFFFF },
697 { 0x00000D19, 0xFFFF },
698 { 0x00000D1A, 0xFFFF },
699 { 0x00000D1B, 0xFFFF },
700 { 0x00000D1C, 0xFEFF },
701 { 0x00000D1F, 0x0000 },
702 { 0x00000D53, 0xFFFF },
703 { 0x00000D54, 0xFFFF },
704 { 0x00000D56, 0x0000 },
705 { 0x00000E00, 0x0000 },
706 { 0x00000E10, 0x6318 },
707 { 0x00000E11, 0x6300 },
708 { 0x00000E12, 0x0FC8 },
709 { 0x00000E13, 0x03FE },
710 { 0x00000E14, 0x00E0 },
711 { 0x00000E15, 0x1EC4 },
712 { 0x00000E16, 0xF136 },
713 { 0x00000E17, 0x0409 },
714 { 0x00000E18, 0x04CC },
715 { 0x00000E19, 0x1C9B },
716 { 0x00000E1A, 0xF337 },
717 { 0x00000E1B, 0x040B },
718 { 0x00000E1C, 0x0CBB },
719 { 0x00000E1D, 0x16F8 },
720 { 0x00000E1E, 0xF7D9 },
721 { 0x00000E1F, 0x040A },
722 { 0x00000E20, 0x1F14 },
723 { 0x00000E21, 0x058C },
724 { 0x00000E22, 0x0563 },
725 { 0x00000E23, 0x4000 },
726 { 0x00000E24, 0x0B75 },
727 { 0x00000E26, 0x6318 },
728 { 0x00000E27, 0x6300 },
729 { 0x00000E28, 0x0FC8 },
730 { 0x00000E29, 0x03FE },
731 { 0x00000E2A, 0x00E0 },
732 { 0x00000E2B, 0x1EC4 },
733 { 0x00000E2C, 0xF136 },
734 { 0x00000E2D, 0x0409 },
735 { 0x00000E2E, 0x04CC },
736 { 0x00000E2F, 0x1C9B },
737 { 0x00000E30, 0xF337 },
738 { 0x00000E31, 0x040B },
739 { 0x00000E32, 0x0CBB },
740 { 0x00000E33, 0x16F8 },
741 { 0x00000E34, 0xF7D9 },
742 { 0x00000E35, 0x040A },
743 { 0x00000E36, 0x1F14 },
744 { 0x00000E37, 0x058C },
745 { 0x00000E38, 0x0563 },
746 { 0x00000E39, 0x4000 },
747 { 0x00000E3A, 0x0B75 },
748 { 0x00000E3C, 0x6318 },
749 { 0x00000E3D, 0x6300 },
750 { 0x00000E3E, 0x0FC8 },
751 { 0x00000E3F, 0x03FE },
752 { 0x00000E40, 0x00E0 },
753 { 0x00000E41, 0x1EC4 },
754 { 0x00000E42, 0xF136 },
755 { 0x00000E43, 0x0409 },
756 { 0x00000E44, 0x04CC },
757 { 0x00000E45, 0x1C9B },
758 { 0x00000E46, 0xF337 },
759 { 0x00000E47, 0x040B },
760 { 0x00000E48, 0x0CBB },
761 { 0x00000E49, 0x16F8 },
762 { 0x00000E4A, 0xF7D9 },
763 { 0x00000E4B, 0x040A },
764 { 0x00000E4C, 0x1F14 },
765 { 0x00000E4D, 0x058C },
766 { 0x00000E4E, 0x0563 },
767 { 0x00000E4F, 0x4000 },
768 { 0x00000E50, 0x0B75 },
769 { 0x00000E52, 0x6318 },
770 { 0x00000E53, 0x6300 },
771 { 0x00000E54, 0x0FC8 },
772 { 0x00000E55, 0x03FE },
773 { 0x00000E56, 0x00E0 },
774 { 0x00000E57, 0x1EC4 },
775 { 0x00000E58, 0xF136 },
776 { 0x00000E59, 0x0409 },
777 { 0x00000E5A, 0x04CC },
778 { 0x00000E5B, 0x1C9B },
779 { 0x00000E5C, 0xF337 },
780 { 0x00000E5D, 0x040B },
781 { 0x00000E5E, 0x0CBB },
782 { 0x00000E5F, 0x16F8 },
783 { 0x00000E60, 0xF7D9 },
784 { 0x00000E61, 0x040A },
785 { 0x00000E62, 0x1F14 },
786 { 0x00000E63, 0x058C },
787 { 0x00000E64, 0x0563 },
788 { 0x00000E65, 0x4000 },
789 { 0x00000E66, 0x0B75 },
790 { 0x00000E80, 0x0018 },
791 { 0x00000E81, 0x0933 },
792 { 0x00000E82, 0x0018 },
793 { 0x00000E83, 0x0000 },
794 { 0x00000E84, 0x0000 },
795 { 0x00000EC0, 0x0000 },
796 { 0x00000EC1, 0x0000 },
797 { 0x00000EC4, 0x0000 },
798 { 0x00000EC5, 0x0000 },
799 { 0x00000EC8, 0x0000 },
800 { 0x00000EC9, 0x0000 },
801 { 0x00000ECC, 0x0000 },
802 { 0x00000ECD, 0x0000 },
803 { 0x00000EE0, 0x0000 },
804 { 0x00000EE2, 0x0000 },
805 { 0x00000EE3, 0x4000 },
806 { 0x00000EF0, 0x0000 },
807 { 0x00000EF1, 0x0001 },
808 { 0x00000EF2, 0x0000 },
809 { 0x00000EF3, 0x0000 },
810 { 0x00000EF4, 0x0001 },
811 { 0x00000EF5, 0x0000 },
812 { 0x00001700, 0x0000 },
813 { 0x00001701, 0x0000 },
814 { 0x00001702, 0x0000 },
815 { 0x00001703, 0x0000 },
816 { 0x00001704, 0x0000 },
817 { 0x00001705, 0x0000 },
818};
819
820static bool wm8998_readable_register(struct device *dev, unsigned int reg)
821{
822 switch (reg) {
823 case ARIZONA_SOFTWARE_RESET:
824 case ARIZONA_DEVICE_REVISION:
825 case ARIZONA_CTRL_IF_I2C1_CFG_1:
826 case ARIZONA_CTRL_IF_I2C1_CFG_2:
827 case ARIZONA_WRITE_SEQUENCER_CTRL_0:
828 case ARIZONA_WRITE_SEQUENCER_CTRL_1:
829 case ARIZONA_WRITE_SEQUENCER_CTRL_2:
830 case ARIZONA_TONE_GENERATOR_1:
831 case ARIZONA_TONE_GENERATOR_2:
832 case ARIZONA_TONE_GENERATOR_3:
833 case ARIZONA_TONE_GENERATOR_4:
834 case ARIZONA_TONE_GENERATOR_5:
835 case ARIZONA_PWM_DRIVE_1:
836 case ARIZONA_PWM_DRIVE_2:
837 case ARIZONA_PWM_DRIVE_3:
838 case ARIZONA_WAKE_CONTROL:
839 case ARIZONA_SEQUENCE_CONTROL:
840 case ARIZONA_SAMPLE_RATE_SEQUENCE_SELECT_1:
841 case ARIZONA_SAMPLE_RATE_SEQUENCE_SELECT_2:
842 case ARIZONA_SAMPLE_RATE_SEQUENCE_SELECT_3:
843 case ARIZONA_SAMPLE_RATE_SEQUENCE_SELECT_4:
844 case ARIZONA_ALWAYS_ON_TRIGGERS_SEQUENCE_SELECT_1:
845 case ARIZONA_ALWAYS_ON_TRIGGERS_SEQUENCE_SELECT_2:
846 case ARIZONA_ALWAYS_ON_TRIGGERS_SEQUENCE_SELECT_3:
847 case ARIZONA_ALWAYS_ON_TRIGGERS_SEQUENCE_SELECT_4:
848 case ARIZONA_ALWAYS_ON_TRIGGERS_SEQUENCE_SELECT_5:
849 case ARIZONA_ALWAYS_ON_TRIGGERS_SEQUENCE_SELECT_6:
850 case ARIZONA_HAPTICS_CONTROL_1:
851 case ARIZONA_HAPTICS_CONTROL_2:
852 case ARIZONA_HAPTICS_PHASE_1_INTENSITY:
853 case ARIZONA_HAPTICS_PHASE_1_DURATION:
854 case ARIZONA_HAPTICS_PHASE_2_INTENSITY:
855 case ARIZONA_HAPTICS_PHASE_2_DURATION:
856 case ARIZONA_HAPTICS_PHASE_3_INTENSITY:
857 case ARIZONA_HAPTICS_PHASE_3_DURATION:
858 case ARIZONA_HAPTICS_STATUS:
859 case ARIZONA_CLOCK_32K_1:
860 case ARIZONA_SYSTEM_CLOCK_1:
861 case ARIZONA_SAMPLE_RATE_1:
862 case ARIZONA_SAMPLE_RATE_2:
863 case ARIZONA_SAMPLE_RATE_3:
864 case ARIZONA_SAMPLE_RATE_1_STATUS:
865 case ARIZONA_SAMPLE_RATE_2_STATUS:
866 case ARIZONA_SAMPLE_RATE_3_STATUS:
867 case ARIZONA_ASYNC_CLOCK_1:
868 case ARIZONA_ASYNC_SAMPLE_RATE_1:
869 case ARIZONA_ASYNC_SAMPLE_RATE_1_STATUS:
870 case ARIZONA_ASYNC_SAMPLE_RATE_2:
871 case ARIZONA_ASYNC_SAMPLE_RATE_2_STATUS:
872 case ARIZONA_OUTPUT_SYSTEM_CLOCK:
873 case ARIZONA_OUTPUT_ASYNC_CLOCK:
874 case ARIZONA_RATE_ESTIMATOR_1:
875 case ARIZONA_RATE_ESTIMATOR_2:
876 case ARIZONA_RATE_ESTIMATOR_3:
877 case ARIZONA_RATE_ESTIMATOR_4:
878 case ARIZONA_RATE_ESTIMATOR_5:
879 case ARIZONA_DYNAMIC_FREQUENCY_SCALING_1:
880 case ARIZONA_FLL1_CONTROL_1:
881 case ARIZONA_FLL1_CONTROL_2:
882 case ARIZONA_FLL1_CONTROL_3:
883 case ARIZONA_FLL1_CONTROL_4:
884 case ARIZONA_FLL1_CONTROL_5:
885 case ARIZONA_FLL1_CONTROL_6:
886 case ARIZONA_FLL1_CONTROL_7:
887 case ARIZONA_FLL1_SYNCHRONISER_1:
888 case ARIZONA_FLL1_SYNCHRONISER_2:
889 case ARIZONA_FLL1_SYNCHRONISER_3:
890 case ARIZONA_FLL1_SYNCHRONISER_4:
891 case ARIZONA_FLL1_SYNCHRONISER_5:
892 case ARIZONA_FLL1_SYNCHRONISER_6:
893 case ARIZONA_FLL1_SYNCHRONISER_7:
894 case ARIZONA_FLL1_SPREAD_SPECTRUM:
895 case ARIZONA_FLL1_GPIO_CLOCK:
896 case ARIZONA_FLL2_CONTROL_1:
897 case ARIZONA_FLL2_CONTROL_2:
898 case ARIZONA_FLL2_CONTROL_3:
899 case ARIZONA_FLL2_CONTROL_4:
900 case ARIZONA_FLL2_CONTROL_5:
901 case ARIZONA_FLL2_CONTROL_6:
902 case ARIZONA_FLL2_CONTROL_7:
903 case ARIZONA_FLL2_SYNCHRONISER_1:
904 case ARIZONA_FLL2_SYNCHRONISER_2:
905 case ARIZONA_FLL2_SYNCHRONISER_3:
906 case ARIZONA_FLL2_SYNCHRONISER_4:
907 case ARIZONA_FLL2_SYNCHRONISER_5:
908 case ARIZONA_FLL2_SYNCHRONISER_6:
909 case ARIZONA_FLL2_SYNCHRONISER_7:
910 case ARIZONA_FLL2_SPREAD_SPECTRUM:
911 case ARIZONA_FLL2_GPIO_CLOCK:
912 case ARIZONA_MIC_CHARGE_PUMP_1:
913 case ARIZONA_LDO1_CONTROL_1:
914 case ARIZONA_LDO1_CONTROL_2:
915 case ARIZONA_LDO2_CONTROL_1:
916 case ARIZONA_MIC_BIAS_CTRL_1:
917 case ARIZONA_MIC_BIAS_CTRL_2:
918 case ARIZONA_MIC_BIAS_CTRL_3:
919 case ARIZONA_ACCESSORY_DETECT_MODE_1:
920 case ARIZONA_HEADPHONE_DETECT_1:
921 case ARIZONA_HEADPHONE_DETECT_2:
922 case ARIZONA_MICD_CLAMP_CONTROL:
923 case ARIZONA_MIC_DETECT_1:
924 case ARIZONA_MIC_DETECT_2:
925 case ARIZONA_MIC_DETECT_3:
926 case ARIZONA_MIC_DETECT_4:
927 case ARIZONA_MIC_DETECT_LEVEL_1:
928 case ARIZONA_MIC_DETECT_LEVEL_2:
929 case ARIZONA_MIC_DETECT_LEVEL_3:
930 case ARIZONA_MIC_DETECT_LEVEL_4:
931 case ARIZONA_ISOLATION_CONTROL:
932 case ARIZONA_JACK_DETECT_ANALOGUE:
933 case ARIZONA_INPUT_ENABLES:
934 case ARIZONA_INPUT_ENABLES_STATUS:
935 case ARIZONA_INPUT_RATE:
936 case ARIZONA_INPUT_VOLUME_RAMP:
937 case ARIZONA_HPF_CONTROL:
938 case ARIZONA_IN1L_CONTROL:
939 case ARIZONA_ADC_DIGITAL_VOLUME_1L:
940 case ARIZONA_DMIC1L_CONTROL:
941 case ARIZONA_IN1R_CONTROL:
942 case ARIZONA_ADC_DIGITAL_VOLUME_1R:
943 case ARIZONA_DMIC1R_CONTROL:
944 case ARIZONA_IN2L_CONTROL:
945 case ARIZONA_ADC_DIGITAL_VOLUME_2L:
946 case ARIZONA_DMIC2L_CONTROL:
947 case ARIZONA_OUTPUT_ENABLES_1:
948 case ARIZONA_OUTPUT_STATUS_1:
949 case ARIZONA_RAW_OUTPUT_STATUS_1:
950 case ARIZONA_OUTPUT_RATE_1:
951 case ARIZONA_OUTPUT_VOLUME_RAMP:
952 case ARIZONA_OUTPUT_PATH_CONFIG_1L:
953 case ARIZONA_DAC_DIGITAL_VOLUME_1L:
954 case ARIZONA_NOISE_GATE_SELECT_1L:
955 case ARIZONA_OUTPUT_PATH_CONFIG_1R:
956 case ARIZONA_DAC_DIGITAL_VOLUME_1R:
957 case ARIZONA_NOISE_GATE_SELECT_1R:
958 case ARIZONA_OUTPUT_PATH_CONFIG_2L:
959 case ARIZONA_DAC_DIGITAL_VOLUME_2L:
960 case ARIZONA_NOISE_GATE_SELECT_2L:
961 case ARIZONA_OUTPUT_PATH_CONFIG_2R:
962 case ARIZONA_DAC_DIGITAL_VOLUME_2R:
963 case ARIZONA_NOISE_GATE_SELECT_2R:
964 case ARIZONA_OUTPUT_PATH_CONFIG_3L:
965 case ARIZONA_DAC_DIGITAL_VOLUME_3L:
966 case ARIZONA_NOISE_GATE_SELECT_3L:
967 case ARIZONA_OUTPUT_PATH_CONFIG_4L:
968 case ARIZONA_DAC_DIGITAL_VOLUME_4L:
969 case ARIZONA_NOISE_GATE_SELECT_4L:
970 case ARIZONA_OUTPUT_PATH_CONFIG_4R:
971 case ARIZONA_DAC_DIGITAL_VOLUME_4R:
972 case ARIZONA_NOISE_GATE_SELECT_4R:
973 case ARIZONA_OUTPUT_PATH_CONFIG_5L:
974 case ARIZONA_DAC_DIGITAL_VOLUME_5L:
975 case ARIZONA_NOISE_GATE_SELECT_5L:
976 case ARIZONA_OUTPUT_PATH_CONFIG_5R:
977 case ARIZONA_DAC_DIGITAL_VOLUME_5R:
978 case ARIZONA_NOISE_GATE_SELECT_5R:
979 case ARIZONA_DRE_ENABLE:
980 case ARIZONA_DRE_CONTROL_1:
981 case ARIZONA_DRE_CONTROL_2:
982 case ARIZONA_DRE_CONTROL_3:
983 case ARIZONA_EDRE_ENABLE:
984 case ARIZONA_DAC_AEC_CONTROL_1:
985 case ARIZONA_DAC_AEC_CONTROL_2:
986 case ARIZONA_NOISE_GATE_CONTROL:
987 case ARIZONA_PDM_SPK1_CTRL_1:
988 case ARIZONA_PDM_SPK1_CTRL_2:
989 case ARIZONA_HP_TEST_CTRL_13:
990 case ARIZONA_AIF1_BCLK_CTRL:
991 case ARIZONA_AIF1_TX_PIN_CTRL:
992 case ARIZONA_AIF1_RX_PIN_CTRL:
993 case ARIZONA_AIF1_RATE_CTRL:
994 case ARIZONA_AIF1_FORMAT:
995 case ARIZONA_AIF1_RX_BCLK_RATE:
996 case ARIZONA_AIF1_FRAME_CTRL_1:
997 case ARIZONA_AIF1_FRAME_CTRL_2:
998 case ARIZONA_AIF1_FRAME_CTRL_3:
999 case ARIZONA_AIF1_FRAME_CTRL_4:
1000 case ARIZONA_AIF1_FRAME_CTRL_5:
1001 case ARIZONA_AIF1_FRAME_CTRL_6:
1002 case ARIZONA_AIF1_FRAME_CTRL_7:
1003 case ARIZONA_AIF1_FRAME_CTRL_8:
1004 case ARIZONA_AIF1_FRAME_CTRL_11:
1005 case ARIZONA_AIF1_FRAME_CTRL_12:
1006 case ARIZONA_AIF1_FRAME_CTRL_13:
1007 case ARIZONA_AIF1_FRAME_CTRL_14:
1008 case ARIZONA_AIF1_FRAME_CTRL_15:
1009 case ARIZONA_AIF1_FRAME_CTRL_16:
1010 case ARIZONA_AIF1_TX_ENABLES:
1011 case ARIZONA_AIF1_RX_ENABLES:
1012 case ARIZONA_AIF2_BCLK_CTRL:
1013 case ARIZONA_AIF2_TX_PIN_CTRL:
1014 case ARIZONA_AIF2_RX_PIN_CTRL:
1015 case ARIZONA_AIF2_RATE_CTRL:
1016 case ARIZONA_AIF2_FORMAT:
1017 case ARIZONA_AIF2_RX_BCLK_RATE:
1018 case ARIZONA_AIF2_FRAME_CTRL_1:
1019 case ARIZONA_AIF2_FRAME_CTRL_2:
1020 case ARIZONA_AIF2_FRAME_CTRL_3:
1021 case ARIZONA_AIF2_FRAME_CTRL_4:
1022 case ARIZONA_AIF2_FRAME_CTRL_5:
1023 case ARIZONA_AIF2_FRAME_CTRL_6:
1024 case ARIZONA_AIF2_FRAME_CTRL_7:
1025 case ARIZONA_AIF2_FRAME_CTRL_8:
1026 case ARIZONA_AIF2_FRAME_CTRL_11:
1027 case ARIZONA_AIF2_FRAME_CTRL_12:
1028 case ARIZONA_AIF2_FRAME_CTRL_13:
1029 case ARIZONA_AIF2_FRAME_CTRL_14:
1030 case ARIZONA_AIF2_FRAME_CTRL_15:
1031 case ARIZONA_AIF2_FRAME_CTRL_16:
1032 case ARIZONA_AIF2_TX_ENABLES:
1033 case ARIZONA_AIF2_RX_ENABLES:
1034 case ARIZONA_AIF3_BCLK_CTRL:
1035 case ARIZONA_AIF3_TX_PIN_CTRL:
1036 case ARIZONA_AIF3_RX_PIN_CTRL:
1037 case ARIZONA_AIF3_RATE_CTRL:
1038 case ARIZONA_AIF3_FORMAT:
1039 case ARIZONA_AIF3_RX_BCLK_RATE:
1040 case ARIZONA_AIF3_FRAME_CTRL_1:
1041 case ARIZONA_AIF3_FRAME_CTRL_2:
1042 case ARIZONA_AIF3_FRAME_CTRL_3:
1043 case ARIZONA_AIF3_FRAME_CTRL_4:
1044 case ARIZONA_AIF3_FRAME_CTRL_11:
1045 case ARIZONA_AIF3_FRAME_CTRL_12:
1046 case ARIZONA_AIF3_TX_ENABLES:
1047 case ARIZONA_AIF3_RX_ENABLES:
1048 case ARIZONA_SPD1_TX_CONTROL:
1049 case ARIZONA_SPD1_TX_CHANNEL_STATUS_1:
1050 case ARIZONA_SPD1_TX_CHANNEL_STATUS_2:
1051 case ARIZONA_SPD1_TX_CHANNEL_STATUS_3:
1052 case ARIZONA_SLIMBUS_FRAMER_REF_GEAR:
1053 case ARIZONA_SLIMBUS_RATES_1:
1054 case ARIZONA_SLIMBUS_RATES_2:
1055 case ARIZONA_SLIMBUS_RATES_5:
1056 case ARIZONA_SLIMBUS_RATES_6:
1057 case ARIZONA_SLIMBUS_RATES_7:
1058 case ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE:
1059 case ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE:
1060 case ARIZONA_SLIMBUS_RX_PORT_STATUS:
1061 case ARIZONA_SLIMBUS_TX_PORT_STATUS:
1062 case ARIZONA_PWM1MIX_INPUT_1_SOURCE:
1063 case ARIZONA_PWM1MIX_INPUT_1_VOLUME:
1064 case ARIZONA_PWM1MIX_INPUT_2_SOURCE:
1065 case ARIZONA_PWM1MIX_INPUT_2_VOLUME:
1066 case ARIZONA_PWM1MIX_INPUT_3_SOURCE:
1067 case ARIZONA_PWM1MIX_INPUT_3_VOLUME:
1068 case ARIZONA_PWM1MIX_INPUT_4_SOURCE:
1069 case ARIZONA_PWM1MIX_INPUT_4_VOLUME:
1070 case ARIZONA_PWM2MIX_INPUT_1_SOURCE:
1071 case ARIZONA_PWM2MIX_INPUT_1_VOLUME:
1072 case ARIZONA_PWM2MIX_INPUT_2_SOURCE:
1073 case ARIZONA_PWM2MIX_INPUT_2_VOLUME:
1074 case ARIZONA_PWM2MIX_INPUT_3_SOURCE:
1075 case ARIZONA_PWM2MIX_INPUT_3_VOLUME:
1076 case ARIZONA_PWM2MIX_INPUT_4_SOURCE:
1077 case ARIZONA_PWM2MIX_INPUT_4_VOLUME:
1078 case ARIZONA_OUT1LMIX_INPUT_1_SOURCE:
1079 case ARIZONA_OUT1LMIX_INPUT_1_VOLUME:
1080 case ARIZONA_OUT1LMIX_INPUT_2_SOURCE:
1081 case ARIZONA_OUT1LMIX_INPUT_2_VOLUME:
1082 case ARIZONA_OUT1LMIX_INPUT_3_SOURCE:
1083 case ARIZONA_OUT1LMIX_INPUT_3_VOLUME:
1084 case ARIZONA_OUT1LMIX_INPUT_4_SOURCE:
1085 case ARIZONA_OUT1LMIX_INPUT_4_VOLUME:
1086 case ARIZONA_OUT1RMIX_INPUT_1_SOURCE:
1087 case ARIZONA_OUT1RMIX_INPUT_1_VOLUME:
1088 case ARIZONA_OUT1RMIX_INPUT_2_SOURCE:
1089 case ARIZONA_OUT1RMIX_INPUT_2_VOLUME:
1090 case ARIZONA_OUT1RMIX_INPUT_3_SOURCE:
1091 case ARIZONA_OUT1RMIX_INPUT_3_VOLUME:
1092 case ARIZONA_OUT1RMIX_INPUT_4_SOURCE:
1093 case ARIZONA_OUT1RMIX_INPUT_4_VOLUME:
1094 case ARIZONA_OUT2LMIX_INPUT_1_SOURCE:
1095 case ARIZONA_OUT2LMIX_INPUT_1_VOLUME:
1096 case ARIZONA_OUT2LMIX_INPUT_2_SOURCE:
1097 case ARIZONA_OUT2LMIX_INPUT_2_VOLUME:
1098 case ARIZONA_OUT2LMIX_INPUT_3_SOURCE:
1099 case ARIZONA_OUT2LMIX_INPUT_3_VOLUME:
1100 case ARIZONA_OUT2LMIX_INPUT_4_SOURCE:
1101 case ARIZONA_OUT2LMIX_INPUT_4_VOLUME:
1102 case ARIZONA_OUT2RMIX_INPUT_1_SOURCE:
1103 case ARIZONA_OUT2RMIX_INPUT_1_VOLUME:
1104 case ARIZONA_OUT2RMIX_INPUT_2_SOURCE:
1105 case ARIZONA_OUT2RMIX_INPUT_2_VOLUME:
1106 case ARIZONA_OUT2RMIX_INPUT_3_SOURCE:
1107 case ARIZONA_OUT2RMIX_INPUT_3_VOLUME:
1108 case ARIZONA_OUT2RMIX_INPUT_4_SOURCE:
1109 case ARIZONA_OUT2RMIX_INPUT_4_VOLUME:
1110 case ARIZONA_OUT3LMIX_INPUT_1_SOURCE:
1111 case ARIZONA_OUT3LMIX_INPUT_1_VOLUME:
1112 case ARIZONA_OUT3LMIX_INPUT_2_SOURCE:
1113 case ARIZONA_OUT3LMIX_INPUT_2_VOLUME:
1114 case ARIZONA_OUT3LMIX_INPUT_3_SOURCE:
1115 case ARIZONA_OUT3LMIX_INPUT_3_VOLUME:
1116 case ARIZONA_OUT3LMIX_INPUT_4_SOURCE:
1117 case ARIZONA_OUT3LMIX_INPUT_4_VOLUME:
1118 case ARIZONA_OUT4LMIX_INPUT_1_SOURCE:
1119 case ARIZONA_OUT4LMIX_INPUT_1_VOLUME:
1120 case ARIZONA_OUT4LMIX_INPUT_2_SOURCE:
1121 case ARIZONA_OUT4LMIX_INPUT_2_VOLUME:
1122 case ARIZONA_OUT4LMIX_INPUT_3_SOURCE:
1123 case ARIZONA_OUT4LMIX_INPUT_3_VOLUME:
1124 case ARIZONA_OUT4LMIX_INPUT_4_SOURCE:
1125 case ARIZONA_OUT4LMIX_INPUT_4_VOLUME:
1126 case ARIZONA_OUT4RMIX_INPUT_1_SOURCE:
1127 case ARIZONA_OUT4RMIX_INPUT_1_VOLUME:
1128 case ARIZONA_OUT4RMIX_INPUT_2_SOURCE:
1129 case ARIZONA_OUT4RMIX_INPUT_2_VOLUME:
1130 case ARIZONA_OUT4RMIX_INPUT_3_SOURCE:
1131 case ARIZONA_OUT4RMIX_INPUT_3_VOLUME:
1132 case ARIZONA_OUT4RMIX_INPUT_4_SOURCE:
1133 case ARIZONA_OUT4RMIX_INPUT_4_VOLUME:
1134 case ARIZONA_OUT5LMIX_INPUT_1_SOURCE:
1135 case ARIZONA_OUT5LMIX_INPUT_1_VOLUME:
1136 case ARIZONA_OUT5LMIX_INPUT_2_SOURCE:
1137 case ARIZONA_OUT5LMIX_INPUT_2_VOLUME:
1138 case ARIZONA_OUT5LMIX_INPUT_3_SOURCE:
1139 case ARIZONA_OUT5LMIX_INPUT_3_VOLUME:
1140 case ARIZONA_OUT5LMIX_INPUT_4_SOURCE:
1141 case ARIZONA_OUT5LMIX_INPUT_4_VOLUME:
1142 case ARIZONA_OUT5RMIX_INPUT_1_SOURCE:
1143 case ARIZONA_OUT5RMIX_INPUT_1_VOLUME:
1144 case ARIZONA_OUT5RMIX_INPUT_2_SOURCE:
1145 case ARIZONA_OUT5RMIX_INPUT_2_VOLUME:
1146 case ARIZONA_OUT5RMIX_INPUT_3_SOURCE:
1147 case ARIZONA_OUT5RMIX_INPUT_3_VOLUME:
1148 case ARIZONA_OUT5RMIX_INPUT_4_SOURCE:
1149 case ARIZONA_OUT5RMIX_INPUT_4_VOLUME:
1150 case ARIZONA_AIF1TX1MIX_INPUT_1_SOURCE:
1151 case ARIZONA_AIF1TX1MIX_INPUT_1_VOLUME:
1152 case ARIZONA_AIF1TX1MIX_INPUT_2_SOURCE:
1153 case ARIZONA_AIF1TX1MIX_INPUT_2_VOLUME:
1154 case ARIZONA_AIF1TX1MIX_INPUT_3_SOURCE:
1155 case ARIZONA_AIF1TX1MIX_INPUT_3_VOLUME:
1156 case ARIZONA_AIF1TX1MIX_INPUT_4_SOURCE:
1157 case ARIZONA_AIF1TX1MIX_INPUT_4_VOLUME:
1158 case ARIZONA_AIF1TX2MIX_INPUT_1_SOURCE:
1159 case ARIZONA_AIF1TX2MIX_INPUT_1_VOLUME:
1160 case ARIZONA_AIF1TX2MIX_INPUT_2_SOURCE:
1161 case ARIZONA_AIF1TX2MIX_INPUT_2_VOLUME:
1162 case ARIZONA_AIF1TX2MIX_INPUT_3_SOURCE:
1163 case ARIZONA_AIF1TX2MIX_INPUT_3_VOLUME:
1164 case ARIZONA_AIF1TX2MIX_INPUT_4_SOURCE:
1165 case ARIZONA_AIF1TX2MIX_INPUT_4_VOLUME:
1166 case ARIZONA_AIF1TX3MIX_INPUT_1_SOURCE:
1167 case ARIZONA_AIF1TX3MIX_INPUT_1_VOLUME:
1168 case ARIZONA_AIF1TX3MIX_INPUT_2_SOURCE:
1169 case ARIZONA_AIF1TX3MIX_INPUT_2_VOLUME:
1170 case ARIZONA_AIF1TX3MIX_INPUT_3_SOURCE:
1171 case ARIZONA_AIF1TX3MIX_INPUT_3_VOLUME:
1172 case ARIZONA_AIF1TX3MIX_INPUT_4_SOURCE:
1173 case ARIZONA_AIF1TX3MIX_INPUT_4_VOLUME:
1174 case ARIZONA_AIF1TX4MIX_INPUT_1_SOURCE:
1175 case ARIZONA_AIF1TX4MIX_INPUT_1_VOLUME:
1176 case ARIZONA_AIF1TX4MIX_INPUT_2_SOURCE:
1177 case ARIZONA_AIF1TX4MIX_INPUT_2_VOLUME:
1178 case ARIZONA_AIF1TX4MIX_INPUT_3_SOURCE:
1179 case ARIZONA_AIF1TX4MIX_INPUT_3_VOLUME:
1180 case ARIZONA_AIF1TX4MIX_INPUT_4_SOURCE:
1181 case ARIZONA_AIF1TX4MIX_INPUT_4_VOLUME:
1182 case ARIZONA_AIF1TX5MIX_INPUT_1_SOURCE:
1183 case ARIZONA_AIF1TX5MIX_INPUT_1_VOLUME:
1184 case ARIZONA_AIF1TX5MIX_INPUT_2_SOURCE:
1185 case ARIZONA_AIF1TX5MIX_INPUT_2_VOLUME:
1186 case ARIZONA_AIF1TX5MIX_INPUT_3_SOURCE:
1187 case ARIZONA_AIF1TX5MIX_INPUT_3_VOLUME:
1188 case ARIZONA_AIF1TX5MIX_INPUT_4_SOURCE:
1189 case ARIZONA_AIF1TX5MIX_INPUT_4_VOLUME:
1190 case ARIZONA_AIF1TX6MIX_INPUT_1_SOURCE:
1191 case ARIZONA_AIF1TX6MIX_INPUT_1_VOLUME:
1192 case ARIZONA_AIF1TX6MIX_INPUT_2_SOURCE:
1193 case ARIZONA_AIF1TX6MIX_INPUT_2_VOLUME:
1194 case ARIZONA_AIF1TX6MIX_INPUT_3_SOURCE:
1195 case ARIZONA_AIF1TX6MIX_INPUT_3_VOLUME:
1196 case ARIZONA_AIF1TX6MIX_INPUT_4_SOURCE:
1197 case ARIZONA_AIF1TX6MIX_INPUT_4_VOLUME:
1198 case ARIZONA_AIF2TX1MIX_INPUT_1_SOURCE:
1199 case ARIZONA_AIF2TX1MIX_INPUT_1_VOLUME:
1200 case ARIZONA_AIF2TX1MIX_INPUT_2_SOURCE:
1201 case ARIZONA_AIF2TX1MIX_INPUT_2_VOLUME:
1202 case ARIZONA_AIF2TX1MIX_INPUT_3_SOURCE:
1203 case ARIZONA_AIF2TX1MIX_INPUT_3_VOLUME:
1204 case ARIZONA_AIF2TX1MIX_INPUT_4_SOURCE:
1205 case ARIZONA_AIF2TX1MIX_INPUT_4_VOLUME:
1206 case ARIZONA_AIF2TX2MIX_INPUT_1_SOURCE:
1207 case ARIZONA_AIF2TX2MIX_INPUT_1_VOLUME:
1208 case ARIZONA_AIF2TX2MIX_INPUT_2_SOURCE:
1209 case ARIZONA_AIF2TX2MIX_INPUT_2_VOLUME:
1210 case ARIZONA_AIF2TX2MIX_INPUT_3_SOURCE:
1211 case ARIZONA_AIF2TX2MIX_INPUT_3_VOLUME:
1212 case ARIZONA_AIF2TX2MIX_INPUT_4_SOURCE:
1213 case ARIZONA_AIF2TX2MIX_INPUT_4_VOLUME:
1214 case ARIZONA_AIF2TX3MIX_INPUT_1_SOURCE:
1215 case ARIZONA_AIF2TX3MIX_INPUT_1_VOLUME:
1216 case ARIZONA_AIF2TX3MIX_INPUT_2_SOURCE:
1217 case ARIZONA_AIF2TX3MIX_INPUT_2_VOLUME:
1218 case ARIZONA_AIF2TX3MIX_INPUT_3_SOURCE:
1219 case ARIZONA_AIF2TX3MIX_INPUT_3_VOLUME:
1220 case ARIZONA_AIF2TX3MIX_INPUT_4_SOURCE:
1221 case ARIZONA_AIF2TX3MIX_INPUT_4_VOLUME:
1222 case ARIZONA_AIF2TX4MIX_INPUT_1_SOURCE:
1223 case ARIZONA_AIF2TX4MIX_INPUT_1_VOLUME:
1224 case ARIZONA_AIF2TX4MIX_INPUT_2_SOURCE:
1225 case ARIZONA_AIF2TX4MIX_INPUT_2_VOLUME:
1226 case ARIZONA_AIF2TX4MIX_INPUT_3_SOURCE:
1227 case ARIZONA_AIF2TX4MIX_INPUT_3_VOLUME:
1228 case ARIZONA_AIF2TX4MIX_INPUT_4_SOURCE:
1229 case ARIZONA_AIF2TX4MIX_INPUT_4_VOLUME:
1230 case ARIZONA_AIF2TX5MIX_INPUT_1_SOURCE:
1231 case ARIZONA_AIF2TX5MIX_INPUT_1_VOLUME:
1232 case ARIZONA_AIF2TX5MIX_INPUT_2_SOURCE:
1233 case ARIZONA_AIF2TX5MIX_INPUT_2_VOLUME:
1234 case ARIZONA_AIF2TX5MIX_INPUT_3_SOURCE:
1235 case ARIZONA_AIF2TX5MIX_INPUT_3_VOLUME:
1236 case ARIZONA_AIF2TX5MIX_INPUT_4_SOURCE:
1237 case ARIZONA_AIF2TX5MIX_INPUT_4_VOLUME:
1238 case ARIZONA_AIF2TX6MIX_INPUT_1_SOURCE:
1239 case ARIZONA_AIF2TX6MIX_INPUT_1_VOLUME:
1240 case ARIZONA_AIF2TX6MIX_INPUT_2_SOURCE:
1241 case ARIZONA_AIF2TX6MIX_INPUT_2_VOLUME:
1242 case ARIZONA_AIF2TX6MIX_INPUT_3_SOURCE:
1243 case ARIZONA_AIF2TX6MIX_INPUT_3_VOLUME:
1244 case ARIZONA_AIF2TX6MIX_INPUT_4_SOURCE:
1245 case ARIZONA_AIF2TX6MIX_INPUT_4_VOLUME:
1246 case ARIZONA_AIF3TX1MIX_INPUT_1_SOURCE:
1247 case ARIZONA_AIF3TX1MIX_INPUT_1_VOLUME:
1248 case ARIZONA_AIF3TX1MIX_INPUT_2_SOURCE:
1249 case ARIZONA_AIF3TX1MIX_INPUT_2_VOLUME:
1250 case ARIZONA_AIF3TX1MIX_INPUT_3_SOURCE:
1251 case ARIZONA_AIF3TX1MIX_INPUT_3_VOLUME:
1252 case ARIZONA_AIF3TX1MIX_INPUT_4_SOURCE:
1253 case ARIZONA_AIF3TX1MIX_INPUT_4_VOLUME:
1254 case ARIZONA_AIF3TX2MIX_INPUT_1_SOURCE:
1255 case ARIZONA_AIF3TX2MIX_INPUT_1_VOLUME:
1256 case ARIZONA_AIF3TX2MIX_INPUT_2_SOURCE:
1257 case ARIZONA_AIF3TX2MIX_INPUT_2_VOLUME:
1258 case ARIZONA_AIF3TX2MIX_INPUT_3_SOURCE:
1259 case ARIZONA_AIF3TX2MIX_INPUT_3_VOLUME:
1260 case ARIZONA_AIF3TX2MIX_INPUT_4_SOURCE:
1261 case ARIZONA_AIF3TX2MIX_INPUT_4_VOLUME:
1262 case ARIZONA_SLIMTX1MIX_INPUT_1_SOURCE:
1263 case ARIZONA_SLIMTX1MIX_INPUT_1_VOLUME:
1264 case ARIZONA_SLIMTX2MIX_INPUT_1_SOURCE:
1265 case ARIZONA_SLIMTX2MIX_INPUT_1_VOLUME:
1266 case ARIZONA_SLIMTX3MIX_INPUT_1_SOURCE:
1267 case ARIZONA_SLIMTX3MIX_INPUT_1_VOLUME:
1268 case ARIZONA_SLIMTX4MIX_INPUT_1_SOURCE:
1269 case ARIZONA_SLIMTX4MIX_INPUT_1_VOLUME:
1270 case ARIZONA_SLIMTX5MIX_INPUT_1_SOURCE:
1271 case ARIZONA_SLIMTX5MIX_INPUT_1_VOLUME:
1272 case ARIZONA_SLIMTX6MIX_INPUT_1_SOURCE:
1273 case ARIZONA_SLIMTX6MIX_INPUT_1_VOLUME:
1274 case ARIZONA_SPDIFTX1MIX_INPUT_1_SOURCE:
1275 case ARIZONA_SPDIFTX1MIX_INPUT_1_VOLUME:
1276 case ARIZONA_SPDIFTX2MIX_INPUT_1_SOURCE:
1277 case ARIZONA_SPDIFTX2MIX_INPUT_1_VOLUME:
1278 case ARIZONA_EQ1MIX_INPUT_1_SOURCE:
1279 case ARIZONA_EQ1MIX_INPUT_1_VOLUME:
1280 case ARIZONA_EQ2MIX_INPUT_1_SOURCE:
1281 case ARIZONA_EQ2MIX_INPUT_1_VOLUME:
1282 case ARIZONA_EQ3MIX_INPUT_1_SOURCE:
1283 case ARIZONA_EQ3MIX_INPUT_1_VOLUME:
1284 case ARIZONA_EQ4MIX_INPUT_1_SOURCE:
1285 case ARIZONA_EQ4MIX_INPUT_1_VOLUME:
1286 case ARIZONA_DRC1LMIX_INPUT_1_SOURCE:
1287 case ARIZONA_DRC1LMIX_INPUT_1_VOLUME:
1288 case ARIZONA_DRC1RMIX_INPUT_1_SOURCE:
1289 case ARIZONA_DRC1RMIX_INPUT_1_VOLUME:
1290 case ARIZONA_HPLP1MIX_INPUT_1_SOURCE:
1291 case ARIZONA_HPLP1MIX_INPUT_1_VOLUME:
1292 case ARIZONA_HPLP1MIX_INPUT_2_SOURCE:
1293 case ARIZONA_HPLP1MIX_INPUT_2_VOLUME:
1294 case ARIZONA_HPLP1MIX_INPUT_3_SOURCE:
1295 case ARIZONA_HPLP1MIX_INPUT_3_VOLUME:
1296 case ARIZONA_HPLP1MIX_INPUT_4_SOURCE:
1297 case ARIZONA_HPLP1MIX_INPUT_4_VOLUME:
1298 case ARIZONA_HPLP2MIX_INPUT_1_SOURCE:
1299 case ARIZONA_HPLP2MIX_INPUT_1_VOLUME:
1300 case ARIZONA_HPLP2MIX_INPUT_2_SOURCE:
1301 case ARIZONA_HPLP2MIX_INPUT_2_VOLUME:
1302 case ARIZONA_HPLP2MIX_INPUT_3_SOURCE:
1303 case ARIZONA_HPLP2MIX_INPUT_3_VOLUME:
1304 case ARIZONA_HPLP2MIX_INPUT_4_SOURCE:
1305 case ARIZONA_HPLP2MIX_INPUT_4_VOLUME:
1306 case ARIZONA_HPLP3MIX_INPUT_1_SOURCE:
1307 case ARIZONA_HPLP3MIX_INPUT_1_VOLUME:
1308 case ARIZONA_HPLP3MIX_INPUT_2_SOURCE:
1309 case ARIZONA_HPLP3MIX_INPUT_2_VOLUME:
1310 case ARIZONA_HPLP3MIX_INPUT_3_SOURCE:
1311 case ARIZONA_HPLP3MIX_INPUT_3_VOLUME:
1312 case ARIZONA_HPLP3MIX_INPUT_4_SOURCE:
1313 case ARIZONA_HPLP3MIX_INPUT_4_VOLUME:
1314 case ARIZONA_HPLP4MIX_INPUT_1_SOURCE:
1315 case ARIZONA_HPLP4MIX_INPUT_1_VOLUME:
1316 case ARIZONA_HPLP4MIX_INPUT_2_SOURCE:
1317 case ARIZONA_HPLP4MIX_INPUT_2_VOLUME:
1318 case ARIZONA_HPLP4MIX_INPUT_3_SOURCE:
1319 case ARIZONA_HPLP4MIX_INPUT_3_VOLUME:
1320 case ARIZONA_HPLP4MIX_INPUT_4_SOURCE:
1321 case ARIZONA_HPLP4MIX_INPUT_4_VOLUME:
1322 case ARIZONA_ASRC1LMIX_INPUT_1_SOURCE:
1323 case ARIZONA_ASRC1RMIX_INPUT_1_SOURCE:
1324 case ARIZONA_ASRC2LMIX_INPUT_1_SOURCE:
1325 case ARIZONA_ASRC2RMIX_INPUT_1_SOURCE:
1326 case ARIZONA_ISRC1DEC1MIX_INPUT_1_SOURCE:
1327 case ARIZONA_ISRC1DEC2MIX_INPUT_1_SOURCE:
1328 case ARIZONA_ISRC1DEC3MIX_INPUT_1_SOURCE:
1329 case ARIZONA_ISRC1DEC4MIX_INPUT_1_SOURCE:
1330 case ARIZONA_ISRC1INT1MIX_INPUT_1_SOURCE:
1331 case ARIZONA_ISRC1INT2MIX_INPUT_1_SOURCE:
1332 case ARIZONA_ISRC1INT3MIX_INPUT_1_SOURCE:
1333 case ARIZONA_ISRC1INT4MIX_INPUT_1_SOURCE:
1334 case ARIZONA_ISRC2DEC1MIX_INPUT_1_SOURCE:
1335 case ARIZONA_ISRC2DEC2MIX_INPUT_1_SOURCE:
1336 case ARIZONA_ISRC2INT1MIX_INPUT_1_SOURCE:
1337 case ARIZONA_ISRC2INT2MIX_INPUT_1_SOURCE:
1338 case ARIZONA_GPIO1_CTRL:
1339 case ARIZONA_GPIO2_CTRL:
1340 case ARIZONA_GPIO3_CTRL:
1341 case ARIZONA_GPIO4_CTRL:
1342 case ARIZONA_GPIO5_CTRL:
1343 case ARIZONA_IRQ_CTRL_1:
1344 case ARIZONA_GPIO_DEBOUNCE_CONFIG:
1345 case ARIZONA_GP_SWITCH_1:
1346 case ARIZONA_MISC_PAD_CTRL_1:
1347 case ARIZONA_MISC_PAD_CTRL_2:
1348 case ARIZONA_MISC_PAD_CTRL_3:
1349 case ARIZONA_MISC_PAD_CTRL_4:
1350 case ARIZONA_MISC_PAD_CTRL_5:
1351 case ARIZONA_MISC_PAD_CTRL_6:
1352 case ARIZONA_INTERRUPT_STATUS_1:
1353 case ARIZONA_INTERRUPT_STATUS_2:
1354 case ARIZONA_INTERRUPT_STATUS_3:
1355 case ARIZONA_INTERRUPT_STATUS_4:
1356 case ARIZONA_INTERRUPT_STATUS_5:
1357 case ARIZONA_INTERRUPT_STATUS_1_MASK:
1358 case ARIZONA_INTERRUPT_STATUS_2_MASK:
1359 case ARIZONA_INTERRUPT_STATUS_3_MASK:
1360 case ARIZONA_INTERRUPT_STATUS_4_MASK:
1361 case ARIZONA_INTERRUPT_STATUS_5_MASK:
1362 case ARIZONA_INTERRUPT_CONTROL:
1363 case ARIZONA_IRQ2_STATUS_1:
1364 case ARIZONA_IRQ2_STATUS_2:
1365 case ARIZONA_IRQ2_STATUS_3:
1366 case ARIZONA_IRQ2_STATUS_4:
1367 case ARIZONA_IRQ2_STATUS_5:
1368 case ARIZONA_IRQ2_STATUS_1_MASK:
1369 case ARIZONA_IRQ2_STATUS_2_MASK:
1370 case ARIZONA_IRQ2_STATUS_3_MASK:
1371 case ARIZONA_IRQ2_STATUS_4_MASK:
1372 case ARIZONA_IRQ2_STATUS_5_MASK:
1373 case ARIZONA_IRQ2_CONTROL:
1374 case ARIZONA_INTERRUPT_RAW_STATUS_2:
1375 case ARIZONA_INTERRUPT_RAW_STATUS_3:
1376 case ARIZONA_INTERRUPT_RAW_STATUS_4:
1377 case ARIZONA_INTERRUPT_RAW_STATUS_5:
1378 case ARIZONA_INTERRUPT_RAW_STATUS_6:
1379 case ARIZONA_INTERRUPT_RAW_STATUS_7:
1380 case ARIZONA_INTERRUPT_RAW_STATUS_8:
1381 case ARIZONA_IRQ_PIN_STATUS:
1382 case ARIZONA_AOD_WKUP_AND_TRIG:
1383 case ARIZONA_AOD_IRQ1:
1384 case ARIZONA_AOD_IRQ2:
1385 case ARIZONA_AOD_IRQ_MASK_IRQ1:
1386 case ARIZONA_AOD_IRQ_MASK_IRQ2:
1387 case ARIZONA_AOD_IRQ_RAW_STATUS:
1388 case ARIZONA_JACK_DETECT_DEBOUNCE:
1389 case ARIZONA_FX_CTRL1:
1390 case ARIZONA_FX_CTRL2:
1391 case ARIZONA_EQ1_1:
1392 case ARIZONA_EQ1_2:
1393 case ARIZONA_EQ1_3:
1394 case ARIZONA_EQ1_4:
1395 case ARIZONA_EQ1_5:
1396 case ARIZONA_EQ1_6:
1397 case ARIZONA_EQ1_7:
1398 case ARIZONA_EQ1_8:
1399 case ARIZONA_EQ1_9:
1400 case ARIZONA_EQ1_10:
1401 case ARIZONA_EQ1_11:
1402 case ARIZONA_EQ1_12:
1403 case ARIZONA_EQ1_13:
1404 case ARIZONA_EQ1_14:
1405 case ARIZONA_EQ1_15:
1406 case ARIZONA_EQ1_16:
1407 case ARIZONA_EQ1_17:
1408 case ARIZONA_EQ1_18:
1409 case ARIZONA_EQ1_19:
1410 case ARIZONA_EQ1_20:
1411 case ARIZONA_EQ1_21:
1412 case ARIZONA_EQ2_1:
1413 case ARIZONA_EQ2_2:
1414 case ARIZONA_EQ2_3:
1415 case ARIZONA_EQ2_4:
1416 case ARIZONA_EQ2_5:
1417 case ARIZONA_EQ2_6:
1418 case ARIZONA_EQ2_7:
1419 case ARIZONA_EQ2_8:
1420 case ARIZONA_EQ2_9:
1421 case ARIZONA_EQ2_10:
1422 case ARIZONA_EQ2_11:
1423 case ARIZONA_EQ2_12:
1424 case ARIZONA_EQ2_13:
1425 case ARIZONA_EQ2_14:
1426 case ARIZONA_EQ2_15:
1427 case ARIZONA_EQ2_16:
1428 case ARIZONA_EQ2_17:
1429 case ARIZONA_EQ2_18:
1430 case ARIZONA_EQ2_19:
1431 case ARIZONA_EQ2_20:
1432 case ARIZONA_EQ2_21:
1433 case ARIZONA_EQ3_1:
1434 case ARIZONA_EQ3_2:
1435 case ARIZONA_EQ3_3:
1436 case ARIZONA_EQ3_4:
1437 case ARIZONA_EQ3_5:
1438 case ARIZONA_EQ3_6:
1439 case ARIZONA_EQ3_7:
1440 case ARIZONA_EQ3_8:
1441 case ARIZONA_EQ3_9:
1442 case ARIZONA_EQ3_10:
1443 case ARIZONA_EQ3_11:
1444 case ARIZONA_EQ3_12:
1445 case ARIZONA_EQ3_13:
1446 case ARIZONA_EQ3_14:
1447 case ARIZONA_EQ3_15:
1448 case ARIZONA_EQ3_16:
1449 case ARIZONA_EQ3_17:
1450 case ARIZONA_EQ3_18:
1451 case ARIZONA_EQ3_19:
1452 case ARIZONA_EQ3_20:
1453 case ARIZONA_EQ3_21:
1454 case ARIZONA_EQ4_1:
1455 case ARIZONA_EQ4_2:
1456 case ARIZONA_EQ4_3:
1457 case ARIZONA_EQ4_4:
1458 case ARIZONA_EQ4_5:
1459 case ARIZONA_EQ4_6:
1460 case ARIZONA_EQ4_7:
1461 case ARIZONA_EQ4_8:
1462 case ARIZONA_EQ4_9:
1463 case ARIZONA_EQ4_10:
1464 case ARIZONA_EQ4_11:
1465 case ARIZONA_EQ4_12:
1466 case ARIZONA_EQ4_13:
1467 case ARIZONA_EQ4_14:
1468 case ARIZONA_EQ4_15:
1469 case ARIZONA_EQ4_16:
1470 case ARIZONA_EQ4_17:
1471 case ARIZONA_EQ4_18:
1472 case ARIZONA_EQ4_19:
1473 case ARIZONA_EQ4_20:
1474 case ARIZONA_EQ4_21:
1475 case ARIZONA_DRC1_CTRL1:
1476 case ARIZONA_DRC1_CTRL2:
1477 case ARIZONA_DRC1_CTRL3:
1478 case ARIZONA_DRC1_CTRL4:
1479 case ARIZONA_DRC1_CTRL5:
1480 case ARIZONA_HPLPF1_1:
1481 case ARIZONA_HPLPF1_2:
1482 case ARIZONA_HPLPF2_1:
1483 case ARIZONA_HPLPF2_2:
1484 case ARIZONA_HPLPF3_1:
1485 case ARIZONA_HPLPF3_2:
1486 case ARIZONA_HPLPF4_1:
1487 case ARIZONA_HPLPF4_2:
1488 case ARIZONA_ASRC_ENABLE:
1489 case ARIZONA_ASRC_STATUS:
1490 case ARIZONA_ASRC_RATE1:
1491 case ARIZONA_ASRC_RATE2:
1492 case ARIZONA_ISRC_1_CTRL_1:
1493 case ARIZONA_ISRC_1_CTRL_2:
1494 case ARIZONA_ISRC_1_CTRL_3:
1495 case ARIZONA_ISRC_2_CTRL_1:
1496 case ARIZONA_ISRC_2_CTRL_2:
1497 case ARIZONA_ISRC_2_CTRL_3:
1498 case ARIZONA_FRF_COEFF_1:
1499 case ARIZONA_FRF_COEFF_2:
1500 case ARIZONA_FRF_COEFF_3:
1501 case ARIZONA_FRF_COEFF_4:
1502 case ARIZONA_V2_DAC_COMP_1:
1503 case ARIZONA_V2_DAC_COMP_2:
1504 return true;
1505 default:
1506 return false;
1507 }
1508}
1509
1510static bool wm8998_volatile_register(struct device *dev, unsigned int reg)
1511{
1512 switch (reg) {
1513 case ARIZONA_SOFTWARE_RESET:
1514 case ARIZONA_DEVICE_REVISION:
1515 case ARIZONA_WRITE_SEQUENCER_CTRL_0:
1516 case ARIZONA_WRITE_SEQUENCER_CTRL_1:
1517 case ARIZONA_WRITE_SEQUENCER_CTRL_2:
1518 case ARIZONA_HAPTICS_STATUS:
1519 case ARIZONA_SAMPLE_RATE_1_STATUS:
1520 case ARIZONA_SAMPLE_RATE_2_STATUS:
1521 case ARIZONA_SAMPLE_RATE_3_STATUS:
1522 case ARIZONA_ASYNC_SAMPLE_RATE_1_STATUS:
1523 case ARIZONA_ASYNC_SAMPLE_RATE_2_STATUS:
1524 case ARIZONA_MIC_DETECT_3:
1525 case ARIZONA_MIC_DETECT_4:
1526 case ARIZONA_HEADPHONE_DETECT_2:
1527 case ARIZONA_INPUT_ENABLES_STATUS:
1528 case ARIZONA_OUTPUT_STATUS_1:
1529 case ARIZONA_RAW_OUTPUT_STATUS_1:
1530 case ARIZONA_SLIMBUS_RX_PORT_STATUS:
1531 case ARIZONA_SLIMBUS_TX_PORT_STATUS:
1532 case ARIZONA_INTERRUPT_STATUS_1:
1533 case ARIZONA_INTERRUPT_STATUS_2:
1534 case ARIZONA_INTERRUPT_STATUS_3:
1535 case ARIZONA_INTERRUPT_STATUS_4:
1536 case ARIZONA_INTERRUPT_STATUS_5:
1537 case ARIZONA_IRQ2_STATUS_1:
1538 case ARIZONA_IRQ2_STATUS_2:
1539 case ARIZONA_IRQ2_STATUS_3:
1540 case ARIZONA_IRQ2_STATUS_4:
1541 case ARIZONA_IRQ2_STATUS_5:
1542 case ARIZONA_INTERRUPT_RAW_STATUS_2:
1543 case ARIZONA_INTERRUPT_RAW_STATUS_3:
1544 case ARIZONA_INTERRUPT_RAW_STATUS_4:
1545 case ARIZONA_INTERRUPT_RAW_STATUS_5:
1546 case ARIZONA_INTERRUPT_RAW_STATUS_6:
1547 case ARIZONA_INTERRUPT_RAW_STATUS_7:
1548 case ARIZONA_INTERRUPT_RAW_STATUS_8:
1549 case ARIZONA_IRQ_PIN_STATUS:
1550 case ARIZONA_AOD_WKUP_AND_TRIG:
1551 case ARIZONA_AOD_IRQ1:
1552 case ARIZONA_AOD_IRQ2:
1553 case ARIZONA_AOD_IRQ_RAW_STATUS:
1554 case ARIZONA_FX_CTRL2:
1555 case ARIZONA_ASRC_STATUS:
1556 return true;
1557 default:
1558 return false;
1559 }
1560}
1561
1562#define WM8998_MAX_REGISTER 0x31ff
1563
1564const struct regmap_config wm8998_i2c_regmap = {
1565 .reg_bits = 32,
1566 .val_bits = 16,
1567 .reg_format_endian = REGMAP_ENDIAN_BIG,
1568 .val_format_endian = REGMAP_ENDIAN_BIG,
1569
1570 .max_register = WM8998_MAX_REGISTER,
1571 .readable_reg = wm8998_readable_register,
1572 .volatile_reg = wm8998_volatile_register,
1573
1574 .cache_type = REGCACHE_RBTREE,
1575 .reg_defaults = wm8998_reg_default,
1576 .num_reg_defaults = ARRAY_SIZE(wm8998_reg_default),
1577};
1578EXPORT_SYMBOL_GPL(wm8998_i2c_regmap);
1579