This source file includes following definitions.
- cs47l35_patch
- cs47l35_is_adsp_memory
- cs47l35_16bit_readable_register
- cs47l35_16bit_volatile_register
- cs47l35_32bit_readable_register
- cs47l35_32bit_volatile_register
1
2
3
4
5
6
7
8 #include <linux/device.h>
9 #include <linux/module.h>
10 #include <linux/regmap.h>
11
12 #include <linux/mfd/madera/core.h>
13 #include <linux/mfd/madera/registers.h>
14
15 #include "madera.h"
16
17 static const struct reg_sequence cs47l35_reva_16_patch[] = {
18 { 0x460, 0x0c40 },
19 { 0x461, 0xcd1a },
20 { 0x462, 0x0c40 },
21 { 0x463, 0xb53b },
22 { 0x464, 0x0c40 },
23 { 0x465, 0x7503 },
24 { 0x466, 0x0c40 },
25 { 0x467, 0x4a41 },
26 { 0x468, 0x0041 },
27 { 0x469, 0x3491 },
28 { 0x46a, 0x0841 },
29 { 0x46b, 0x1f50 },
30 { 0x46c, 0x0446 },
31 { 0x46d, 0x14ed },
32 { 0x46e, 0x0446 },
33 { 0x46f, 0x1455 },
34 { 0x470, 0x04c6 },
35 { 0x471, 0x1220 },
36 { 0x472, 0x04c6 },
37 { 0x473, 0x040f },
38 { 0x474, 0x04ce },
39 { 0x475, 0x0339 },
40 { 0x476, 0x05df },
41 { 0x477, 0x028f },
42 { 0x478, 0x05df },
43 { 0x479, 0x0209 },
44 { 0x47a, 0x05df },
45 { 0x47b, 0x00cf },
46 { 0x47c, 0x05df },
47 { 0x47d, 0x0001 },
48 { 0x47e, 0x07ff },
49 };
50
51 int cs47l35_patch(struct madera *madera)
52 {
53 int ret;
54
55 ret = regmap_register_patch(madera->regmap, cs47l35_reva_16_patch,
56 ARRAY_SIZE(cs47l35_reva_16_patch));
57 if (ret < 0)
58 dev_err(madera->dev, "Error applying patch: %d\n", ret);
59
60 return ret;
61 }
62 EXPORT_SYMBOL_GPL(cs47l35_patch);
63
64 static const struct reg_default cs47l35_reg_default[] = {
65 { 0x00000020, 0x0000 },
66 { 0x00000021, 0x1000 },
67 { 0x00000022, 0x0000 },
68 { 0x00000023, 0x1000 },
69 { 0x00000024, 0x0000 },
70 { 0x00000030, 0x0000 },
71 { 0x00000031, 0x0100 },
72 { 0x00000032, 0x0100 },
73 { 0x00000061, 0x01ff },
74 { 0x00000062, 0x01ff },
75 { 0x00000063, 0x01ff },
76 { 0x00000064, 0x01ff },
77 { 0x00000066, 0x01ff },
78 { 0x00000067, 0x01ff },
79 { 0x00000090, 0x0000 },
80 { 0x00000091, 0x7fff },
81 { 0x00000092, 0x0000 },
82 { 0x00000093, 0x0000 },
83 { 0x00000094, 0x0000 },
84 { 0x00000095, 0x0000 },
85 { 0x00000096, 0x0000 },
86 { 0x00000097, 0x0000 },
87 { 0x000000A0, 0x0000 },
88 { 0x00000100, 0x0002 },
89 { 0x00000101, 0x0404 },
90 { 0x00000102, 0x0011 },
91 { 0x00000103, 0x0011 },
92 { 0x00000104, 0x0011 },
93 { 0x00000120, 0x0305 },
94 { 0x00000122, 0x0000 },
95 { 0x00000149, 0x0000 },
96 { 0x0000014a, 0x0000 },
97 { 0x00000152, 0x0000 },
98 { 0x00000153, 0x0000 },
99 { 0x00000154, 0x0000 },
100 { 0x00000155, 0x0000 },
101 { 0x00000156, 0x0000 },
102 { 0x00000171, 0x0002 },
103 { 0x00000172, 0x0008 },
104 { 0x00000173, 0x0018 },
105 { 0x00000174, 0x007d },
106 { 0x00000175, 0x0000 },
107 { 0x00000176, 0x0000 },
108 { 0x00000179, 0x0000 },
109 { 0x0000017a, 0x2906 },
110 { 0x0000017f, 0x0000 },
111 { 0x00000180, 0x0000 },
112 { 0x00000181, 0x0000 },
113 { 0x00000182, 0x0000 },
114 { 0x00000183, 0x0000 },
115 { 0x00000184, 0x0000 },
116 { 0x00000185, 0x0001 },
117 { 0x00000187, 0x0000 },
118 { 0x00000188, 0x000c },
119 { 0x00000200, 0x0006 },
120 { 0x0000020b, 0x0400 },
121 { 0x00000213, 0x03e4 },
122 { 0x00000218, 0x00e6 },
123 { 0x00000219, 0x00e6 },
124 { 0x0000021c, 0x0022 },
125 { 0x0000021e, 0x0022 },
126 { 0x0000027e, 0x0000 },
127 { 0x00000293, 0x0080 },
128 { 0x0000029b, 0x0000 },
129 { 0x000002a3, 0x1102 },
130 { 0x000002a4, 0x009f },
131 { 0x000002a6, 0x3d3d },
132 { 0x000002a7, 0x3d3d },
133 { 0x000002a8, 0x333d },
134 { 0x000002a9, 0x202d },
135 { 0x000002c6, 0x0010 },
136 { 0x000002c8, 0x0000 },
137 { 0x000002d3, 0x0000 },
138 { 0x00000300, 0x0000 },
139 { 0x00000308, 0x0000 },
140 { 0x00000309, 0x0022 },
141 { 0x0000030c, 0x0002 },
142 { 0x00000310, 0x0080 },
143 { 0x00000311, 0x0180 },
144 { 0x00000312, 0x0500 },
145 { 0x00000314, 0x0080 },
146 { 0x00000315, 0x0180 },
147 { 0x00000316, 0x0000 },
148 { 0x00000318, 0x0080 },
149 { 0x00000319, 0x0180 },
150 { 0x0000031a, 0x0500 },
151 { 0x0000031c, 0x0080 },
152 { 0x0000031d, 0x0180 },
153 { 0x0000031e, 0x0000 },
154 { 0x00000400, 0x0000 },
155 { 0x00000408, 0x0000 },
156 { 0x00000409, 0x0022 },
157 { 0x00000410, 0x0080 },
158 { 0x00000411, 0x0180 },
159 { 0x00000413, 0x0001 },
160 { 0x00000414, 0x0080 },
161 { 0x00000415, 0x0180 },
162 { 0x00000417, 0x0002 },
163 { 0x00000428, 0x0000 },
164 { 0x00000429, 0x0180 },
165 { 0x0000042b, 0x0040 },
166 { 0x00000430, 0x0000 },
167 { 0x00000431, 0x0180 },
168 { 0x00000433, 0x0100 },
169 { 0x00000434, 0x0000 },
170 { 0x00000435, 0x0180 },
171 { 0x00000437, 0x0200 },
172 { 0x00000450, 0x0000 },
173 { 0x00000451, 0x0000 },
174 { 0x00000458, 0x0000 },
175 { 0x00000490, 0x0069 },
176 { 0x00000491, 0x0000 },
177 { 0x000004a0, 0x3080 },
178 { 0x000004a8, 0x7120 },
179 { 0x000004a9, 0x7120 },
180 { 0x00000500, 0x000c },
181 { 0x00000501, 0x0000 },
182 { 0x00000502, 0x0000 },
183 { 0x00000503, 0x0000 },
184 { 0x00000504, 0x0000 },
185 { 0x00000506, 0x0040 },
186 { 0x00000507, 0x1818 },
187 { 0x00000508, 0x1818 },
188 { 0x00000509, 0x0000 },
189 { 0x0000050a, 0x0001 },
190 { 0x0000050b, 0x0002 },
191 { 0x0000050c, 0x0003 },
192 { 0x0000050d, 0x0004 },
193 { 0x0000050e, 0x0005 },
194 { 0x00000511, 0x0000 },
195 { 0x00000512, 0x0001 },
196 { 0x00000513, 0x0002 },
197 { 0x00000514, 0x0003 },
198 { 0x00000515, 0x0004 },
199 { 0x00000516, 0x0005 },
200 { 0x00000519, 0x0000 },
201 { 0x0000051a, 0x0000 },
202 { 0x00000540, 0x000c },
203 { 0x00000541, 0x0000 },
204 { 0x00000542, 0x0000 },
205 { 0x00000543, 0x0000 },
206 { 0x00000544, 0x0000 },
207 { 0x00000546, 0x0040 },
208 { 0x00000547, 0x1818 },
209 { 0x00000548, 0x1818 },
210 { 0x00000549, 0x0000 },
211 { 0x0000054a, 0x0001 },
212 { 0x00000551, 0x0000 },
213 { 0x00000552, 0x0001 },
214 { 0x00000559, 0x0000 },
215 { 0x0000055a, 0x0000 },
216 { 0x00000580, 0x000c },
217 { 0x00000581, 0x0000 },
218 { 0x00000582, 0x0000 },
219 { 0x00000583, 0x0000 },
220 { 0x00000584, 0x0000 },
221 { 0x00000586, 0x0040 },
222 { 0x00000587, 0x1818 },
223 { 0x00000588, 0x1818 },
224 { 0x00000589, 0x0000 },
225 { 0x0000058a, 0x0001 },
226 { 0x00000591, 0x0000 },
227 { 0x00000592, 0x0001 },
228 { 0x00000599, 0x0000 },
229 { 0x0000059a, 0x0000 },
230 { 0x000005c2, 0x0000 },
231 { 0x000005e3, 0x0000 },
232 { 0x000005e5, 0x0000 },
233 { 0x000005e6, 0x0000 },
234 { 0x000005e7, 0x0000 },
235 { 0x000005e9, 0x0000 },
236 { 0x000005ea, 0x0000 },
237 { 0x000005eb, 0x0000 },
238 { 0x000005f5, 0x0000 },
239 { 0x000005f6, 0x0000 },
240 { 0x00000640, 0x0000 },
241 { 0x00000641, 0x0080 },
242 { 0x00000642, 0x0000 },
243 { 0x00000643, 0x0080 },
244 { 0x00000644, 0x0000 },
245 { 0x00000645, 0x0080 },
246 { 0x00000646, 0x0000 },
247 { 0x00000647, 0x0080 },
248 { 0x00000648, 0x0000 },
249 { 0x00000649, 0x0080 },
250 { 0x0000064a, 0x0000 },
251 { 0x0000064b, 0x0080 },
252 { 0x0000064c, 0x0000 },
253 { 0x0000064d, 0x0080 },
254 { 0x0000064e, 0x0000 },
255 { 0x0000064f, 0x0080 },
256 { 0x00000680, 0x0000 },
257 { 0x00000681, 0x0080 },
258 { 0x00000682, 0x0000 },
259 { 0x00000683, 0x0080 },
260 { 0x00000684, 0x0000 },
261 { 0x00000685, 0x0080 },
262 { 0x00000686, 0x0000 },
263 { 0x00000687, 0x0080 },
264 { 0x00000688, 0x0000 },
265 { 0x00000689, 0x0080 },
266 { 0x0000068a, 0x0000 },
267 { 0x0000068b, 0x0080 },
268 { 0x0000068c, 0x0000 },
269 { 0x0000068d, 0x0080 },
270 { 0x0000068e, 0x0000 },
271 { 0x0000068f, 0x0080 },
272 { 0x000006b0, 0x0000 },
273 { 0x000006b1, 0x0080 },
274 { 0x000006b2, 0x0000 },
275 { 0x000006b3, 0x0080 },
276 { 0x000006b4, 0x0000 },
277 { 0x000006b5, 0x0080 },
278 { 0x000006b6, 0x0000 },
279 { 0x000006b7, 0x0080 },
280 { 0x000006c0, 0x0000 },
281 { 0x000006c1, 0x0080 },
282 { 0x000006c2, 0x0000 },
283 { 0x000006c3, 0x0080 },
284 { 0x000006c4, 0x0000 },
285 { 0x000006c5, 0x0080 },
286 { 0x000006c6, 0x0000 },
287 { 0x000006c7, 0x0080 },
288 { 0x000006c8, 0x0000 },
289 { 0x000006c9, 0x0080 },
290 { 0x000006ca, 0x0000 },
291 { 0x000006cb, 0x0080 },
292 { 0x000006cc, 0x0000 },
293 { 0x000006cd, 0x0080 },
294 { 0x000006ce, 0x0000 },
295 { 0x000006cf, 0x0080 },
296 { 0x00000700, 0x0000 },
297 { 0x00000701, 0x0080 },
298 { 0x00000702, 0x0000 },
299 { 0x00000703, 0x0080 },
300 { 0x00000704, 0x0000 },
301 { 0x00000705, 0x0080 },
302 { 0x00000706, 0x0000 },
303 { 0x00000707, 0x0080 },
304 { 0x00000708, 0x0000 },
305 { 0x00000709, 0x0080 },
306 { 0x0000070a, 0x0000 },
307 { 0x0000070b, 0x0080 },
308 { 0x0000070c, 0x0000 },
309 { 0x0000070d, 0x0080 },
310 { 0x0000070e, 0x0000 },
311 { 0x0000070f, 0x0080 },
312 { 0x00000710, 0x0000 },
313 { 0x00000711, 0x0080 },
314 { 0x00000712, 0x0000 },
315 { 0x00000713, 0x0080 },
316 { 0x00000714, 0x0000 },
317 { 0x00000715, 0x0080 },
318 { 0x00000716, 0x0000 },
319 { 0x00000717, 0x0080 },
320 { 0x00000718, 0x0000 },
321 { 0x00000719, 0x0080 },
322 { 0x0000071a, 0x0000 },
323 { 0x0000071b, 0x0080 },
324 { 0x0000071c, 0x0000 },
325 { 0x0000071d, 0x0080 },
326 { 0x0000071e, 0x0000 },
327 { 0x0000071f, 0x0080 },
328 { 0x00000720, 0x0000 },
329 { 0x00000721, 0x0080 },
330 { 0x00000722, 0x0000 },
331 { 0x00000723, 0x0080 },
332 { 0x00000724, 0x0000 },
333 { 0x00000725, 0x0080 },
334 { 0x00000726, 0x0000 },
335 { 0x00000727, 0x0080 },
336 { 0x00000728, 0x0000 },
337 { 0x00000729, 0x0080 },
338 { 0x0000072a, 0x0000 },
339 { 0x0000072b, 0x0080 },
340 { 0x0000072c, 0x0000 },
341 { 0x0000072d, 0x0080 },
342 { 0x0000072e, 0x0000 },
343 { 0x0000072f, 0x0080 },
344 { 0x00000740, 0x0000 },
345 { 0x00000741, 0x0080 },
346 { 0x00000742, 0x0000 },
347 { 0x00000743, 0x0080 },
348 { 0x00000744, 0x0000 },
349 { 0x00000745, 0x0080 },
350 { 0x00000746, 0x0000 },
351 { 0x00000747, 0x0080 },
352 { 0x00000748, 0x0000 },
353 { 0x00000749, 0x0080 },
354 { 0x0000074a, 0x0000 },
355 { 0x0000074b, 0x0080 },
356 { 0x0000074c, 0x0000 },
357 { 0x0000074d, 0x0080 },
358 { 0x0000074e, 0x0000 },
359 { 0x0000074f, 0x0080 },
360 { 0x00000780, 0x0000 },
361 { 0x00000781, 0x0080 },
362 { 0x00000782, 0x0000 },
363 { 0x00000783, 0x0080 },
364 { 0x00000784, 0x0000 },
365 { 0x00000785, 0x0080 },
366 { 0x00000786, 0x0000 },
367 { 0x00000787, 0x0080 },
368 { 0x00000788, 0x0000 },
369 { 0x00000789, 0x0080 },
370 { 0x0000078a, 0x0000 },
371 { 0x0000078b, 0x0080 },
372 { 0x0000078c, 0x0000 },
373 { 0x0000078d, 0x0080 },
374 { 0x0000078e, 0x0000 },
375 { 0x0000078f, 0x0080 },
376 { 0x000007c0, 0x0000 },
377 { 0x000007c1, 0x0080 },
378 { 0x000007c2, 0x0000 },
379 { 0x000007c3, 0x0080 },
380 { 0x000007c4, 0x0000 },
381 { 0x000007c5, 0x0080 },
382 { 0x000007c6, 0x0000 },
383 { 0x000007c7, 0x0080 },
384 { 0x000007c8, 0x0000 },
385 { 0x000007c9, 0x0080 },
386 { 0x000007ca, 0x0000 },
387 { 0x000007cb, 0x0080 },
388 { 0x000007cc, 0x0000 },
389 { 0x000007cd, 0x0080 },
390 { 0x000007ce, 0x0000 },
391 { 0x000007cf, 0x0080 },
392 { 0x000007d0, 0x0000 },
393 { 0x000007d1, 0x0080 },
394 { 0x000007d2, 0x0000 },
395 { 0x000007d3, 0x0080 },
396 { 0x000007d4, 0x0000 },
397 { 0x000007d5, 0x0080 },
398 { 0x000007d6, 0x0000 },
399 { 0x000007d7, 0x0080 },
400 { 0x000007d8, 0x0000 },
401 { 0x000007d9, 0x0080 },
402 { 0x000007da, 0x0000 },
403 { 0x000007db, 0x0080 },
404 { 0x000007dc, 0x0000 },
405 { 0x000007dd, 0x0080 },
406 { 0x000007de, 0x0000 },
407 { 0x000007df, 0x0080 },
408 { 0x000007e0, 0x0000 },
409 { 0x000007e1, 0x0080 },
410 { 0x000007e2, 0x0000 },
411 { 0x000007e3, 0x0080 },
412 { 0x000007e4, 0x0000 },
413 { 0x000007e5, 0x0080 },
414 { 0x000007e6, 0x0000 },
415 { 0x000007e7, 0x0080 },
416 { 0x000007e8, 0x0000 },
417 { 0x000007e9, 0x0080 },
418 { 0x000007ea, 0x0000 },
419 { 0x000007eb, 0x0080 },
420 { 0x000007ec, 0x0000 },
421 { 0x000007ed, 0x0080 },
422 { 0x000007ee, 0x0000 },
423 { 0x000007ef, 0x0080 },
424 { 0x00000800, 0x0000 },
425 { 0x00000801, 0x0080 },
426 { 0x00000808, 0x0000 },
427 { 0x00000809, 0x0080 },
428 { 0x00000880, 0x0000 },
429 { 0x00000881, 0x0080 },
430 { 0x00000882, 0x0000 },
431 { 0x00000883, 0x0080 },
432 { 0x00000884, 0x0000 },
433 { 0x00000885, 0x0080 },
434 { 0x00000886, 0x0000 },
435 { 0x00000887, 0x0080 },
436 { 0x00000888, 0x0000 },
437 { 0x00000889, 0x0080 },
438 { 0x0000088a, 0x0000 },
439 { 0x0000088b, 0x0080 },
440 { 0x0000088c, 0x0000 },
441 { 0x0000088d, 0x0080 },
442 { 0x0000088e, 0x0000 },
443 { 0x0000088f, 0x0080 },
444 { 0x00000890, 0x0000 },
445 { 0x00000891, 0x0080 },
446 { 0x00000892, 0x0000 },
447 { 0x00000893, 0x0080 },
448 { 0x00000894, 0x0000 },
449 { 0x00000895, 0x0080 },
450 { 0x00000896, 0x0000 },
451 { 0x00000897, 0x0080 },
452 { 0x00000898, 0x0000 },
453 { 0x00000899, 0x0080 },
454 { 0x0000089a, 0x0000 },
455 { 0x0000089b, 0x0080 },
456 { 0x0000089c, 0x0000 },
457 { 0x0000089d, 0x0080 },
458 { 0x0000089e, 0x0000 },
459 { 0x0000089f, 0x0080 },
460 { 0x000008c0, 0x0000 },
461 { 0x000008c1, 0x0080 },
462 { 0x000008c2, 0x0000 },
463 { 0x000008c3, 0x0080 },
464 { 0x000008c4, 0x0000 },
465 { 0x000008c5, 0x0080 },
466 { 0x000008c6, 0x0000 },
467 { 0x000008c7, 0x0080 },
468 { 0x000008c8, 0x0000 },
469 { 0x000008c9, 0x0080 },
470 { 0x000008ca, 0x0000 },
471 { 0x000008cb, 0x0080 },
472 { 0x000008cc, 0x0000 },
473 { 0x000008cd, 0x0080 },
474 { 0x000008ce, 0x0000 },
475 { 0x000008cf, 0x0080 },
476 { 0x000008d0, 0x0000 },
477 { 0x000008d1, 0x0080 },
478 { 0x000008d2, 0x0000 },
479 { 0x000008d3, 0x0080 },
480 { 0x000008d4, 0x0000 },
481 { 0x000008d5, 0x0080 },
482 { 0x000008d6, 0x0000 },
483 { 0x000008d7, 0x0080 },
484 { 0x000008d8, 0x0000 },
485 { 0x000008d9, 0x0080 },
486 { 0x000008da, 0x0000 },
487 { 0x000008db, 0x0080 },
488 { 0x000008dc, 0x0000 },
489 { 0x000008dd, 0x0080 },
490 { 0x000008de, 0x0000 },
491 { 0x000008df, 0x0080 },
492 { 0x00000900, 0x0000 },
493 { 0x00000901, 0x0080 },
494 { 0x00000902, 0x0000 },
495 { 0x00000903, 0x0080 },
496 { 0x00000904, 0x0000 },
497 { 0x00000905, 0x0080 },
498 { 0x00000906, 0x0000 },
499 { 0x00000907, 0x0080 },
500 { 0x00000908, 0x0000 },
501 { 0x00000909, 0x0080 },
502 { 0x0000090a, 0x0000 },
503 { 0x0000090b, 0x0080 },
504 { 0x0000090c, 0x0000 },
505 { 0x0000090d, 0x0080 },
506 { 0x0000090e, 0x0000 },
507 { 0x0000090f, 0x0080 },
508 { 0x00000910, 0x0000 },
509 { 0x00000911, 0x0080 },
510 { 0x00000912, 0x0000 },
511 { 0x00000913, 0x0080 },
512 { 0x00000914, 0x0000 },
513 { 0x00000915, 0x0080 },
514 { 0x00000916, 0x0000 },
515 { 0x00000917, 0x0080 },
516 { 0x00000918, 0x0000 },
517 { 0x00000919, 0x0080 },
518 { 0x0000091a, 0x0000 },
519 { 0x0000091b, 0x0080 },
520 { 0x0000091c, 0x0000 },
521 { 0x0000091d, 0x0080 },
522 { 0x0000091e, 0x0000 },
523 { 0x0000091f, 0x0080 },
524 { 0x00000940, 0x0000 },
525 { 0x00000941, 0x0080 },
526 { 0x00000942, 0x0000 },
527 { 0x00000943, 0x0080 },
528 { 0x00000944, 0x0000 },
529 { 0x00000945, 0x0080 },
530 { 0x00000946, 0x0000 },
531 { 0x00000947, 0x0080 },
532 { 0x00000948, 0x0000 },
533 { 0x00000949, 0x0080 },
534 { 0x0000094a, 0x0000 },
535 { 0x0000094b, 0x0080 },
536 { 0x0000094c, 0x0000 },
537 { 0x0000094d, 0x0080 },
538 { 0x0000094e, 0x0000 },
539 { 0x0000094f, 0x0080 },
540 { 0x00000950, 0x0000 },
541 { 0x00000958, 0x0000 },
542 { 0x00000960, 0x0000 },
543 { 0x00000968, 0x0000 },
544 { 0x00000970, 0x0000 },
545 { 0x00000978, 0x0000 },
546 { 0x00000980, 0x0000 },
547 { 0x00000981, 0x0080 },
548 { 0x00000982, 0x0000 },
549 { 0x00000983, 0x0080 },
550 { 0x00000984, 0x0000 },
551 { 0x00000985, 0x0080 },
552 { 0x00000986, 0x0000 },
553 { 0x00000987, 0x0080 },
554 { 0x00000988, 0x0000 },
555 { 0x00000989, 0x0080 },
556 { 0x0000098a, 0x0000 },
557 { 0x0000098b, 0x0080 },
558 { 0x0000098c, 0x0000 },
559 { 0x0000098d, 0x0080 },
560 { 0x0000098e, 0x0000 },
561 { 0x0000098f, 0x0080 },
562 { 0x00000990, 0x0000 },
563 { 0x00000998, 0x0000 },
564 { 0x000009a0, 0x0000 },
565 { 0x000009a8, 0x0000 },
566 { 0x000009b0, 0x0000 },
567 { 0x000009b8, 0x0000 },
568 { 0x000009c0, 0x0000 },
569 { 0x000009c1, 0x0080 },
570 { 0x000009c2, 0x0000 },
571 { 0x000009c3, 0x0080 },
572 { 0x000009c4, 0x0000 },
573 { 0x000009c5, 0x0080 },
574 { 0x000009c6, 0x0000 },
575 { 0x000009c7, 0x0080 },
576 { 0x000009c8, 0x0000 },
577 { 0x000009c9, 0x0080 },
578 { 0x000009ca, 0x0000 },
579 { 0x000009cb, 0x0080 },
580 { 0x000009cc, 0x0000 },
581 { 0x000009cd, 0x0080 },
582 { 0x000009ce, 0x0000 },
583 { 0x000009cf, 0x0080 },
584 { 0x000009d0, 0x0000 },
585 { 0x000009d8, 0x0000 },
586 { 0x000009e0, 0x0000 },
587 { 0x000009e8, 0x0000 },
588 { 0x000009f0, 0x0000 },
589 { 0x000009f8, 0x0000 },
590 { 0x00000b00, 0x0000 },
591 { 0x00000b08, 0x0000 },
592 { 0x00000b10, 0x0000 },
593 { 0x00000b18, 0x0000 },
594 { 0x00000b20, 0x0000 },
595 { 0x00000b28, 0x0000 },
596 { 0x00000b30, 0x0000 },
597 { 0x00000b38, 0x0000 },
598 { 0x00000b40, 0x0000 },
599 { 0x00000b48, 0x0000 },
600 { 0x00000b50, 0x0000 },
601 { 0x00000b58, 0x0000 },
602 { 0x00000b60, 0x0000 },
603 { 0x00000b68, 0x0000 },
604 { 0x00000b70, 0x0000 },
605 { 0x00000b78, 0x0000 },
606 { 0x00000e00, 0x0000 },
607 { 0x00000e10, 0x6318 },
608 { 0x00000e11, 0x6300 },
609 { 0x00000e12, 0x0fc8 },
610 { 0x00000e13, 0x03fe },
611 { 0x00000e14, 0x00e0 },
612 { 0x00000e15, 0x1ec4 },
613 { 0x00000e16, 0xf136 },
614 { 0x00000e17, 0x0409 },
615 { 0x00000e18, 0x04cc },
616 { 0x00000e19, 0x1c9b },
617 { 0x00000e1a, 0xf337 },
618 { 0x00000e1b, 0x040b },
619 { 0x00000e1c, 0x0cbb },
620 { 0x00000e1d, 0x16f8 },
621 { 0x00000e1e, 0xf7d9 },
622 { 0x00000e1f, 0x040a },
623 { 0x00000e20, 0x1f14 },
624 { 0x00000e21, 0x058c },
625 { 0x00000e22, 0x0563 },
626 { 0x00000e23, 0x4000 },
627 { 0x00000e24, 0x0b75 },
628 { 0x00000e26, 0x6318 },
629 { 0x00000e27, 0x6300 },
630 { 0x00000e28, 0x0fc8 },
631 { 0x00000e29, 0x03fe },
632 { 0x00000e2a, 0x00e0 },
633 { 0x00000e2b, 0x1ec4 },
634 { 0x00000e2c, 0xf136 },
635 { 0x00000e2d, 0x0409 },
636 { 0x00000e2e, 0x04cc },
637 { 0x00000e2f, 0x1c9b },
638 { 0x00000e30, 0xf337 },
639 { 0x00000e31, 0x040b },
640 { 0x00000e32, 0x0cbb },
641 { 0x00000e33, 0x16f8 },
642 { 0x00000e34, 0xf7d9 },
643 { 0x00000e35, 0x040a },
644 { 0x00000e36, 0x1f14 },
645 { 0x00000e37, 0x058c },
646 { 0x00000e38, 0x0563 },
647 { 0x00000e39, 0x4000 },
648 { 0x00000e3a, 0x0b75 },
649 { 0x00000e3c, 0x6318 },
650 { 0x00000e3d, 0x6300 },
651 { 0x00000e3e, 0x0fc8 },
652 { 0x00000e3f, 0x03fe },
653 { 0x00000e40, 0x00e0 },
654 { 0x00000e41, 0x1ec4 },
655 { 0x00000e42, 0xf136 },
656 { 0x00000e43, 0x0409 },
657 { 0x00000e44, 0x04cc },
658 { 0x00000e45, 0x1c9b },
659 { 0x00000e46, 0xf337 },
660 { 0x00000e47, 0x040b },
661 { 0x00000e48, 0x0cbb },
662 { 0x00000e49, 0x16f8 },
663 { 0x00000e4a, 0xf7d9 },
664 { 0x00000e4b, 0x040a },
665 { 0x00000e4c, 0x1f14 },
666 { 0x00000e4d, 0x058c },
667 { 0x00000e4e, 0x0563 },
668 { 0x00000e4f, 0x4000 },
669 { 0x00000e50, 0x0b75 },
670 { 0x00000e52, 0x6318 },
671 { 0x00000e53, 0x6300 },
672 { 0x00000e54, 0x0fc8 },
673 { 0x00000e55, 0x03fe },
674 { 0x00000e56, 0x00e0 },
675 { 0x00000e57, 0x1ec4 },
676 { 0x00000e58, 0xf136 },
677 { 0x00000e59, 0x0409 },
678 { 0x00000e5a, 0x04cc },
679 { 0x00000e5b, 0x1c9b },
680 { 0x00000e5c, 0xf337 },
681 { 0x00000e5d, 0x040b },
682 { 0x00000e5e, 0x0cbb },
683 { 0x00000e5f, 0x16f8 },
684 { 0x00000e60, 0xf7d9 },
685 { 0x00000e61, 0x040a },
686 { 0x00000e62, 0x1f14 },
687 { 0x00000e63, 0x058c },
688 { 0x00000e64, 0x0563 },
689 { 0x00000e65, 0x4000 },
690 { 0x00000e66, 0x0b75 },
691 { 0x00000e80, 0x0018 },
692 { 0x00000e81, 0x0933 },
693 { 0x00000e82, 0x0018 },
694 { 0x00000e83, 0x0000 },
695 { 0x00000e84, 0x0000 },
696 { 0x00000e88, 0x0018 },
697 { 0x00000e89, 0x0933 },
698 { 0x00000e8a, 0x0018 },
699 { 0x00000e8b, 0x0000 },
700 { 0x00000e8c, 0x0000 },
701 { 0x00000ec0, 0x0000 },
702 { 0x00000ec1, 0x0000 },
703 { 0x00000ec4, 0x0000 },
704 { 0x00000ec5, 0x0000 },
705 { 0x00000ec8, 0x0000 },
706 { 0x00000ec9, 0x0000 },
707 { 0x00000ecc, 0x0000 },
708 { 0x00000ecd, 0x0000 },
709 { 0x00000ef0, 0x0000 },
710 { 0x00000ef1, 0x0001 },
711 { 0x00000ef2, 0x0000 },
712 { 0x00000ef3, 0x0000 },
713 { 0x00000ef4, 0x0001 },
714 { 0x00000ef5, 0x0000 },
715 { 0x00001700, 0x2001 },
716 { 0x00001701, 0xf000 },
717 { 0x00001702, 0x2001 },
718 { 0x00001703, 0xf000 },
719 { 0x00001704, 0x2001 },
720 { 0x00001705, 0xf000 },
721 { 0x00001706, 0x2001 },
722 { 0x00001707, 0xf000 },
723 { 0x00001708, 0x2001 },
724 { 0x00001709, 0xf000 },
725 { 0x0000170a, 0x2001 },
726 { 0x0000170b, 0xf000 },
727 { 0x0000170c, 0x2001 },
728 { 0x0000170d, 0xf000 },
729 { 0x0000170e, 0x2001 },
730 { 0x0000170f, 0xf000 },
731 { 0x00001710, 0x2001 },
732 { 0x00001711, 0xf000 },
733 { 0x00001712, 0x2001 },
734 { 0x00001713, 0xf000 },
735 { 0x00001714, 0x2001 },
736 { 0x00001715, 0xf000 },
737 { 0x00001716, 0x2001 },
738 { 0x00001717, 0xf000 },
739 { 0x00001718, 0x2001 },
740 { 0x00001719, 0xf000 },
741 { 0x0000171a, 0x2001 },
742 { 0x0000171b, 0xf000 },
743 { 0x0000171c, 0x2001 },
744 { 0x0000171d, 0xf000 },
745 { 0x0000171e, 0x2001 },
746 { 0x0000171f, 0xf000 },
747 { 0x00001840, 0xffff },
748 { 0x00001841, 0xffff },
749 { 0x00001842, 0xffff },
750 { 0x00001843, 0xffff },
751 { 0x00001844, 0xffff },
752 { 0x00001845, 0xffff },
753 { 0x00001846, 0xffff },
754 { 0x00001847, 0xffff },
755 { 0x00001848, 0xffff },
756 { 0x00001849, 0xffff },
757 { 0x0000184a, 0xffff },
758 { 0x0000184b, 0xffff },
759 { 0x0000184c, 0xffff },
760 { 0x0000184d, 0xffff },
761 { 0x0000184e, 0xffff },
762 { 0x0000184f, 0xffff },
763 { 0x00001850, 0xffff },
764 { 0x00001851, 0xffff },
765 { 0x00001852, 0xffff },
766 { 0x00001853, 0xffff },
767 { 0x00001854, 0xffff },
768 { 0x00001855, 0xffff },
769 { 0x00001856, 0xffff },
770 { 0x00001857, 0xffff },
771 { 0x00001858, 0xffff },
772 { 0x00001859, 0xffff },
773 { 0x0000185a, 0xffff },
774 { 0x0000185b, 0xffff },
775 { 0x0000185c, 0xffff },
776 { 0x0000185d, 0xffff },
777 { 0x0000185e, 0xffff },
778 { 0x0000185f, 0xffff },
779 { 0x00001860, 0xffff },
780 { 0x00001a06, 0x0000 },
781 { 0x00001a80, 0x4400 },
782 };
783
784 static bool cs47l35_is_adsp_memory(unsigned int reg)
785 {
786 switch (reg) {
787 case 0x080000 ... 0x085ffe:
788 case 0x0a0000 ... 0x0a7ffe:
789 case 0x0c0000 ... 0x0c1ffe:
790 case 0x0e0000 ... 0x0e1ffe:
791 case 0x100000 ... 0x10effe:
792 case 0x120000 ... 0x12bffe:
793 case 0x136000 ... 0x137ffe:
794 case 0x140000 ... 0x14bffe:
795 case 0x160000 ... 0x161ffe:
796 case 0x180000 ... 0x18effe:
797 case 0x1a0000 ... 0x1b1ffe:
798 case 0x1b6000 ... 0x1b7ffe:
799 case 0x1c0000 ... 0x1cbffe:
800 case 0x1e0000 ... 0x1e1ffe:
801 return true;
802 default:
803 return false;
804 }
805 }
806
807 static bool cs47l35_16bit_readable_register(struct device *dev,
808 unsigned int reg)
809 {
810 switch (reg) {
811 case MADERA_SOFTWARE_RESET:
812 case MADERA_HARDWARE_REVISION:
813 case MADERA_WRITE_SEQUENCER_CTRL_0:
814 case MADERA_WRITE_SEQUENCER_CTRL_1:
815 case MADERA_WRITE_SEQUENCER_CTRL_2:
816 case MADERA_TONE_GENERATOR_1:
817 case MADERA_TONE_GENERATOR_2:
818 case MADERA_TONE_GENERATOR_3:
819 case MADERA_TONE_GENERATOR_4:
820 case MADERA_TONE_GENERATOR_5:
821 case MADERA_PWM_DRIVE_1:
822 case MADERA_PWM_DRIVE_2:
823 case MADERA_PWM_DRIVE_3:
824 case MADERA_SAMPLE_RATE_SEQUENCE_SELECT_1:
825 case MADERA_SAMPLE_RATE_SEQUENCE_SELECT_2:
826 case MADERA_SAMPLE_RATE_SEQUENCE_SELECT_3:
827 case MADERA_SAMPLE_RATE_SEQUENCE_SELECT_4:
828 case MADERA_ALWAYS_ON_TRIGGERS_SEQUENCE_SELECT_1:
829 case MADERA_ALWAYS_ON_TRIGGERS_SEQUENCE_SELECT_2:
830 case MADERA_HAPTICS_CONTROL_1:
831 case MADERA_HAPTICS_CONTROL_2:
832 case MADERA_HAPTICS_PHASE_1_INTENSITY:
833 case MADERA_HAPTICS_PHASE_1_DURATION:
834 case MADERA_HAPTICS_PHASE_2_INTENSITY:
835 case MADERA_HAPTICS_PHASE_2_DURATION:
836 case MADERA_HAPTICS_PHASE_3_INTENSITY:
837 case MADERA_HAPTICS_PHASE_3_DURATION:
838 case MADERA_HAPTICS_STATUS:
839 case MADERA_COMFORT_NOISE_GENERATOR:
840 case MADERA_CLOCK_32K_1:
841 case MADERA_SYSTEM_CLOCK_1:
842 case MADERA_SAMPLE_RATE_1:
843 case MADERA_SAMPLE_RATE_2:
844 case MADERA_SAMPLE_RATE_3:
845 case MADERA_SAMPLE_RATE_1_STATUS:
846 case MADERA_SAMPLE_RATE_2_STATUS:
847 case MADERA_SAMPLE_RATE_3_STATUS:
848 case MADERA_DSP_CLOCK_1:
849 case MADERA_DSP_CLOCK_2:
850 case MADERA_OUTPUT_SYSTEM_CLOCK:
851 case MADERA_OUTPUT_ASYNC_CLOCK:
852 case MADERA_RATE_ESTIMATOR_1:
853 case MADERA_RATE_ESTIMATOR_2:
854 case MADERA_RATE_ESTIMATOR_3:
855 case MADERA_RATE_ESTIMATOR_4:
856 case MADERA_RATE_ESTIMATOR_5:
857 case MADERA_FLL1_CONTROL_1:
858 case MADERA_FLL1_CONTROL_2:
859 case MADERA_FLL1_CONTROL_3:
860 case MADERA_FLL1_CONTROL_4:
861 case MADERA_FLL1_CONTROL_5:
862 case MADERA_FLL1_CONTROL_6:
863 case MADERA_FLL1_CONTROL_7:
864 case MADERA_FLL1_EFS_2:
865 case CS47L35_FLL1_SYNCHRONISER_1:
866 case CS47L35_FLL1_SYNCHRONISER_2:
867 case CS47L35_FLL1_SYNCHRONISER_3:
868 case CS47L35_FLL1_SYNCHRONISER_4:
869 case CS47L35_FLL1_SYNCHRONISER_5:
870 case CS47L35_FLL1_SYNCHRONISER_6:
871 case CS47L35_FLL1_SYNCHRONISER_7:
872 case CS47L35_FLL1_SPREAD_SPECTRUM:
873 case CS47L35_FLL1_GPIO_CLOCK:
874 case MADERA_MIC_CHARGE_PUMP_1:
875 case MADERA_HP_CHARGE_PUMP_8:
876 case MADERA_LDO2_CONTROL_1:
877 case MADERA_MIC_BIAS_CTRL_1:
878 case MADERA_MIC_BIAS_CTRL_2:
879 case MADERA_MIC_BIAS_CTRL_5:
880 case MADERA_MIC_BIAS_CTRL_6:
881 case MADERA_HP_CTRL_1L:
882 case MADERA_HP_CTRL_1R:
883 case MADERA_DCS_HP1L_CONTROL:
884 case MADERA_DCS_HP1R_CONTROL:
885 case MADERA_EDRE_HP_STEREO_CONTROL:
886 case MADERA_ACCESSORY_DETECT_MODE_1:
887 case MADERA_HEADPHONE_DETECT_1:
888 case MADERA_HEADPHONE_DETECT_2:
889 case MADERA_HEADPHONE_DETECT_3:
890 case MADERA_HEADPHONE_DETECT_5:
891 case MADERA_MICD_CLAMP_CONTROL:
892 case MADERA_MIC_DETECT_1_CONTROL_1:
893 case MADERA_MIC_DETECT_1_CONTROL_2:
894 case MADERA_MIC_DETECT_1_CONTROL_3:
895 case MADERA_MIC_DETECT_1_LEVEL_1:
896 case MADERA_MIC_DETECT_1_LEVEL_2:
897 case MADERA_MIC_DETECT_1_LEVEL_3:
898 case MADERA_MIC_DETECT_1_LEVEL_4:
899 case MADERA_MIC_DETECT_1_CONTROL_4:
900 case MADERA_GP_SWITCH_1:
901 case MADERA_JACK_DETECT_ANALOGUE:
902 case MADERA_INPUT_ENABLES:
903 case MADERA_INPUT_ENABLES_STATUS:
904 case MADERA_INPUT_RATE:
905 case MADERA_INPUT_VOLUME_RAMP:
906 case MADERA_HPF_CONTROL:
907 case MADERA_IN1L_CONTROL:
908 case MADERA_ADC_DIGITAL_VOLUME_1L:
909 case MADERA_DMIC1L_CONTROL:
910 case MADERA_IN1R_CONTROL:
911 case MADERA_ADC_DIGITAL_VOLUME_1R:
912 case MADERA_DMIC1R_CONTROL:
913 case MADERA_IN2L_CONTROL:
914 case MADERA_ADC_DIGITAL_VOLUME_2L:
915 case MADERA_DMIC2L_CONTROL:
916 case MADERA_IN2R_CONTROL:
917 case MADERA_ADC_DIGITAL_VOLUME_2R:
918 case MADERA_DMIC2R_CONTROL:
919 case MADERA_OUTPUT_ENABLES_1:
920 case MADERA_OUTPUT_STATUS_1:
921 case MADERA_RAW_OUTPUT_STATUS_1:
922 case MADERA_OUTPUT_RATE_1:
923 case MADERA_OUTPUT_VOLUME_RAMP:
924 case MADERA_OUTPUT_PATH_CONFIG_1L:
925 case MADERA_DAC_DIGITAL_VOLUME_1L:
926 case MADERA_NOISE_GATE_SELECT_1L:
927 case MADERA_OUTPUT_PATH_CONFIG_1R:
928 case MADERA_DAC_DIGITAL_VOLUME_1R:
929 case MADERA_NOISE_GATE_SELECT_1R:
930 case MADERA_OUTPUT_PATH_CONFIG_4L:
931 case MADERA_DAC_DIGITAL_VOLUME_4L:
932 case MADERA_NOISE_GATE_SELECT_4L:
933 case MADERA_OUTPUT_PATH_CONFIG_5L:
934 case MADERA_DAC_DIGITAL_VOLUME_5L:
935 case MADERA_NOISE_GATE_SELECT_5L:
936 case MADERA_OUTPUT_PATH_CONFIG_5R:
937 case MADERA_DAC_DIGITAL_VOLUME_5R:
938 case MADERA_NOISE_GATE_SELECT_5R:
939 case MADERA_DAC_AEC_CONTROL_1:
940 case MADERA_DAC_AEC_CONTROL_2:
941 case MADERA_NOISE_GATE_CONTROL:
942 case MADERA_PDM_SPK1_CTRL_1:
943 case MADERA_PDM_SPK1_CTRL_2:
944 case MADERA_HP1_SHORT_CIRCUIT_CTRL:
945 case MADERA_HP_TEST_CTRL_5:
946 case MADERA_HP_TEST_CTRL_6:
947 case MADERA_AIF1_BCLK_CTRL:
948 case MADERA_AIF1_TX_PIN_CTRL:
949 case MADERA_AIF1_RX_PIN_CTRL:
950 case MADERA_AIF1_RATE_CTRL:
951 case MADERA_AIF1_FORMAT:
952 case MADERA_AIF1_RX_BCLK_RATE:
953 case MADERA_AIF1_FRAME_CTRL_1:
954 case MADERA_AIF1_FRAME_CTRL_2:
955 case MADERA_AIF1_FRAME_CTRL_3:
956 case MADERA_AIF1_FRAME_CTRL_4:
957 case MADERA_AIF1_FRAME_CTRL_5:
958 case MADERA_AIF1_FRAME_CTRL_6:
959 case MADERA_AIF1_FRAME_CTRL_7:
960 case MADERA_AIF1_FRAME_CTRL_8:
961 case MADERA_AIF1_FRAME_CTRL_11:
962 case MADERA_AIF1_FRAME_CTRL_12:
963 case MADERA_AIF1_FRAME_CTRL_13:
964 case MADERA_AIF1_FRAME_CTRL_14:
965 case MADERA_AIF1_FRAME_CTRL_15:
966 case MADERA_AIF1_FRAME_CTRL_16:
967 case MADERA_AIF1_TX_ENABLES:
968 case MADERA_AIF1_RX_ENABLES:
969 case MADERA_AIF2_BCLK_CTRL:
970 case MADERA_AIF2_TX_PIN_CTRL:
971 case MADERA_AIF2_RX_PIN_CTRL:
972 case MADERA_AIF2_RATE_CTRL:
973 case MADERA_AIF2_FORMAT:
974 case MADERA_AIF2_RX_BCLK_RATE:
975 case MADERA_AIF2_FRAME_CTRL_1:
976 case MADERA_AIF2_FRAME_CTRL_2:
977 case MADERA_AIF2_FRAME_CTRL_3:
978 case MADERA_AIF2_FRAME_CTRL_4:
979 case MADERA_AIF2_FRAME_CTRL_11:
980 case MADERA_AIF2_FRAME_CTRL_12:
981 case MADERA_AIF2_TX_ENABLES:
982 case MADERA_AIF2_RX_ENABLES:
983 case MADERA_AIF3_BCLK_CTRL:
984 case MADERA_AIF3_TX_PIN_CTRL:
985 case MADERA_AIF3_RX_PIN_CTRL:
986 case MADERA_AIF3_RATE_CTRL:
987 case MADERA_AIF3_FORMAT:
988 case MADERA_AIF3_RX_BCLK_RATE:
989 case MADERA_AIF3_FRAME_CTRL_1:
990 case MADERA_AIF3_FRAME_CTRL_2:
991 case MADERA_AIF3_FRAME_CTRL_3:
992 case MADERA_AIF3_FRAME_CTRL_4:
993 case MADERA_AIF3_FRAME_CTRL_11:
994 case MADERA_AIF3_FRAME_CTRL_12:
995 case MADERA_AIF3_TX_ENABLES:
996 case MADERA_AIF3_RX_ENABLES:
997 case MADERA_SPD1_TX_CONTROL:
998 case MADERA_SPD1_TX_CHANNEL_STATUS_1:
999 case MADERA_SPD1_TX_CHANNEL_STATUS_2:
1000 case MADERA_SPD1_TX_CHANNEL_STATUS_3:
1001 case MADERA_SLIMBUS_FRAMER_REF_GEAR:
1002 case MADERA_SLIMBUS_RATES_1:
1003 case MADERA_SLIMBUS_RATES_2:
1004 case MADERA_SLIMBUS_RATES_3:
1005 case MADERA_SLIMBUS_RATES_5:
1006 case MADERA_SLIMBUS_RATES_6:
1007 case MADERA_SLIMBUS_RATES_7:
1008 case MADERA_SLIMBUS_RX_CHANNEL_ENABLE:
1009 case MADERA_SLIMBUS_TX_CHANNEL_ENABLE:
1010 case MADERA_SLIMBUS_RX_PORT_STATUS:
1011 case MADERA_SLIMBUS_TX_PORT_STATUS:
1012 case MADERA_PWM1MIX_INPUT_1_SOURCE:
1013 case MADERA_PWM1MIX_INPUT_1_VOLUME:
1014 case MADERA_PWM1MIX_INPUT_2_SOURCE:
1015 case MADERA_PWM1MIX_INPUT_2_VOLUME:
1016 case MADERA_PWM1MIX_INPUT_3_SOURCE:
1017 case MADERA_PWM1MIX_INPUT_3_VOLUME:
1018 case MADERA_PWM1MIX_INPUT_4_SOURCE:
1019 case MADERA_PWM1MIX_INPUT_4_VOLUME:
1020 case MADERA_PWM2MIX_INPUT_1_SOURCE:
1021 case MADERA_PWM2MIX_INPUT_1_VOLUME:
1022 case MADERA_PWM2MIX_INPUT_2_SOURCE:
1023 case MADERA_PWM2MIX_INPUT_2_VOLUME:
1024 case MADERA_PWM2MIX_INPUT_3_SOURCE:
1025 case MADERA_PWM2MIX_INPUT_3_VOLUME:
1026 case MADERA_PWM2MIX_INPUT_4_SOURCE:
1027 case MADERA_PWM2MIX_INPUT_4_VOLUME:
1028 case MADERA_OUT1LMIX_INPUT_1_SOURCE:
1029 case MADERA_OUT1LMIX_INPUT_1_VOLUME:
1030 case MADERA_OUT1LMIX_INPUT_2_SOURCE:
1031 case MADERA_OUT1LMIX_INPUT_2_VOLUME:
1032 case MADERA_OUT1LMIX_INPUT_3_SOURCE:
1033 case MADERA_OUT1LMIX_INPUT_3_VOLUME:
1034 case MADERA_OUT1LMIX_INPUT_4_SOURCE:
1035 case MADERA_OUT1LMIX_INPUT_4_VOLUME:
1036 case MADERA_OUT1RMIX_INPUT_1_SOURCE:
1037 case MADERA_OUT1RMIX_INPUT_1_VOLUME:
1038 case MADERA_OUT1RMIX_INPUT_2_SOURCE:
1039 case MADERA_OUT1RMIX_INPUT_2_VOLUME:
1040 case MADERA_OUT1RMIX_INPUT_3_SOURCE:
1041 case MADERA_OUT1RMIX_INPUT_3_VOLUME:
1042 case MADERA_OUT1RMIX_INPUT_4_SOURCE:
1043 case MADERA_OUT1RMIX_INPUT_4_VOLUME:
1044 case MADERA_OUT4LMIX_INPUT_1_SOURCE:
1045 case MADERA_OUT4LMIX_INPUT_1_VOLUME:
1046 case MADERA_OUT4LMIX_INPUT_2_SOURCE:
1047 case MADERA_OUT4LMIX_INPUT_2_VOLUME:
1048 case MADERA_OUT4LMIX_INPUT_3_SOURCE:
1049 case MADERA_OUT4LMIX_INPUT_3_VOLUME:
1050 case MADERA_OUT4LMIX_INPUT_4_SOURCE:
1051 case MADERA_OUT4LMIX_INPUT_4_VOLUME:
1052 case MADERA_OUT5LMIX_INPUT_1_SOURCE:
1053 case MADERA_OUT5LMIX_INPUT_1_VOLUME:
1054 case MADERA_OUT5LMIX_INPUT_2_SOURCE:
1055 case MADERA_OUT5LMIX_INPUT_2_VOLUME:
1056 case MADERA_OUT5LMIX_INPUT_3_SOURCE:
1057 case MADERA_OUT5LMIX_INPUT_3_VOLUME:
1058 case MADERA_OUT5LMIX_INPUT_4_SOURCE:
1059 case MADERA_OUT5LMIX_INPUT_4_VOLUME:
1060 case MADERA_OUT5RMIX_INPUT_1_SOURCE:
1061 case MADERA_OUT5RMIX_INPUT_1_VOLUME:
1062 case MADERA_OUT5RMIX_INPUT_2_SOURCE:
1063 case MADERA_OUT5RMIX_INPUT_2_VOLUME:
1064 case MADERA_OUT5RMIX_INPUT_3_SOURCE:
1065 case MADERA_OUT5RMIX_INPUT_3_VOLUME:
1066 case MADERA_OUT5RMIX_INPUT_4_SOURCE:
1067 case MADERA_OUT5RMIX_INPUT_4_VOLUME:
1068 case MADERA_AIF1TX1MIX_INPUT_1_SOURCE:
1069 case MADERA_AIF1TX1MIX_INPUT_1_VOLUME:
1070 case MADERA_AIF1TX1MIX_INPUT_2_SOURCE:
1071 case MADERA_AIF1TX1MIX_INPUT_2_VOLUME:
1072 case MADERA_AIF1TX1MIX_INPUT_3_SOURCE:
1073 case MADERA_AIF1TX1MIX_INPUT_3_VOLUME:
1074 case MADERA_AIF1TX1MIX_INPUT_4_SOURCE:
1075 case MADERA_AIF1TX1MIX_INPUT_4_VOLUME:
1076 case MADERA_AIF1TX2MIX_INPUT_1_SOURCE:
1077 case MADERA_AIF1TX2MIX_INPUT_1_VOLUME:
1078 case MADERA_AIF1TX2MIX_INPUT_2_SOURCE:
1079 case MADERA_AIF1TX2MIX_INPUT_2_VOLUME:
1080 case MADERA_AIF1TX2MIX_INPUT_3_SOURCE:
1081 case MADERA_AIF1TX2MIX_INPUT_3_VOLUME:
1082 case MADERA_AIF1TX2MIX_INPUT_4_SOURCE:
1083 case MADERA_AIF1TX2MIX_INPUT_4_VOLUME:
1084 case MADERA_AIF1TX3MIX_INPUT_1_SOURCE:
1085 case MADERA_AIF1TX3MIX_INPUT_1_VOLUME:
1086 case MADERA_AIF1TX3MIX_INPUT_2_SOURCE:
1087 case MADERA_AIF1TX3MIX_INPUT_2_VOLUME:
1088 case MADERA_AIF1TX3MIX_INPUT_3_SOURCE:
1089 case MADERA_AIF1TX3MIX_INPUT_3_VOLUME:
1090 case MADERA_AIF1TX3MIX_INPUT_4_SOURCE:
1091 case MADERA_AIF1TX3MIX_INPUT_4_VOLUME:
1092 case MADERA_AIF1TX4MIX_INPUT_1_SOURCE:
1093 case MADERA_AIF1TX4MIX_INPUT_1_VOLUME:
1094 case MADERA_AIF1TX4MIX_INPUT_2_SOURCE:
1095 case MADERA_AIF1TX4MIX_INPUT_2_VOLUME:
1096 case MADERA_AIF1TX4MIX_INPUT_3_SOURCE:
1097 case MADERA_AIF1TX4MIX_INPUT_3_VOLUME:
1098 case MADERA_AIF1TX4MIX_INPUT_4_SOURCE:
1099 case MADERA_AIF1TX4MIX_INPUT_4_VOLUME:
1100 case MADERA_AIF1TX5MIX_INPUT_1_SOURCE:
1101 case MADERA_AIF1TX5MIX_INPUT_1_VOLUME:
1102 case MADERA_AIF1TX5MIX_INPUT_2_SOURCE:
1103 case MADERA_AIF1TX5MIX_INPUT_2_VOLUME:
1104 case MADERA_AIF1TX5MIX_INPUT_3_SOURCE:
1105 case MADERA_AIF1TX5MIX_INPUT_3_VOLUME:
1106 case MADERA_AIF1TX5MIX_INPUT_4_SOURCE:
1107 case MADERA_AIF1TX5MIX_INPUT_4_VOLUME:
1108 case MADERA_AIF1TX6MIX_INPUT_1_SOURCE:
1109 case MADERA_AIF1TX6MIX_INPUT_1_VOLUME:
1110 case MADERA_AIF1TX6MIX_INPUT_2_SOURCE:
1111 case MADERA_AIF1TX6MIX_INPUT_2_VOLUME:
1112 case MADERA_AIF1TX6MIX_INPUT_3_SOURCE:
1113 case MADERA_AIF1TX6MIX_INPUT_3_VOLUME:
1114 case MADERA_AIF1TX6MIX_INPUT_4_SOURCE:
1115 case MADERA_AIF1TX6MIX_INPUT_4_VOLUME:
1116 case MADERA_AIF2TX1MIX_INPUT_1_SOURCE:
1117 case MADERA_AIF2TX1MIX_INPUT_1_VOLUME:
1118 case MADERA_AIF2TX1MIX_INPUT_2_SOURCE:
1119 case MADERA_AIF2TX1MIX_INPUT_2_VOLUME:
1120 case MADERA_AIF2TX1MIX_INPUT_3_SOURCE:
1121 case MADERA_AIF2TX1MIX_INPUT_3_VOLUME:
1122 case MADERA_AIF2TX1MIX_INPUT_4_SOURCE:
1123 case MADERA_AIF2TX1MIX_INPUT_4_VOLUME:
1124 case MADERA_AIF2TX2MIX_INPUT_1_SOURCE:
1125 case MADERA_AIF2TX2MIX_INPUT_1_VOLUME:
1126 case MADERA_AIF2TX2MIX_INPUT_2_SOURCE:
1127 case MADERA_AIF2TX2MIX_INPUT_2_VOLUME:
1128 case MADERA_AIF2TX2MIX_INPUT_3_SOURCE:
1129 case MADERA_AIF2TX2MIX_INPUT_3_VOLUME:
1130 case MADERA_AIF2TX2MIX_INPUT_4_SOURCE:
1131 case MADERA_AIF2TX2MIX_INPUT_4_VOLUME:
1132 case MADERA_AIF3TX1MIX_INPUT_1_SOURCE:
1133 case MADERA_AIF3TX1MIX_INPUT_1_VOLUME:
1134 case MADERA_AIF3TX1MIX_INPUT_2_SOURCE:
1135 case MADERA_AIF3TX1MIX_INPUT_2_VOLUME:
1136 case MADERA_AIF3TX1MIX_INPUT_3_SOURCE:
1137 case MADERA_AIF3TX1MIX_INPUT_3_VOLUME:
1138 case MADERA_AIF3TX1MIX_INPUT_4_SOURCE:
1139 case MADERA_AIF3TX1MIX_INPUT_4_VOLUME:
1140 case MADERA_AIF3TX2MIX_INPUT_1_SOURCE:
1141 case MADERA_AIF3TX2MIX_INPUT_1_VOLUME:
1142 case MADERA_AIF3TX2MIX_INPUT_2_SOURCE:
1143 case MADERA_AIF3TX2MIX_INPUT_2_VOLUME:
1144 case MADERA_AIF3TX2MIX_INPUT_3_SOURCE:
1145 case MADERA_AIF3TX2MIX_INPUT_3_VOLUME:
1146 case MADERA_AIF3TX2MIX_INPUT_4_SOURCE:
1147 case MADERA_AIF3TX2MIX_INPUT_4_VOLUME:
1148 case MADERA_SLIMTX1MIX_INPUT_1_SOURCE:
1149 case MADERA_SLIMTX1MIX_INPUT_1_VOLUME:
1150 case MADERA_SLIMTX1MIX_INPUT_2_SOURCE:
1151 case MADERA_SLIMTX1MIX_INPUT_2_VOLUME:
1152 case MADERA_SLIMTX1MIX_INPUT_3_SOURCE:
1153 case MADERA_SLIMTX1MIX_INPUT_3_VOLUME:
1154 case MADERA_SLIMTX1MIX_INPUT_4_SOURCE:
1155 case MADERA_SLIMTX1MIX_INPUT_4_VOLUME:
1156 case MADERA_SLIMTX2MIX_INPUT_1_SOURCE:
1157 case MADERA_SLIMTX2MIX_INPUT_1_VOLUME:
1158 case MADERA_SLIMTX2MIX_INPUT_2_SOURCE:
1159 case MADERA_SLIMTX2MIX_INPUT_2_VOLUME:
1160 case MADERA_SLIMTX2MIX_INPUT_3_SOURCE:
1161 case MADERA_SLIMTX2MIX_INPUT_3_VOLUME:
1162 case MADERA_SLIMTX2MIX_INPUT_4_SOURCE:
1163 case MADERA_SLIMTX2MIX_INPUT_4_VOLUME:
1164 case MADERA_SLIMTX3MIX_INPUT_1_SOURCE:
1165 case MADERA_SLIMTX3MIX_INPUT_1_VOLUME:
1166 case MADERA_SLIMTX3MIX_INPUT_2_SOURCE:
1167 case MADERA_SLIMTX3MIX_INPUT_2_VOLUME:
1168 case MADERA_SLIMTX3MIX_INPUT_3_SOURCE:
1169 case MADERA_SLIMTX3MIX_INPUT_3_VOLUME:
1170 case MADERA_SLIMTX3MIX_INPUT_4_SOURCE:
1171 case MADERA_SLIMTX3MIX_INPUT_4_VOLUME:
1172 case MADERA_SLIMTX4MIX_INPUT_1_SOURCE:
1173 case MADERA_SLIMTX4MIX_INPUT_1_VOLUME:
1174 case MADERA_SLIMTX4MIX_INPUT_2_SOURCE:
1175 case MADERA_SLIMTX4MIX_INPUT_2_VOLUME:
1176 case MADERA_SLIMTX4MIX_INPUT_3_SOURCE:
1177 case MADERA_SLIMTX4MIX_INPUT_3_VOLUME:
1178 case MADERA_SLIMTX4MIX_INPUT_4_SOURCE:
1179 case MADERA_SLIMTX4MIX_INPUT_4_VOLUME:
1180 case MADERA_SLIMTX5MIX_INPUT_1_SOURCE:
1181 case MADERA_SLIMTX5MIX_INPUT_1_VOLUME:
1182 case MADERA_SLIMTX5MIX_INPUT_2_SOURCE:
1183 case MADERA_SLIMTX5MIX_INPUT_2_VOLUME:
1184 case MADERA_SLIMTX5MIX_INPUT_3_SOURCE:
1185 case MADERA_SLIMTX5MIX_INPUT_3_VOLUME:
1186 case MADERA_SLIMTX5MIX_INPUT_4_SOURCE:
1187 case MADERA_SLIMTX5MIX_INPUT_4_VOLUME:
1188 case MADERA_SLIMTX6MIX_INPUT_1_SOURCE:
1189 case MADERA_SLIMTX6MIX_INPUT_1_VOLUME:
1190 case MADERA_SLIMTX6MIX_INPUT_2_SOURCE:
1191 case MADERA_SLIMTX6MIX_INPUT_2_VOLUME:
1192 case MADERA_SLIMTX6MIX_INPUT_3_SOURCE:
1193 case MADERA_SLIMTX6MIX_INPUT_3_VOLUME:
1194 case MADERA_SLIMTX6MIX_INPUT_4_SOURCE:
1195 case MADERA_SLIMTX6MIX_INPUT_4_VOLUME:
1196 case MADERA_SPDIF1TX1MIX_INPUT_1_SOURCE:
1197 case MADERA_SPDIF1TX1MIX_INPUT_1_VOLUME:
1198 case MADERA_SPDIF1TX2MIX_INPUT_1_SOURCE:
1199 case MADERA_SPDIF1TX2MIX_INPUT_1_VOLUME:
1200 case MADERA_EQ1MIX_INPUT_1_SOURCE:
1201 case MADERA_EQ1MIX_INPUT_1_VOLUME:
1202 case MADERA_EQ1MIX_INPUT_2_SOURCE:
1203 case MADERA_EQ1MIX_INPUT_2_VOLUME:
1204 case MADERA_EQ1MIX_INPUT_3_SOURCE:
1205 case MADERA_EQ1MIX_INPUT_3_VOLUME:
1206 case MADERA_EQ1MIX_INPUT_4_SOURCE:
1207 case MADERA_EQ1MIX_INPUT_4_VOLUME:
1208 case MADERA_EQ2MIX_INPUT_1_SOURCE:
1209 case MADERA_EQ2MIX_INPUT_1_VOLUME:
1210 case MADERA_EQ2MIX_INPUT_2_SOURCE:
1211 case MADERA_EQ2MIX_INPUT_2_VOLUME:
1212 case MADERA_EQ2MIX_INPUT_3_SOURCE:
1213 case MADERA_EQ2MIX_INPUT_3_VOLUME:
1214 case MADERA_EQ2MIX_INPUT_4_SOURCE:
1215 case MADERA_EQ2MIX_INPUT_4_VOLUME:
1216 case MADERA_EQ3MIX_INPUT_1_SOURCE:
1217 case MADERA_EQ3MIX_INPUT_1_VOLUME:
1218 case MADERA_EQ3MIX_INPUT_2_SOURCE:
1219 case MADERA_EQ3MIX_INPUT_2_VOLUME:
1220 case MADERA_EQ3MIX_INPUT_3_SOURCE:
1221 case MADERA_EQ3MIX_INPUT_3_VOLUME:
1222 case MADERA_EQ3MIX_INPUT_4_SOURCE:
1223 case MADERA_EQ3MIX_INPUT_4_VOLUME:
1224 case MADERA_EQ4MIX_INPUT_1_SOURCE:
1225 case MADERA_EQ4MIX_INPUT_1_VOLUME:
1226 case MADERA_EQ4MIX_INPUT_2_SOURCE:
1227 case MADERA_EQ4MIX_INPUT_2_VOLUME:
1228 case MADERA_EQ4MIX_INPUT_3_SOURCE:
1229 case MADERA_EQ4MIX_INPUT_3_VOLUME:
1230 case MADERA_EQ4MIX_INPUT_4_SOURCE:
1231 case MADERA_EQ4MIX_INPUT_4_VOLUME:
1232 case MADERA_DRC1LMIX_INPUT_1_SOURCE:
1233 case MADERA_DRC1LMIX_INPUT_1_VOLUME:
1234 case MADERA_DRC1LMIX_INPUT_2_SOURCE:
1235 case MADERA_DRC1LMIX_INPUT_2_VOLUME:
1236 case MADERA_DRC1LMIX_INPUT_3_SOURCE:
1237 case MADERA_DRC1LMIX_INPUT_3_VOLUME:
1238 case MADERA_DRC1LMIX_INPUT_4_SOURCE:
1239 case MADERA_DRC1LMIX_INPUT_4_VOLUME:
1240 case MADERA_DRC1RMIX_INPUT_1_SOURCE:
1241 case MADERA_DRC1RMIX_INPUT_1_VOLUME:
1242 case MADERA_DRC1RMIX_INPUT_2_SOURCE:
1243 case MADERA_DRC1RMIX_INPUT_2_VOLUME:
1244 case MADERA_DRC1RMIX_INPUT_3_SOURCE:
1245 case MADERA_DRC1RMIX_INPUT_3_VOLUME:
1246 case MADERA_DRC1RMIX_INPUT_4_SOURCE:
1247 case MADERA_DRC1RMIX_INPUT_4_VOLUME:
1248 case MADERA_DRC2LMIX_INPUT_1_SOURCE:
1249 case MADERA_DRC2LMIX_INPUT_1_VOLUME:
1250 case MADERA_DRC2LMIX_INPUT_2_SOURCE:
1251 case MADERA_DRC2LMIX_INPUT_2_VOLUME:
1252 case MADERA_DRC2LMIX_INPUT_3_SOURCE:
1253 case MADERA_DRC2LMIX_INPUT_3_VOLUME:
1254 case MADERA_DRC2LMIX_INPUT_4_SOURCE:
1255 case MADERA_DRC2LMIX_INPUT_4_VOLUME:
1256 case MADERA_DRC2RMIX_INPUT_1_SOURCE:
1257 case MADERA_DRC2RMIX_INPUT_1_VOLUME:
1258 case MADERA_DRC2RMIX_INPUT_2_SOURCE:
1259 case MADERA_DRC2RMIX_INPUT_2_VOLUME:
1260 case MADERA_DRC2RMIX_INPUT_3_SOURCE:
1261 case MADERA_DRC2RMIX_INPUT_3_VOLUME:
1262 case MADERA_DRC2RMIX_INPUT_4_SOURCE:
1263 case MADERA_DRC2RMIX_INPUT_4_VOLUME:
1264 case MADERA_HPLP1MIX_INPUT_1_SOURCE:
1265 case MADERA_HPLP1MIX_INPUT_1_VOLUME:
1266 case MADERA_HPLP1MIX_INPUT_2_SOURCE:
1267 case MADERA_HPLP1MIX_INPUT_2_VOLUME:
1268 case MADERA_HPLP1MIX_INPUT_3_SOURCE:
1269 case MADERA_HPLP1MIX_INPUT_3_VOLUME:
1270 case MADERA_HPLP1MIX_INPUT_4_SOURCE:
1271 case MADERA_HPLP1MIX_INPUT_4_VOLUME:
1272 case MADERA_HPLP2MIX_INPUT_1_SOURCE:
1273 case MADERA_HPLP2MIX_INPUT_1_VOLUME:
1274 case MADERA_HPLP2MIX_INPUT_2_SOURCE:
1275 case MADERA_HPLP2MIX_INPUT_2_VOLUME:
1276 case MADERA_HPLP2MIX_INPUT_3_SOURCE:
1277 case MADERA_HPLP2MIX_INPUT_3_VOLUME:
1278 case MADERA_HPLP2MIX_INPUT_4_SOURCE:
1279 case MADERA_HPLP2MIX_INPUT_4_VOLUME:
1280 case MADERA_HPLP3MIX_INPUT_1_SOURCE:
1281 case MADERA_HPLP3MIX_INPUT_1_VOLUME:
1282 case MADERA_HPLP3MIX_INPUT_2_SOURCE:
1283 case MADERA_HPLP3MIX_INPUT_2_VOLUME:
1284 case MADERA_HPLP3MIX_INPUT_3_SOURCE:
1285 case MADERA_HPLP3MIX_INPUT_3_VOLUME:
1286 case MADERA_HPLP3MIX_INPUT_4_SOURCE:
1287 case MADERA_HPLP3MIX_INPUT_4_VOLUME:
1288 case MADERA_HPLP4MIX_INPUT_1_SOURCE:
1289 case MADERA_HPLP4MIX_INPUT_1_VOLUME:
1290 case MADERA_HPLP4MIX_INPUT_2_SOURCE:
1291 case MADERA_HPLP4MIX_INPUT_2_VOLUME:
1292 case MADERA_HPLP4MIX_INPUT_3_SOURCE:
1293 case MADERA_HPLP4MIX_INPUT_3_VOLUME:
1294 case MADERA_HPLP4MIX_INPUT_4_SOURCE:
1295 case MADERA_HPLP4MIX_INPUT_4_VOLUME:
1296 case MADERA_DSP1LMIX_INPUT_1_SOURCE:
1297 case MADERA_DSP1LMIX_INPUT_1_VOLUME:
1298 case MADERA_DSP1LMIX_INPUT_2_SOURCE:
1299 case MADERA_DSP1LMIX_INPUT_2_VOLUME:
1300 case MADERA_DSP1LMIX_INPUT_3_SOURCE:
1301 case MADERA_DSP1LMIX_INPUT_3_VOLUME:
1302 case MADERA_DSP1LMIX_INPUT_4_SOURCE:
1303 case MADERA_DSP1LMIX_INPUT_4_VOLUME:
1304 case MADERA_DSP1RMIX_INPUT_1_SOURCE:
1305 case MADERA_DSP1RMIX_INPUT_1_VOLUME:
1306 case MADERA_DSP1RMIX_INPUT_2_SOURCE:
1307 case MADERA_DSP1RMIX_INPUT_2_VOLUME:
1308 case MADERA_DSP1RMIX_INPUT_3_SOURCE:
1309 case MADERA_DSP1RMIX_INPUT_3_VOLUME:
1310 case MADERA_DSP1RMIX_INPUT_4_SOURCE:
1311 case MADERA_DSP1RMIX_INPUT_4_VOLUME:
1312 case MADERA_DSP1AUX1MIX_INPUT_1_SOURCE:
1313 case MADERA_DSP1AUX2MIX_INPUT_1_SOURCE:
1314 case MADERA_DSP1AUX3MIX_INPUT_1_SOURCE:
1315 case MADERA_DSP1AUX4MIX_INPUT_1_SOURCE:
1316 case MADERA_DSP1AUX5MIX_INPUT_1_SOURCE:
1317 case MADERA_DSP1AUX6MIX_INPUT_1_SOURCE:
1318 case MADERA_DSP2LMIX_INPUT_1_SOURCE:
1319 case MADERA_DSP2LMIX_INPUT_1_VOLUME:
1320 case MADERA_DSP2LMIX_INPUT_2_SOURCE:
1321 case MADERA_DSP2LMIX_INPUT_2_VOLUME:
1322 case MADERA_DSP2LMIX_INPUT_3_SOURCE:
1323 case MADERA_DSP2LMIX_INPUT_3_VOLUME:
1324 case MADERA_DSP2LMIX_INPUT_4_SOURCE:
1325 case MADERA_DSP2LMIX_INPUT_4_VOLUME:
1326 case MADERA_DSP2RMIX_INPUT_1_SOURCE:
1327 case MADERA_DSP2RMIX_INPUT_1_VOLUME:
1328 case MADERA_DSP2RMIX_INPUT_2_SOURCE:
1329 case MADERA_DSP2RMIX_INPUT_2_VOLUME:
1330 case MADERA_DSP2RMIX_INPUT_3_SOURCE:
1331 case MADERA_DSP2RMIX_INPUT_3_VOLUME:
1332 case MADERA_DSP2RMIX_INPUT_4_SOURCE:
1333 case MADERA_DSP2RMIX_INPUT_4_VOLUME:
1334 case MADERA_DSP2AUX1MIX_INPUT_1_SOURCE:
1335 case MADERA_DSP2AUX2MIX_INPUT_1_SOURCE:
1336 case MADERA_DSP2AUX3MIX_INPUT_1_SOURCE:
1337 case MADERA_DSP2AUX4MIX_INPUT_1_SOURCE:
1338 case MADERA_DSP2AUX5MIX_INPUT_1_SOURCE:
1339 case MADERA_DSP2AUX6MIX_INPUT_1_SOURCE:
1340 case MADERA_DSP3LMIX_INPUT_1_SOURCE:
1341 case MADERA_DSP3LMIX_INPUT_1_VOLUME:
1342 case MADERA_DSP3LMIX_INPUT_2_SOURCE:
1343 case MADERA_DSP3LMIX_INPUT_2_VOLUME:
1344 case MADERA_DSP3LMIX_INPUT_3_SOURCE:
1345 case MADERA_DSP3LMIX_INPUT_3_VOLUME:
1346 case MADERA_DSP3LMIX_INPUT_4_SOURCE:
1347 case MADERA_DSP3LMIX_INPUT_4_VOLUME:
1348 case MADERA_DSP3RMIX_INPUT_1_SOURCE:
1349 case MADERA_DSP3RMIX_INPUT_1_VOLUME:
1350 case MADERA_DSP3RMIX_INPUT_2_SOURCE:
1351 case MADERA_DSP3RMIX_INPUT_2_VOLUME:
1352 case MADERA_DSP3RMIX_INPUT_3_SOURCE:
1353 case MADERA_DSP3RMIX_INPUT_3_VOLUME:
1354 case MADERA_DSP3RMIX_INPUT_4_SOURCE:
1355 case MADERA_DSP3RMIX_INPUT_4_VOLUME:
1356 case MADERA_DSP3AUX1MIX_INPUT_1_SOURCE:
1357 case MADERA_DSP3AUX2MIX_INPUT_1_SOURCE:
1358 case MADERA_DSP3AUX3MIX_INPUT_1_SOURCE:
1359 case MADERA_DSP3AUX4MIX_INPUT_1_SOURCE:
1360 case MADERA_DSP3AUX5MIX_INPUT_1_SOURCE:
1361 case MADERA_DSP3AUX6MIX_INPUT_1_SOURCE:
1362 case MADERA_ISRC1DEC1MIX_INPUT_1_SOURCE:
1363 case MADERA_ISRC1DEC2MIX_INPUT_1_SOURCE:
1364 case MADERA_ISRC1DEC3MIX_INPUT_1_SOURCE:
1365 case MADERA_ISRC1DEC4MIX_INPUT_1_SOURCE:
1366 case MADERA_ISRC1INT1MIX_INPUT_1_SOURCE:
1367 case MADERA_ISRC1INT2MIX_INPUT_1_SOURCE:
1368 case MADERA_ISRC1INT3MIX_INPUT_1_SOURCE:
1369 case MADERA_ISRC1INT4MIX_INPUT_1_SOURCE:
1370 case MADERA_ISRC2DEC1MIX_INPUT_1_SOURCE:
1371 case MADERA_ISRC2DEC2MIX_INPUT_1_SOURCE:
1372 case MADERA_ISRC2DEC3MIX_INPUT_1_SOURCE:
1373 case MADERA_ISRC2DEC4MIX_INPUT_1_SOURCE:
1374 case MADERA_ISRC2INT1MIX_INPUT_1_SOURCE:
1375 case MADERA_ISRC2INT2MIX_INPUT_1_SOURCE:
1376 case MADERA_ISRC2INT3MIX_INPUT_1_SOURCE:
1377 case MADERA_ISRC2INT4MIX_INPUT_1_SOURCE:
1378 case MADERA_FX_CTRL1:
1379 case MADERA_FX_CTRL2:
1380 case MADERA_EQ1_1 ... MADERA_EQ1_21:
1381 case MADERA_EQ2_1 ... MADERA_EQ2_21:
1382 case MADERA_EQ3_1 ... MADERA_EQ3_21:
1383 case MADERA_EQ4_1 ... MADERA_EQ4_21:
1384 case MADERA_DRC1_CTRL1:
1385 case MADERA_DRC1_CTRL2:
1386 case MADERA_DRC1_CTRL3:
1387 case MADERA_DRC1_CTRL4:
1388 case MADERA_DRC1_CTRL5:
1389 case MADERA_DRC2_CTRL1:
1390 case MADERA_DRC2_CTRL2:
1391 case MADERA_DRC2_CTRL3:
1392 case MADERA_DRC2_CTRL4:
1393 case MADERA_DRC2_CTRL5:
1394 case MADERA_HPLPF1_1:
1395 case MADERA_HPLPF1_2:
1396 case MADERA_HPLPF2_1:
1397 case MADERA_HPLPF2_2:
1398 case MADERA_HPLPF3_1:
1399 case MADERA_HPLPF3_2:
1400 case MADERA_HPLPF4_1:
1401 case MADERA_HPLPF4_2:
1402 case MADERA_ISRC_1_CTRL_1:
1403 case MADERA_ISRC_1_CTRL_2:
1404 case MADERA_ISRC_1_CTRL_3:
1405 case MADERA_ISRC_2_CTRL_1:
1406 case MADERA_ISRC_2_CTRL_2:
1407 case MADERA_ISRC_2_CTRL_3:
1408 case MADERA_GPIO1_CTRL_1 ... MADERA_GPIO16_CTRL_2:
1409 case MADERA_IRQ1_STATUS_1 ... MADERA_IRQ1_STATUS_33:
1410 case MADERA_IRQ1_MASK_1 ... MADERA_IRQ1_MASK_33:
1411 case MADERA_IRQ1_RAW_STATUS_1 ... MADERA_IRQ1_RAW_STATUS_33:
1412 case MADERA_INTERRUPT_DEBOUNCE_7:
1413 case MADERA_IRQ1_CTRL:
1414 return true;
1415 default:
1416 return false;
1417 }
1418 }
1419
1420 static bool cs47l35_16bit_volatile_register(struct device *dev,
1421 unsigned int reg)
1422 {
1423 switch (reg) {
1424 case MADERA_SOFTWARE_RESET:
1425 case MADERA_HARDWARE_REVISION:
1426 case MADERA_WRITE_SEQUENCER_CTRL_0:
1427 case MADERA_WRITE_SEQUENCER_CTRL_1:
1428 case MADERA_WRITE_SEQUENCER_CTRL_2:
1429 case MADERA_HAPTICS_STATUS:
1430 case MADERA_SAMPLE_RATE_1_STATUS:
1431 case MADERA_SAMPLE_RATE_2_STATUS:
1432 case MADERA_SAMPLE_RATE_3_STATUS:
1433 case MADERA_HP_CTRL_1L:
1434 case MADERA_HP_CTRL_1R:
1435 case MADERA_DCS_HP1L_CONTROL:
1436 case MADERA_DCS_HP1R_CONTROL:
1437 case MADERA_MIC_DETECT_1_CONTROL_3:
1438 case MADERA_MIC_DETECT_1_CONTROL_4:
1439 case MADERA_HEADPHONE_DETECT_2:
1440 case MADERA_HEADPHONE_DETECT_3:
1441 case MADERA_HEADPHONE_DETECT_5:
1442 case MADERA_INPUT_ENABLES_STATUS:
1443 case MADERA_OUTPUT_STATUS_1:
1444 case MADERA_RAW_OUTPUT_STATUS_1:
1445 case MADERA_SPD1_TX_CHANNEL_STATUS_1:
1446 case MADERA_SPD1_TX_CHANNEL_STATUS_2:
1447 case MADERA_SPD1_TX_CHANNEL_STATUS_3:
1448 case MADERA_SLIMBUS_RX_PORT_STATUS:
1449 case MADERA_SLIMBUS_TX_PORT_STATUS:
1450 case MADERA_FX_CTRL2:
1451 case MADERA_IRQ1_STATUS_1 ... MADERA_IRQ1_STATUS_33:
1452 case MADERA_IRQ1_RAW_STATUS_1 ... MADERA_IRQ1_RAW_STATUS_33:
1453 return true;
1454 default:
1455 return false;
1456 }
1457 }
1458
1459 static bool cs47l35_32bit_readable_register(struct device *dev,
1460 unsigned int reg)
1461 {
1462 switch (reg) {
1463 case MADERA_WSEQ_SEQUENCE_1 ... MADERA_WSEQ_SEQUENCE_252:
1464 case CS47L35_OTP_HPDET_CAL_1 ... CS47L35_OTP_HPDET_CAL_2:
1465 case MADERA_DSP1_CONFIG_1 ... MADERA_DSP1_SCRATCH_2:
1466 case MADERA_DSP2_CONFIG_1 ... MADERA_DSP2_SCRATCH_2:
1467 case MADERA_DSP3_CONFIG_1 ... MADERA_DSP3_SCRATCH_2:
1468 return true;
1469 default:
1470 return cs47l35_is_adsp_memory(reg);
1471 }
1472 }
1473
1474 static bool cs47l35_32bit_volatile_register(struct device *dev,
1475 unsigned int reg)
1476 {
1477 switch (reg) {
1478 case MADERA_WSEQ_SEQUENCE_1 ... MADERA_WSEQ_SEQUENCE_252:
1479 case CS47L35_OTP_HPDET_CAL_1 ... CS47L35_OTP_HPDET_CAL_2:
1480 case MADERA_DSP1_CONFIG_1 ... MADERA_DSP1_SCRATCH_2:
1481 case MADERA_DSP2_CONFIG_1 ... MADERA_DSP2_SCRATCH_2:
1482 case MADERA_DSP3_CONFIG_1 ... MADERA_DSP3_SCRATCH_2:
1483 return true;
1484 default:
1485 return cs47l35_is_adsp_memory(reg);
1486 }
1487 }
1488
1489 const struct regmap_config cs47l35_16bit_spi_regmap = {
1490 .name = "cs47l35_16bit",
1491 .reg_bits = 32,
1492 .pad_bits = 16,
1493 .val_bits = 16,
1494 .reg_format_endian = REGMAP_ENDIAN_BIG,
1495 .val_format_endian = REGMAP_ENDIAN_BIG,
1496
1497 .max_register = 0x1b00,
1498 .readable_reg = cs47l35_16bit_readable_register,
1499 .volatile_reg = cs47l35_16bit_volatile_register,
1500
1501 .cache_type = REGCACHE_RBTREE,
1502 .reg_defaults = cs47l35_reg_default,
1503 .num_reg_defaults = ARRAY_SIZE(cs47l35_reg_default),
1504 };
1505 EXPORT_SYMBOL_GPL(cs47l35_16bit_spi_regmap);
1506
1507 const struct regmap_config cs47l35_16bit_i2c_regmap = {
1508 .name = "cs47l35_16bit",
1509 .reg_bits = 32,
1510 .val_bits = 16,
1511 .reg_format_endian = REGMAP_ENDIAN_BIG,
1512 .val_format_endian = REGMAP_ENDIAN_BIG,
1513
1514 .max_register = 0x1b00,
1515 .readable_reg = cs47l35_16bit_readable_register,
1516 .volatile_reg = cs47l35_16bit_volatile_register,
1517
1518 .cache_type = REGCACHE_RBTREE,
1519 .reg_defaults = cs47l35_reg_default,
1520 .num_reg_defaults = ARRAY_SIZE(cs47l35_reg_default),
1521 };
1522 EXPORT_SYMBOL_GPL(cs47l35_16bit_i2c_regmap);
1523
1524 const struct regmap_config cs47l35_32bit_spi_regmap = {
1525 .name = "cs47l35_32bit",
1526 .reg_bits = 32,
1527 .reg_stride = 2,
1528 .pad_bits = 16,
1529 .val_bits = 32,
1530 .reg_format_endian = REGMAP_ENDIAN_BIG,
1531 .val_format_endian = REGMAP_ENDIAN_BIG,
1532
1533 .max_register = MADERA_DSP3_SCRATCH_2,
1534 .readable_reg = cs47l35_32bit_readable_register,
1535 .volatile_reg = cs47l35_32bit_volatile_register,
1536
1537 .cache_type = REGCACHE_RBTREE,
1538 };
1539 EXPORT_SYMBOL_GPL(cs47l35_32bit_spi_regmap);
1540
1541 const struct regmap_config cs47l35_32bit_i2c_regmap = {
1542 .name = "cs47l35_32bit",
1543 .reg_bits = 32,
1544 .reg_stride = 2,
1545 .val_bits = 32,
1546 .reg_format_endian = REGMAP_ENDIAN_BIG,
1547 .val_format_endian = REGMAP_ENDIAN_BIG,
1548
1549 .max_register = MADERA_DSP3_SCRATCH_2,
1550 .readable_reg = cs47l35_32bit_readable_register,
1551 .volatile_reg = cs47l35_32bit_volatile_register,
1552
1553 .cache_type = REGCACHE_RBTREE,
1554 };
1555 EXPORT_SYMBOL_GPL(cs47l35_32bit_i2c_regmap);