0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include <linux/device.h>
0012 #include <linux/module.h>
0013 #include <linux/regmap.h>
0014
0015 #include <linux/mfd/madera/core.h>
0016 #include <linux/mfd/madera/registers.h>
0017
0018 #include "madera.h"
0019
0020 static const struct reg_sequence cs47l92_reva_16_patch[] = {
0021 { 0x3A2, 0x2C29 },
0022 { 0x3A3, 0x0E00 },
0023 { 0x281, 0x0000 },
0024 { 0x282, 0x0000 },
0025 { 0x4EA, 0x0100 },
0026 { 0x22B, 0x0000 },
0027 { 0x4A0, 0x0080 },
0028 { 0x4A1, 0x0000 },
0029 { 0x4A2, 0x0000 },
0030 { 0x180B, 0x033F },
0031 { 0x190B, 0x033F },
0032 { 0x442, 0x0304 },
0033 { 0x34C, 0x0003 },
0034 { 0x124, 0x0C49 },
0035 { 0x120, 0x0345 },
0036 { 0x120, 0x0305 },
0037 { 0x4FA, 0x5064 },
0038 { 0x1300, 0x050E },
0039 { 0x1302, 0x0101 },
0040 { 0x1380, 0x02E0 },
0041 { 0x1381, 0xF942 },
0042 { 0x1382, 0x04CE },
0043 { 0x1383, 0xFF06 },
0044 { 0x1390, 0x0304 },
0045 { 0x1391, 0xF8FF },
0046 { 0x1392, 0x04F3 },
0047 { 0x1393, 0xFF00 },
0048 { 0x13A0, 0x02E0 },
0049 { 0x13A1, 0xF942 },
0050 { 0x13A2, 0x04CE },
0051 { 0x13A3, 0xFF06 },
0052 { 0x13B0, 0x0304 },
0053 { 0x13B1, 0xF8FF },
0054 { 0x13B2, 0x04F3 },
0055 { 0x13B3, 0xFF00 },
0056 { 0x412, 0x0005 },
0057 { 0x41A, 0x0005 },
0058 { 0x422, 0x0005 },
0059 };
0060
0061 static const struct reg_sequence cs47l92_reva_32_patch[] = {
0062 { 0x3030, 0x04A00C01 },
0063 { 0x3032, 0x0225F501 },
0064 { 0x3044, 0x04A00C00 },
0065 { 0x3046, 0x0225FF01 },
0066 { 0x3080, 0x04A00C01 },
0067 { 0x3082, 0x0226F501 },
0068 { 0x3094, 0x04A00C00 },
0069 { 0x3096, 0x0226FF01 },
0070 { 0x30D1, 0x04A10C01 },
0071 { 0x30D2, 0x0227F501 },
0072 { 0x30E4, 0x04A10C00 },
0073 { 0x30E6, 0x0227FF01 },
0074 { 0x3120, 0x04A10C01 },
0075 { 0x3122, 0x0228F501 },
0076 { 0x3134, 0x04A10C00 },
0077 { 0x3136, 0x0228FF01 },
0078 { 0x3170, 0x04A20C01 },
0079 { 0x3172, 0x022B0101 },
0080 { 0x3174, 0x0229F501 },
0081 { 0x3184, 0x04A20C00 },
0082 { 0x3186, 0x022B0100 },
0083 { 0x3188, 0x0229FF01 },
0084 { 0x31C0, 0x04A20C01 },
0085 { 0x31C2, 0x022B0001 },
0086 { 0x31C4, 0x022AF501 },
0087 { 0x31D4, 0x04A20C00 },
0088 { 0x31D6, 0x022B0000 },
0089 { 0x31D8, 0x022AFF01 },
0090 };
0091
0092 int cs47l92_patch(struct madera *madera)
0093 {
0094 int ret;
0095
0096 ret = regmap_register_patch(madera->regmap,
0097 cs47l92_reva_16_patch,
0098 ARRAY_SIZE(cs47l92_reva_16_patch));
0099 if (ret < 0) {
0100 dev_err(madera->dev,
0101 "Error in applying 16-bit patch: %d\n", ret);
0102 return ret;
0103 }
0104
0105 ret = regmap_register_patch(madera->regmap_32bit,
0106 cs47l92_reva_32_patch,
0107 ARRAY_SIZE(cs47l92_reva_32_patch));
0108 if (ret < 0) {
0109 dev_err(madera->dev,
0110 "Error in applying 32-bit patch: %d\n", ret);
0111 return ret;
0112 }
0113
0114 return 0;
0115 }
0116 EXPORT_SYMBOL_GPL(cs47l92_patch);
0117
0118 static const struct reg_default cs47l92_reg_default[] = {
0119 { 0x00000020, 0x0000 },
0120 { 0x00000021, 0x1000 },
0121 { 0x00000022, 0x0000 },
0122 { 0x00000023, 0x1000 },
0123 { 0x00000024, 0x0000 },
0124 { 0x00000030, 0x0000 },
0125 { 0x00000031, 0x0100 },
0126 { 0x00000032, 0x0100 },
0127 { 0x00000061, 0x01ff },
0128 { 0x00000062, 0x01ff },
0129 { 0x00000063, 0x01ff },
0130 { 0x00000064, 0x01ff },
0131 { 0x00000090, 0x0000 },
0132 { 0x00000091, 0x7fff },
0133 { 0x00000092, 0x0000 },
0134 { 0x00000093, 0x0000 },
0135 { 0x00000094, 0x0000 },
0136 { 0x00000095, 0x0000 },
0137 { 0x00000096, 0x0000 },
0138 { 0x00000097, 0x0000 },
0139 { 0x000000a0, 0x0000 },
0140 { 0x00000100, 0x0002 },
0141 { 0x00000101, 0x0404 },
0142 { 0x00000102, 0x0011 },
0143 { 0x00000103, 0x0011 },
0144 { 0x00000104, 0x0011 },
0145 { 0x00000112, 0x0305 },
0146 { 0x00000113, 0x0011 },
0147 { 0x00000114, 0x0011 },
0148 { 0x00000120, 0x0305 },
0149 { 0x00000122, 0x0000 },
0150 { 0x00000149, 0x0000 },
0151 { 0x0000014a, 0x0000 },
0152 { 0x00000152, 0x0000 },
0153 { 0x00000153, 0x0000 },
0154 { 0x00000154, 0x0000 },
0155 { 0x00000155, 0x0000 },
0156 { 0x00000156, 0x0000 },
0157 { 0x00000171, 0x7004 },
0158 { 0x00000172, 0x0004 },
0159 { 0x00000173, 0x0000 },
0160 { 0x00000174, 0x0000 },
0161 { 0x00000175, 0x0001 },
0162 { 0x00000176, 0x8000 },
0163 { 0x00000177, 0x0680 },
0164 { 0x00000178, 0x21f0 },
0165 { 0x00000179, 0x0000 },
0166 { 0x0000017a, 0x0000 },
0167 { 0x0000017b, 0x0011 },
0168 { 0x0000017d, 0x33e8 },
0169 { 0x00000181, 0x7000 },
0170 { 0x00000182, 0x0004 },
0171 { 0x00000183, 0x0000 },
0172 { 0x00000184, 0x0000 },
0173 { 0x00000185, 0x0001 },
0174 { 0x00000186, 0x0000 },
0175 { 0x0000018e, 0x0c04 },
0176 { 0x00000191, 0x7000 },
0177 { 0x00000192, 0x0004 },
0178 { 0x00000193, 0x0000 },
0179 { 0x00000194, 0x0000 },
0180 { 0x00000195, 0x0001 },
0181 { 0x00000196, 0x8000 },
0182 { 0x00000197, 0x0680 },
0183 { 0x00000198, 0x21f0 },
0184 { 0x00000199, 0x0000 },
0185 { 0x0000019a, 0x0000 },
0186 { 0x0000019b, 0x0011 },
0187 { 0x0000019d, 0x33e8 },
0188 { 0x000001a1, 0x7000 },
0189 { 0x000001a2, 0x0004 },
0190 { 0x000001a3, 0x0000 },
0191 { 0x000001a4, 0x0000 },
0192 { 0x000001a5, 0x0001 },
0193 { 0x000001a6, 0x0000 },
0194 { 0x000001ae, 0x0c04 },
0195 { 0x00000200, 0x0006 },
0196 { 0x00000213, 0x03e4 },
0197 { 0x00000218, 0x00e6 },
0198 { 0x00000219, 0x00e6 },
0199 { 0x0000021c, 0x2222 },
0200 { 0x0000021e, 0x0022 },
0201 { 0x00000293, 0x0080 },
0202 { 0x00000299, 0x0000 },
0203 { 0x0000029b, 0x0000 },
0204 { 0x000002a2, 0x0010 },
0205 { 0x000002a3, 0x1102 },
0206 { 0x000002a4, 0x009f },
0207 { 0x000002a6, 0x3d3d },
0208 { 0x000002a7, 0x3d3d },
0209 { 0x000002a8, 0x333d },
0210 { 0x000002a9, 0x202d },
0211 { 0x000002b2, 0x0010 },
0212 { 0x000002b3, 0x1102 },
0213 { 0x000002b4, 0x009f },
0214 { 0x000002b6, 0x3d3d },
0215 { 0x000002b7, 0x3d3d },
0216 { 0x000002b8, 0x333d },
0217 { 0x000002b9, 0x202d },
0218 { 0x000002c6, 0x0210 },
0219 { 0x000002c8, 0x0000 },
0220 { 0x000002d3, 0x0000 },
0221 { 0x00000300, 0x0000 },
0222 { 0x00000308, 0x0400 },
0223 { 0x00000309, 0x0022 },
0224 { 0x0000030c, 0x0002 },
0225 { 0x00000310, 0x0080 },
0226 { 0x00000311, 0x0180 },
0227 { 0x00000312, 0x0500 },
0228 { 0x00000313, 0x0000 },
0229 { 0x00000314, 0x0080 },
0230 { 0x00000315, 0x0180 },
0231 { 0x00000316, 0x0000 },
0232 { 0x00000317, 0x0000 },
0233 { 0x00000318, 0x0080 },
0234 { 0x00000319, 0x0180 },
0235 { 0x0000031a, 0x0500 },
0236 { 0x0000031b, 0x0000 },
0237 { 0x0000031c, 0x0080 },
0238 { 0x0000031d, 0x0180 },
0239 { 0x0000031e, 0x0000 },
0240 { 0x0000031f, 0x0000 },
0241 { 0x00000320, 0x0000 },
0242 { 0x00000321, 0x0180 },
0243 { 0x00000322, 0x0500 },
0244 { 0x00000323, 0x0000 },
0245 { 0x00000324, 0x0000 },
0246 { 0x00000325, 0x0180 },
0247 { 0x00000326, 0x0000 },
0248 { 0x00000327, 0x0000 },
0249 { 0x00000328, 0x0000 },
0250 { 0x00000329, 0x0180 },
0251 { 0x0000032a, 0x0500 },
0252 { 0x0000032b, 0x0000 },
0253 { 0x0000032c, 0x0000 },
0254 { 0x0000032d, 0x0180 },
0255 { 0x0000032e, 0x0000 },
0256 { 0x0000032f, 0x0000 },
0257 { 0x00000400, 0x0000 },
0258 { 0x00000408, 0x0040 },
0259 { 0x00000409, 0x0022 },
0260 { 0x00000410, 0x0080 },
0261 { 0x00000411, 0x0180 },
0262 { 0x00000412, 0x0005 },
0263 { 0x00000413, 0x0001 },
0264 { 0x00000414, 0x0080 },
0265 { 0x00000415, 0x0180 },
0266 { 0x00000417, 0x0002 },
0267 { 0x00000418, 0x0080 },
0268 { 0x00000419, 0x0180 },
0269 { 0x0000041a, 0x0005 },
0270 { 0x0000041b, 0x0004 },
0271 { 0x0000041c, 0x0080 },
0272 { 0x0000041d, 0x0180 },
0273 { 0x0000041f, 0x0008 },
0274 { 0x00000420, 0x0080 },
0275 { 0x00000421, 0x0180 },
0276 { 0x00000422, 0x0005 },
0277 { 0x00000423, 0x0010 },
0278 { 0x00000424, 0x0080 },
0279 { 0x00000425, 0x0180 },
0280 { 0x00000427, 0x0020 },
0281 { 0x00000430, 0x0000 },
0282 { 0x00000431, 0x0180 },
0283 { 0x00000433, 0x0100 },
0284 { 0x00000434, 0x0000 },
0285 { 0x00000435, 0x0180 },
0286 { 0x00000437, 0x0200 },
0287 { 0x00000450, 0x0000 },
0288 { 0x00000451, 0x0000 },
0289 { 0x00000458, 0x0000 },
0290 { 0x00000490, 0x0069 },
0291 { 0x00000491, 0x0000 },
0292 { 0x000004a0, 0x0080 },
0293 { 0x000004a1, 0x0000 },
0294 { 0x000004a2, 0x0000 },
0295 { 0x00000500, 0x000c },
0296 { 0x00000501, 0x0000 },
0297 { 0x00000502, 0x0000 },
0298 { 0x00000503, 0x0000 },
0299 { 0x00000504, 0x0000 },
0300 { 0x00000506, 0x0040 },
0301 { 0x00000507, 0x1818 },
0302 { 0x00000508, 0x1818 },
0303 { 0x00000509, 0x0000 },
0304 { 0x0000050a, 0x0001 },
0305 { 0x0000050b, 0x0002 },
0306 { 0x0000050c, 0x0003 },
0307 { 0x0000050d, 0x0004 },
0308 { 0x0000050e, 0x0005 },
0309 { 0x0000050f, 0x0006 },
0310 { 0x00000510, 0x0007 },
0311 { 0x00000511, 0x0000 },
0312 { 0x00000512, 0x0001 },
0313 { 0x00000513, 0x0002 },
0314 { 0x00000514, 0x0003 },
0315 { 0x00000515, 0x0004 },
0316 { 0x00000516, 0x0005 },
0317 { 0x00000517, 0x0006 },
0318 { 0x00000518, 0x0007 },
0319 { 0x00000519, 0x0000 },
0320 { 0x0000051a, 0x0000 },
0321 { 0x00000540, 0x000c },
0322 { 0x00000541, 0x0000 },
0323 { 0x00000542, 0x0000 },
0324 { 0x00000543, 0x0000 },
0325 { 0x00000544, 0x0000 },
0326 { 0x00000546, 0x0040 },
0327 { 0x00000547, 0x1818 },
0328 { 0x00000548, 0x1818 },
0329 { 0x00000549, 0x0000 },
0330 { 0x0000054a, 0x0001 },
0331 { 0x0000054b, 0x0002 },
0332 { 0x0000054c, 0x0003 },
0333 { 0x0000054d, 0x0004 },
0334 { 0x0000054e, 0x0005 },
0335 { 0x0000054f, 0x0006 },
0336 { 0x00000550, 0x0007 },
0337 { 0x00000551, 0x0000 },
0338 { 0x00000552, 0x0001 },
0339 { 0x00000553, 0x0002 },
0340 { 0x00000554, 0x0003 },
0341 { 0x00000555, 0x0004 },
0342 { 0x00000556, 0x0005 },
0343 { 0x00000557, 0x0006 },
0344 { 0x00000558, 0x0007 },
0345 { 0x00000559, 0x0000 },
0346 { 0x0000055a, 0x0000 },
0347 { 0x00000580, 0x000c },
0348 { 0x00000581, 0x0000 },
0349 { 0x00000582, 0x0000 },
0350 { 0x00000583, 0x0000 },
0351 { 0x00000584, 0x0000 },
0352 { 0x00000586, 0x0040 },
0353 { 0x00000587, 0x1818 },
0354 { 0x00000588, 0x1818 },
0355 { 0x00000589, 0x0000 },
0356 { 0x0000058a, 0x0001 },
0357 { 0x0000058b, 0x0002 },
0358 { 0x0000058c, 0x0003 },
0359 { 0x0000058d, 0x0004 },
0360 { 0x0000058e, 0x0005 },
0361 { 0x0000058f, 0x0006 },
0362 { 0x00000590, 0x0007 },
0363 { 0x00000591, 0x0000 },
0364 { 0x00000592, 0x0001 },
0365 { 0x00000593, 0x0002 },
0366 { 0x00000594, 0x0003 },
0367 { 0x00000595, 0x0004 },
0368 { 0x00000596, 0x0005 },
0369 { 0x00000597, 0x0006 },
0370 { 0x00000598, 0x0007 },
0371 { 0x00000599, 0x0000 },
0372 { 0x0000059a, 0x0000 },
0373 { 0x000005c2, 0x0000 },
0374 { 0x000005e3, 0x0000 },
0375 { 0x000005e5, 0x0000 },
0376 { 0x000005e6, 0x0000 },
0377 { 0x000005e7, 0x0000 },
0378 { 0x000005e8, 0x0000 },
0379 { 0x000005e9, 0x0000 },
0380 { 0x000005ea, 0x0000 },
0381 { 0x000005eb, 0x0000 },
0382 { 0x000005ec, 0x0000 },
0383 { 0x000005f5, 0x0000 },
0384 { 0x000005f6, 0x0000 },
0385 { 0x00000640, 0x0000 },
0386 { 0x00000641, 0x0080 },
0387 { 0x00000642, 0x0000 },
0388 { 0x00000643, 0x0080 },
0389 { 0x00000644, 0x0000 },
0390 { 0x00000645, 0x0080 },
0391 { 0x00000646, 0x0000 },
0392 { 0x00000647, 0x0080 },
0393 { 0x00000648, 0x0000 },
0394 { 0x00000649, 0x0080 },
0395 { 0x0000064a, 0x0000 },
0396 { 0x0000064b, 0x0080 },
0397 { 0x0000064c, 0x0000 },
0398 { 0x0000064d, 0x0080 },
0399 { 0x0000064e, 0x0000 },
0400 { 0x0000064f, 0x0080 },
0401 { 0x00000680, 0x0000 },
0402 { 0x00000681, 0x0080 },
0403 { 0x00000682, 0x0000 },
0404 { 0x00000683, 0x0080 },
0405 { 0x00000684, 0x0000 },
0406 { 0x00000685, 0x0080 },
0407 { 0x00000686, 0x0000 },
0408 { 0x00000687, 0x0080 },
0409 { 0x00000688, 0x0000 },
0410 { 0x00000689, 0x0080 },
0411 { 0x0000068a, 0x0000 },
0412 { 0x0000068b, 0x0080 },
0413 { 0x0000068c, 0x0000 },
0414 { 0x0000068d, 0x0080 },
0415 { 0x0000068e, 0x0000 },
0416 { 0x0000068f, 0x0080 },
0417 { 0x00000690, 0x0000 },
0418 { 0x00000691, 0x0080 },
0419 { 0x00000692, 0x0000 },
0420 { 0x00000693, 0x0080 },
0421 { 0x00000694, 0x0000 },
0422 { 0x00000695, 0x0080 },
0423 { 0x00000696, 0x0000 },
0424 { 0x00000697, 0x0080 },
0425 { 0x00000698, 0x0000 },
0426 { 0x00000699, 0x0080 },
0427 { 0x0000069a, 0x0000 },
0428 { 0x0000069b, 0x0080 },
0429 { 0x0000069c, 0x0000 },
0430 { 0x0000069d, 0x0080 },
0431 { 0x0000069e, 0x0000 },
0432 { 0x0000069f, 0x0080 },
0433 { 0x000006a0, 0x0000 },
0434 { 0x000006a1, 0x0080 },
0435 { 0x000006a2, 0x0000 },
0436 { 0x000006a3, 0x0080 },
0437 { 0x000006a4, 0x0000 },
0438 { 0x000006a5, 0x0080 },
0439 { 0x000006a6, 0x0000 },
0440 { 0x000006a7, 0x0080 },
0441 { 0x000006a8, 0x0000 },
0442 { 0x000006a9, 0x0080 },
0443 { 0x000006aa, 0x0000 },
0444 { 0x000006ab, 0x0080 },
0445 { 0x000006ac, 0x0000 },
0446 { 0x000006ad, 0x0080 },
0447 { 0x000006ae, 0x0000 },
0448 { 0x000006af, 0x0080 },
0449 { 0x000006c0, 0x0000 },
0450 { 0x000006c1, 0x0080 },
0451 { 0x000006c2, 0x0000 },
0452 { 0x000006c3, 0x0080 },
0453 { 0x000006c4, 0x0000 },
0454 { 0x000006c5, 0x0080 },
0455 { 0x000006c6, 0x0000 },
0456 { 0x000006c7, 0x0080 },
0457 { 0x000006c8, 0x0000 },
0458 { 0x000006c9, 0x0080 },
0459 { 0x000006ca, 0x0000 },
0460 { 0x000006cb, 0x0080 },
0461 { 0x000006cc, 0x0000 },
0462 { 0x000006cd, 0x0080 },
0463 { 0x000006ce, 0x0000 },
0464 { 0x000006cf, 0x0080 },
0465 { 0x00000700, 0x0000 },
0466 { 0x00000701, 0x0080 },
0467 { 0x00000702, 0x0000 },
0468 { 0x00000703, 0x0080 },
0469 { 0x00000704, 0x0000 },
0470 { 0x00000705, 0x0080 },
0471 { 0x00000706, 0x0000 },
0472 { 0x00000707, 0x0080 },
0473 { 0x00000708, 0x0000 },
0474 { 0x00000709, 0x0080 },
0475 { 0x0000070a, 0x0000 },
0476 { 0x0000070b, 0x0080 },
0477 { 0x0000070c, 0x0000 },
0478 { 0x0000070d, 0x0080 },
0479 { 0x0000070e, 0x0000 },
0480 { 0x0000070f, 0x0080 },
0481 { 0x00000710, 0x0000 },
0482 { 0x00000711, 0x0080 },
0483 { 0x00000712, 0x0000 },
0484 { 0x00000713, 0x0080 },
0485 { 0x00000714, 0x0000 },
0486 { 0x00000715, 0x0080 },
0487 { 0x00000716, 0x0000 },
0488 { 0x00000717, 0x0080 },
0489 { 0x00000718, 0x0000 },
0490 { 0x00000719, 0x0080 },
0491 { 0x0000071a, 0x0000 },
0492 { 0x0000071b, 0x0080 },
0493 { 0x0000071c, 0x0000 },
0494 { 0x0000071d, 0x0080 },
0495 { 0x0000071e, 0x0000 },
0496 { 0x0000071f, 0x0080 },
0497 { 0x00000720, 0x0000 },
0498 { 0x00000721, 0x0080 },
0499 { 0x00000722, 0x0000 },
0500 { 0x00000723, 0x0080 },
0501 { 0x00000724, 0x0000 },
0502 { 0x00000725, 0x0080 },
0503 { 0x00000726, 0x0000 },
0504 { 0x00000727, 0x0080 },
0505 { 0x00000728, 0x0000 },
0506 { 0x00000729, 0x0080 },
0507 { 0x0000072a, 0x0000 },
0508 { 0x0000072b, 0x0080 },
0509 { 0x0000072c, 0x0000 },
0510 { 0x0000072d, 0x0080 },
0511 { 0x0000072e, 0x0000 },
0512 { 0x0000072f, 0x0080 },
0513 { 0x00000730, 0x0000 },
0514 { 0x00000731, 0x0080 },
0515 { 0x00000732, 0x0000 },
0516 { 0x00000733, 0x0080 },
0517 { 0x00000734, 0x0000 },
0518 { 0x00000735, 0x0080 },
0519 { 0x00000736, 0x0000 },
0520 { 0x00000737, 0x0080 },
0521 { 0x00000738, 0x0000 },
0522 { 0x00000739, 0x0080 },
0523 { 0x0000073a, 0x0000 },
0524 { 0x0000073b, 0x0080 },
0525 { 0x0000073c, 0x0000 },
0526 { 0x0000073d, 0x0080 },
0527 { 0x0000073e, 0x0000 },
0528 { 0x0000073f, 0x0080 },
0529 { 0x00000740, 0x0000 },
0530 { 0x00000741, 0x0080 },
0531 { 0x00000742, 0x0000 },
0532 { 0x00000743, 0x0080 },
0533 { 0x00000744, 0x0000 },
0534 { 0x00000745, 0x0080 },
0535 { 0x00000746, 0x0000 },
0536 { 0x00000747, 0x0080 },
0537 { 0x00000748, 0x0000 },
0538 { 0x00000749, 0x0080 },
0539 { 0x0000074a, 0x0000 },
0540 { 0x0000074b, 0x0080 },
0541 { 0x0000074c, 0x0000 },
0542 { 0x0000074d, 0x0080 },
0543 { 0x0000074e, 0x0000 },
0544 { 0x0000074f, 0x0080 },
0545 { 0x00000750, 0x0000 },
0546 { 0x00000751, 0x0080 },
0547 { 0x00000752, 0x0000 },
0548 { 0x00000753, 0x0080 },
0549 { 0x00000754, 0x0000 },
0550 { 0x00000755, 0x0080 },
0551 { 0x00000756, 0x0000 },
0552 { 0x00000757, 0x0080 },
0553 { 0x00000758, 0x0000 },
0554 { 0x00000759, 0x0080 },
0555 { 0x0000075a, 0x0000 },
0556 { 0x0000075b, 0x0080 },
0557 { 0x0000075c, 0x0000 },
0558 { 0x0000075d, 0x0080 },
0559 { 0x0000075e, 0x0000 },
0560 { 0x0000075f, 0x0080 },
0561 { 0x00000760, 0x0000 },
0562 { 0x00000761, 0x0080 },
0563 { 0x00000762, 0x0000 },
0564 { 0x00000763, 0x0080 },
0565 { 0x00000764, 0x0000 },
0566 { 0x00000765, 0x0080 },
0567 { 0x00000766, 0x0000 },
0568 { 0x00000767, 0x0080 },
0569 { 0x00000768, 0x0000 },
0570 { 0x00000769, 0x0080 },
0571 { 0x0000076a, 0x0000 },
0572 { 0x0000076b, 0x0080 },
0573 { 0x0000076c, 0x0000 },
0574 { 0x0000076d, 0x0080 },
0575 { 0x0000076e, 0x0000 },
0576 { 0x0000076f, 0x0080 },
0577 { 0x00000770, 0x0000 },
0578 { 0x00000771, 0x0080 },
0579 { 0x00000772, 0x0000 },
0580 { 0x00000773, 0x0080 },
0581 { 0x00000774, 0x0000 },
0582 { 0x00000775, 0x0080 },
0583 { 0x00000776, 0x0000 },
0584 { 0x00000777, 0x0080 },
0585 { 0x00000778, 0x0000 },
0586 { 0x00000779, 0x0080 },
0587 { 0x0000077a, 0x0000 },
0588 { 0x0000077b, 0x0080 },
0589 { 0x0000077c, 0x0000 },
0590 { 0x0000077d, 0x0080 },
0591 { 0x0000077e, 0x0000 },
0592 { 0x0000077f, 0x0080 },
0593 { 0x00000780, 0x0000 },
0594 { 0x00000781, 0x0080 },
0595 { 0x00000782, 0x0000 },
0596 { 0x00000783, 0x0080 },
0597 { 0x00000784, 0x0000 },
0598 { 0x00000785, 0x0080 },
0599 { 0x00000786, 0x0000 },
0600 { 0x00000787, 0x0080 },
0601 { 0x00000788, 0x0000 },
0602 { 0x00000789, 0x0080 },
0603 { 0x0000078a, 0x0000 },
0604 { 0x0000078b, 0x0080 },
0605 { 0x0000078c, 0x0000 },
0606 { 0x0000078d, 0x0080 },
0607 { 0x0000078e, 0x0000 },
0608 { 0x0000078f, 0x0080 },
0609 { 0x00000790, 0x0000 },
0610 { 0x00000791, 0x0080 },
0611 { 0x00000792, 0x0000 },
0612 { 0x00000793, 0x0080 },
0613 { 0x00000794, 0x0000 },
0614 { 0x00000795, 0x0080 },
0615 { 0x00000796, 0x0000 },
0616 { 0x00000797, 0x0080 },
0617 { 0x00000798, 0x0000 },
0618 { 0x00000799, 0x0080 },
0619 { 0x0000079a, 0x0000 },
0620 { 0x0000079b, 0x0080 },
0621 { 0x0000079c, 0x0000 },
0622 { 0x0000079d, 0x0080 },
0623 { 0x0000079e, 0x0000 },
0624 { 0x0000079f, 0x0080 },
0625 { 0x000007a0, 0x0000 },
0626 { 0x000007a1, 0x0080 },
0627 { 0x000007a2, 0x0000 },
0628 { 0x000007a3, 0x0080 },
0629 { 0x000007a4, 0x0000 },
0630 { 0x000007a5, 0x0080 },
0631 { 0x000007a6, 0x0000 },
0632 { 0x000007a7, 0x0080 },
0633 { 0x000007a8, 0x0000 },
0634 { 0x000007a9, 0x0080 },
0635 { 0x000007aa, 0x0000 },
0636 { 0x000007ab, 0x0080 },
0637 { 0x000007ac, 0x0000 },
0638 { 0x000007ad, 0x0080 },
0639 { 0x000007ae, 0x0000 },
0640 { 0x000007af, 0x0080 },
0641 { 0x000007b0, 0x0000 },
0642 { 0x000007b1, 0x0080 },
0643 { 0x000007b2, 0x0000 },
0644 { 0x000007b3, 0x0080 },
0645 { 0x000007b4, 0x0000 },
0646 { 0x000007b5, 0x0080 },
0647 { 0x000007b6, 0x0000 },
0648 { 0x000007b7, 0x0080 },
0649 { 0x000007b8, 0x0000 },
0650 { 0x000007b9, 0x0080 },
0651 { 0x000007ba, 0x0000 },
0652 { 0x000007bb, 0x0080 },
0653 { 0x000007bc, 0x0000 },
0654 { 0x000007bd, 0x0080 },
0655 { 0x000007be, 0x0000 },
0656 { 0x000007bf, 0x0080 },
0657 { 0x000007c0, 0x0000 },
0658 { 0x000007c1, 0x0080 },
0659 { 0x000007c2, 0x0000 },
0660 { 0x000007c3, 0x0080 },
0661 { 0x000007c4, 0x0000 },
0662 { 0x000007c5, 0x0080 },
0663 { 0x000007c6, 0x0000 },
0664 { 0x000007c7, 0x0080 },
0665 { 0x000007c8, 0x0000 },
0666 { 0x000007c9, 0x0080 },
0667 { 0x000007ca, 0x0000 },
0668 { 0x000007cb, 0x0080 },
0669 { 0x000007cc, 0x0000 },
0670 { 0x000007cd, 0x0080 },
0671 { 0x000007ce, 0x0000 },
0672 { 0x000007cf, 0x0080 },
0673 { 0x000007d0, 0x0000 },
0674 { 0x000007d1, 0x0080 },
0675 { 0x000007d2, 0x0000 },
0676 { 0x000007d3, 0x0080 },
0677 { 0x000007d4, 0x0000 },
0678 { 0x000007d5, 0x0080 },
0679 { 0x000007d6, 0x0000 },
0680 { 0x000007d7, 0x0080 },
0681 { 0x000007d8, 0x0000 },
0682 { 0x000007d9, 0x0080 },
0683 { 0x000007da, 0x0000 },
0684 { 0x000007db, 0x0080 },
0685 { 0x000007dc, 0x0000 },
0686 { 0x000007dd, 0x0080 },
0687 { 0x000007de, 0x0000 },
0688 { 0x000007df, 0x0080 },
0689 { 0x000007e0, 0x0000 },
0690 { 0x000007e1, 0x0080 },
0691 { 0x000007e2, 0x0000 },
0692 { 0x000007e3, 0x0080 },
0693 { 0x000007e4, 0x0000 },
0694 { 0x000007e5, 0x0080 },
0695 { 0x000007e6, 0x0000 },
0696 { 0x000007e7, 0x0080 },
0697 { 0x000007e8, 0x0000 },
0698 { 0x000007e9, 0x0080 },
0699 { 0x000007ea, 0x0000 },
0700 { 0x000007eb, 0x0080 },
0701 { 0x000007ec, 0x0000 },
0702 { 0x000007ed, 0x0080 },
0703 { 0x000007ee, 0x0000 },
0704 { 0x000007ef, 0x0080 },
0705 { 0x000007f0, 0x0000 },
0706 { 0x000007f1, 0x0080 },
0707 { 0x000007f2, 0x0000 },
0708 { 0x000007f3, 0x0080 },
0709 { 0x000007f4, 0x0000 },
0710 { 0x000007f5, 0x0080 },
0711 { 0x000007f6, 0x0000 },
0712 { 0x000007f7, 0x0080 },
0713 { 0x000007f8, 0x0000 },
0714 { 0x000007f9, 0x0080 },
0715 { 0x000007fa, 0x0000 },
0716 { 0x000007fb, 0x0080 },
0717 { 0x000007fc, 0x0000 },
0718 { 0x000007fd, 0x0080 },
0719 { 0x000007fe, 0x0000 },
0720 { 0x000007ff, 0x0080 },
0721 { 0x00000800, 0x0000 },
0722 { 0x00000801, 0x0080 },
0723 { 0x00000808, 0x0000 },
0724 { 0x00000809, 0x0080 },
0725 { 0x00000880, 0x0000 },
0726 { 0x00000881, 0x0080 },
0727 { 0x00000882, 0x0000 },
0728 { 0x00000883, 0x0080 },
0729 { 0x00000884, 0x0000 },
0730 { 0x00000885, 0x0080 },
0731 { 0x00000886, 0x0000 },
0732 { 0x00000887, 0x0080 },
0733 { 0x00000888, 0x0000 },
0734 { 0x00000889, 0x0080 },
0735 { 0x0000088a, 0x0000 },
0736 { 0x0000088b, 0x0080 },
0737 { 0x0000088c, 0x0000 },
0738 { 0x0000088d, 0x0080 },
0739 { 0x0000088e, 0x0000 },
0740 { 0x0000088f, 0x0080 },
0741 { 0x00000890, 0x0000 },
0742 { 0x00000891, 0x0080 },
0743 { 0x00000892, 0x0000 },
0744 { 0x00000893, 0x0080 },
0745 { 0x00000894, 0x0000 },
0746 { 0x00000895, 0x0080 },
0747 { 0x00000896, 0x0000 },
0748 { 0x00000897, 0x0080 },
0749 { 0x00000898, 0x0000 },
0750 { 0x00000899, 0x0080 },
0751 { 0x0000089a, 0x0000 },
0752 { 0x0000089b, 0x0080 },
0753 { 0x0000089c, 0x0000 },
0754 { 0x0000089d, 0x0080 },
0755 { 0x0000089e, 0x0000 },
0756 { 0x0000089f, 0x0080 },
0757 { 0x000008c0, 0x0000 },
0758 { 0x000008c1, 0x0080 },
0759 { 0x000008c2, 0x0000 },
0760 { 0x000008c3, 0x0080 },
0761 { 0x000008c4, 0x0000 },
0762 { 0x000008c5, 0x0080 },
0763 { 0x000008c6, 0x0000 },
0764 { 0x000008c7, 0x0080 },
0765 { 0x000008c8, 0x0000 },
0766 { 0x000008c9, 0x0080 },
0767 { 0x000008ca, 0x0000 },
0768 { 0x000008cb, 0x0080 },
0769 { 0x000008cc, 0x0000 },
0770 { 0x000008cd, 0x0080 },
0771 { 0x000008ce, 0x0000 },
0772 { 0x000008cf, 0x0080 },
0773 { 0x000008d0, 0x0000 },
0774 { 0x000008d1, 0x0080 },
0775 { 0x000008d2, 0x0000 },
0776 { 0x000008d3, 0x0080 },
0777 { 0x000008d4, 0x0000 },
0778 { 0x000008d5, 0x0080 },
0779 { 0x000008d6, 0x0000 },
0780 { 0x000008d7, 0x0080 },
0781 { 0x000008d8, 0x0000 },
0782 { 0x000008d9, 0x0080 },
0783 { 0x000008da, 0x0000 },
0784 { 0x000008db, 0x0080 },
0785 { 0x000008dc, 0x0000 },
0786 { 0x000008dd, 0x0080 },
0787 { 0x000008de, 0x0000 },
0788 { 0x000008df, 0x0080 },
0789 { 0x00000900, 0x0000 },
0790 { 0x00000901, 0x0080 },
0791 { 0x00000902, 0x0000 },
0792 { 0x00000903, 0x0080 },
0793 { 0x00000904, 0x0000 },
0794 { 0x00000905, 0x0080 },
0795 { 0x00000906, 0x0000 },
0796 { 0x00000907, 0x0080 },
0797 { 0x00000908, 0x0000 },
0798 { 0x00000909, 0x0080 },
0799 { 0x0000090a, 0x0000 },
0800 { 0x0000090b, 0x0080 },
0801 { 0x0000090c, 0x0000 },
0802 { 0x0000090d, 0x0080 },
0803 { 0x0000090e, 0x0000 },
0804 { 0x0000090f, 0x0080 },
0805 { 0x00000910, 0x0000 },
0806 { 0x00000911, 0x0080 },
0807 { 0x00000912, 0x0000 },
0808 { 0x00000913, 0x0080 },
0809 { 0x00000914, 0x0000 },
0810 { 0x00000915, 0x0080 },
0811 { 0x00000916, 0x0000 },
0812 { 0x00000917, 0x0080 },
0813 { 0x00000918, 0x0000 },
0814 { 0x00000919, 0x0080 },
0815 { 0x0000091a, 0x0000 },
0816 { 0x0000091b, 0x0080 },
0817 { 0x0000091c, 0x0000 },
0818 { 0x0000091d, 0x0080 },
0819 { 0x0000091e, 0x0000 },
0820 { 0x0000091f, 0x0080 },
0821 { 0x00000940, 0x0000 },
0822 { 0x00000941, 0x0080 },
0823 { 0x00000942, 0x0000 },
0824 { 0x00000943, 0x0080 },
0825 { 0x00000944, 0x0000 },
0826 { 0x00000945, 0x0080 },
0827 { 0x00000946, 0x0000 },
0828 { 0x00000947, 0x0080 },
0829 { 0x00000948, 0x0000 },
0830 { 0x00000949, 0x0080 },
0831 { 0x0000094a, 0x0000 },
0832 { 0x0000094b, 0x0080 },
0833 { 0x0000094c, 0x0000 },
0834 { 0x0000094d, 0x0080 },
0835 { 0x0000094e, 0x0000 },
0836 { 0x0000094f, 0x0080 },
0837 { 0x00000950, 0x0000 },
0838 { 0x00000958, 0x0000 },
0839 { 0x00000960, 0x0000 },
0840 { 0x00000968, 0x0000 },
0841 { 0x00000970, 0x0000 },
0842 { 0x00000978, 0x0000 },
0843 { 0x00000a80, 0x0000 },
0844 { 0x00000a88, 0x0000 },
0845 { 0x00000a90, 0x0000 },
0846 { 0x00000a98, 0x0000 },
0847 { 0x00000b00, 0x0000 },
0848 { 0x00000b08, 0x0000 },
0849 { 0x00000b20, 0x0000 },
0850 { 0x00000b28, 0x0000 },
0851 { 0x00000b40, 0x0000 },
0852 { 0x00000b48, 0x0000 },
0853 { 0x00000b60, 0x0000 },
0854 { 0x00000b68, 0x0000 },
0855 { 0x00000dc0, 0x0000 },
0856 { 0x00000dc8, 0x0000 },
0857 { 0x00000dd0, 0x0000 },
0858 { 0x00000dd8, 0x0000 },
0859 { 0x00000de0, 0x0000 },
0860 { 0x00000de8, 0x0000 },
0861 { 0x00000df0, 0x0000 },
0862 { 0x00000df8, 0x0000 },
0863 { 0x00000e00, 0x0000 },
0864 { 0x00000e10, 0x6318 },
0865 { 0x00000e11, 0x6300 },
0866 { 0x00000e12, 0x0fc8 },
0867 { 0x00000e13, 0x03fe },
0868 { 0x00000e14, 0x00e0 },
0869 { 0x00000e15, 0x1ec4 },
0870 { 0x00000e16, 0xf136 },
0871 { 0x00000e17, 0x0409 },
0872 { 0x00000e18, 0x04cc },
0873 { 0x00000e19, 0x1c9b },
0874 { 0x00000e1a, 0xf337 },
0875 { 0x00000e1b, 0x040b },
0876 { 0x00000e1c, 0x0cbb },
0877 { 0x00000e1d, 0x16f8 },
0878 { 0x00000e1e, 0xf7d9 },
0879 { 0x00000e1f, 0x040a },
0880 { 0x00000e20, 0x1f14 },
0881 { 0x00000e21, 0x058c },
0882 { 0x00000e22, 0x0563 },
0883 { 0x00000e23, 0x4000 },
0884 { 0x00000e24, 0x0b75 },
0885 { 0x00000e26, 0x6318 },
0886 { 0x00000e27, 0x6300 },
0887 { 0x00000e28, 0x0fc8 },
0888 { 0x00000e29, 0x03fe },
0889 { 0x00000e2a, 0x00e0 },
0890 { 0x00000e2b, 0x1ec4 },
0891 { 0x00000e2c, 0xf136 },
0892 { 0x00000e2d, 0x0409 },
0893 { 0x00000e2e, 0x04cc },
0894 { 0x00000e2f, 0x1c9b },
0895 { 0x00000e30, 0xf337 },
0896 { 0x00000e31, 0x040b },
0897 { 0x00000e32, 0x0cbb },
0898 { 0x00000e33, 0x16f8 },
0899 { 0x00000e34, 0xf7d9 },
0900 { 0x00000e35, 0x040a },
0901 { 0x00000e36, 0x1f14 },
0902 { 0x00000e37, 0x058c },
0903 { 0x00000e38, 0x0563 },
0904 { 0x00000e39, 0x4000 },
0905 { 0x00000e3a, 0x0b75 },
0906 { 0x00000e3c, 0x6318 },
0907 { 0x00000e3d, 0x6300 },
0908 { 0x00000e3e, 0x0fc8 },
0909 { 0x00000e3f, 0x03fe },
0910 { 0x00000e40, 0x00e0 },
0911 { 0x00000e41, 0x1ec4 },
0912 { 0x00000e42, 0xf136 },
0913 { 0x00000e43, 0x0409 },
0914 { 0x00000e44, 0x04cc },
0915 { 0x00000e45, 0x1c9b },
0916 { 0x00000e46, 0xf337 },
0917 { 0x00000e47, 0x040b },
0918 { 0x00000e48, 0x0cbb },
0919 { 0x00000e49, 0x16f8 },
0920 { 0x00000e4a, 0xf7d9 },
0921 { 0x00000e4b, 0x040a },
0922 { 0x00000e4c, 0x1f14 },
0923 { 0x00000e4d, 0x058c },
0924 { 0x00000e4e, 0x0563 },
0925 { 0x00000e4f, 0x4000 },
0926 { 0x00000e50, 0x0b75 },
0927 { 0x00000e52, 0x6318 },
0928 { 0x00000e53, 0x6300 },
0929 { 0x00000e54, 0x0fc8 },
0930 { 0x00000e55, 0x03fe },
0931 { 0x00000e56, 0x00e0 },
0932 { 0x00000e57, 0x1ec4 },
0933 { 0x00000e58, 0xf136 },
0934 { 0x00000e59, 0x0409 },
0935 { 0x00000e5a, 0x04cc },
0936 { 0x00000e5b, 0x1c9b },
0937 { 0x00000e5c, 0xf337 },
0938 { 0x00000e5d, 0x040b },
0939 { 0x00000e5e, 0x0cbb },
0940 { 0x00000e5f, 0x16f8 },
0941 { 0x00000e60, 0xf7d9 },
0942 { 0x00000e61, 0x040a },
0943 { 0x00000e62, 0x1f14 },
0944 { 0x00000e63, 0x058c },
0945 { 0x00000e64, 0x0563 },
0946 { 0x00000e65, 0x4000 },
0947 { 0x00000e66, 0x0b75 },
0948 { 0x00000e80, 0x0018 },
0949 { 0x00000e81, 0x0933 },
0950 { 0x00000e82, 0x0018 },
0951 { 0x00000e83, 0x0000 },
0952 { 0x00000e84, 0x0000 },
0953 { 0x00000e88, 0x0018 },
0954 { 0x00000e89, 0x0933 },
0955 { 0x00000e8a, 0x0018 },
0956 { 0x00000e8b, 0x0000 },
0957 { 0x00000e8c, 0x0000 },
0958 { 0x00000ec0, 0x0000 },
0959 { 0x00000ec1, 0x0000 },
0960 { 0x00000ec4, 0x0000 },
0961 { 0x00000ec5, 0x0000 },
0962 { 0x00000ec8, 0x0000 },
0963 { 0x00000ec9, 0x0000 },
0964 { 0x00000ecc, 0x0000 },
0965 { 0x00000ecd, 0x0000 },
0966 { 0x00000ee0, 0x0000 },
0967 { 0x00000ee2, 0x0000 },
0968 { 0x00000ee3, 0x4000 },
0969 { 0x00000ef0, 0x0000 },
0970 { 0x00000ef1, 0x0001 },
0971 { 0x00000ef2, 0x0000 },
0972 { 0x00000ef3, 0x0000 },
0973 { 0x00000ef4, 0x0001 },
0974 { 0x00000ef5, 0x0000 },
0975 { 0x000010c0, 0x0008 },
0976 { 0x000010c1, 0x4000 },
0977 { 0x00001480, 0x0000 },
0978 { 0x00001482, 0x1f00 },
0979 { 0x00001484, 0x1f00 },
0980 { 0x00001486, 0x0000 },
0981 { 0x00001488, 0x1f00 },
0982 { 0x0000148a, 0x1f00 },
0983 { 0x0000148c, 0x0000 },
0984 { 0x0000148e, 0x1f00 },
0985 { 0x00001490, 0x1f00 },
0986 { 0x00001492, 0x0000 },
0987 { 0x00001494, 0x1f00 },
0988 { 0x00001496, 0x1f00 },
0989 { 0x00001498, 0x0000 },
0990 { 0x0000149a, 0x1f00 },
0991 { 0x0000149c, 0x1f00 },
0992 { 0x0000149e, 0x0000 },
0993 { 0x000014a0, 0x1f00 },
0994 { 0x000014a2, 0x1f00 },
0995 { 0x000014a4, 0x0000 },
0996 { 0x000014a6, 0x1f00 },
0997 { 0x000014a8, 0x1f00 },
0998 { 0x000014aa, 0x0000 },
0999 { 0x000014ac, 0x1f00 },
1000 { 0x000014ae, 0x1f00 },
1001 { 0x00001700, 0x2001 },
1002 { 0x00001701, 0xf000 },
1003 { 0x00001702, 0x2001 },
1004 { 0x00001703, 0xf000 },
1005 { 0x00001704, 0x2001 },
1006 { 0x00001705, 0xf000 },
1007 { 0x00001706, 0x2001 },
1008 { 0x00001707, 0xf000 },
1009 { 0x00001708, 0x2001 },
1010 { 0x00001709, 0xf000 },
1011 { 0x0000170a, 0x2001 },
1012 { 0x0000170b, 0xf000 },
1013 { 0x0000170c, 0x2001 },
1014 { 0x0000170d, 0xf000 },
1015 { 0x0000170e, 0x2001 },
1016 { 0x0000170f, 0xf000 },
1017 { 0x00001710, 0x2001 },
1018 { 0x00001711, 0xf000 },
1019 { 0x00001712, 0x2001 },
1020 { 0x00001713, 0xf000 },
1021 { 0x00001714, 0x2001 },
1022 { 0x00001715, 0xf000 },
1023 { 0x00001716, 0x2001 },
1024 { 0x00001717, 0xf000 },
1025 { 0x00001718, 0x2001 },
1026 { 0x00001719, 0xf000 },
1027 { 0x0000171a, 0x2001 },
1028 { 0x0000171b, 0xf000 },
1029 { 0x0000171c, 0x2001 },
1030 { 0x0000171d, 0xf000 },
1031 { 0x0000171e, 0x2001 },
1032 { 0x0000171f, 0xf000 },
1033 { 0x00001840, 0x1200 },
1034 { 0x00001841, 0x77e0 },
1035 { 0x00001842, 0xffff },
1036 { 0x00001843, 0xffff },
1037 { 0x00001844, 0xffff },
1038 { 0x00001845, 0x0301 },
1039 { 0x00001846, 0x0f3f },
1040 { 0x00001847, 0xffff },
1041 { 0x00001848, 0x031f },
1042 { 0x00001849, 0x031f },
1043 { 0x0000184a, 0xffff },
1044 { 0x0000184b, 0x033f },
1045 { 0x0000184c, 0x003f },
1046 { 0x0000184d, 0x003f },
1047 { 0x0000184e, 0x1000 },
1048 { 0x0000184f, 0xffff },
1049 { 0x00001850, 0xffff },
1050 { 0x00001851, 0xffff },
1051 { 0x00001852, 0xffff },
1052 { 0x00001853, 0xffff },
1053 { 0x00001854, 0x0001 },
1054 { 0x00001855, 0x0001 },
1055 { 0x00001856, 0x0001 },
1056 { 0x00001857, 0x0001 },
1057 { 0x00001858, 0x0001 },
1058 { 0x00001859, 0xffff },
1059 { 0x0000185a, 0x0001 },
1060 { 0x0000185b, 0x0001 },
1061 { 0x0000185c, 0xffff },
1062 { 0x0000185d, 0x0001 },
1063 { 0x0000185e, 0xffff },
1064 { 0x0000185f, 0xffff },
1065 { 0x00001860, 0x0001 },
1066 { 0x00001a06, 0x0000 },
1067 { 0x00001a80, 0x4400 },
1068 };
1069
1070 static bool cs47l92_is_adsp_memory(unsigned int reg)
1071 {
1072 switch (reg) {
1073 case 0x080000 ... 0x082ffe:
1074 case 0x0a0000 ... 0x0a1ffe:
1075 case 0x0c0000 ... 0x0c1ffe:
1076 case 0x0e0000 ... 0x0e1ffe:
1077 return true;
1078 default:
1079 return false;
1080 }
1081 }
1082
1083 static bool cs47l92_16bit_readable_register(struct device *dev,
1084 unsigned int reg)
1085 {
1086 switch (reg) {
1087 case MADERA_SOFTWARE_RESET:
1088 case MADERA_HARDWARE_REVISION:
1089 case MADERA_WRITE_SEQUENCER_CTRL_0 ... MADERA_WRITE_SEQUENCER_CTRL_2:
1090 case MADERA_TONE_GENERATOR_1 ... MADERA_TONE_GENERATOR_5:
1091 case MADERA_PWM_DRIVE_1 ... MADERA_PWM_DRIVE_3:
1092 case MADERA_SAMPLE_RATE_SEQUENCE_SELECT_1:
1093 case MADERA_SAMPLE_RATE_SEQUENCE_SELECT_2:
1094 case MADERA_SAMPLE_RATE_SEQUENCE_SELECT_3:
1095 case MADERA_SAMPLE_RATE_SEQUENCE_SELECT_4:
1096 case MADERA_HAPTICS_CONTROL_1 ... MADERA_HAPTICS_CONTROL_2:
1097 case MADERA_HAPTICS_PHASE_1_INTENSITY:
1098 case MADERA_HAPTICS_PHASE_1_DURATION:
1099 case MADERA_HAPTICS_PHASE_2_INTENSITY:
1100 case MADERA_HAPTICS_PHASE_2_DURATION:
1101 case MADERA_HAPTICS_PHASE_3_INTENSITY:
1102 case MADERA_HAPTICS_PHASE_3_DURATION:
1103 case MADERA_HAPTICS_STATUS:
1104 case MADERA_COMFORT_NOISE_GENERATOR:
1105 case MADERA_CLOCK_32K_1:
1106 case MADERA_SYSTEM_CLOCK_1:
1107 case MADERA_SAMPLE_RATE_1 ... MADERA_SAMPLE_RATE_3:
1108 case MADERA_SAMPLE_RATE_1_STATUS:
1109 case MADERA_SAMPLE_RATE_2_STATUS:
1110 case MADERA_SAMPLE_RATE_3_STATUS:
1111 case MADERA_ASYNC_CLOCK_1:
1112 case MADERA_ASYNC_SAMPLE_RATE_1:
1113 case MADERA_ASYNC_SAMPLE_RATE_1_STATUS:
1114 case MADERA_ASYNC_SAMPLE_RATE_2:
1115 case MADERA_ASYNC_SAMPLE_RATE_2_STATUS:
1116 case MADERA_DSP_CLOCK_1:
1117 case MADERA_DSP_CLOCK_2:
1118 case MADERA_OUTPUT_SYSTEM_CLOCK:
1119 case MADERA_OUTPUT_ASYNC_CLOCK:
1120 case MADERA_RATE_ESTIMATOR_1 ... MADERA_RATE_ESTIMATOR_5:
1121 case MADERA_FLL1_CONTROL_1 ... MADERA_FLL1_CONTROL_6:
1122 case CS47L92_FLL1_CONTROL_7 ... CS47L92_FLL1_CONTROL_10:
1123 case MADERA_FLL1_CONTROL_11:
1124 case MADERA_FLL1_DIGITAL_TEST_1:
1125 case MADERA_FLL1_SYNCHRONISER_1 ... MADERA_FLL1_SYNCHRONISER_6:
1126 case CS47L92_FLL1_GPIO_CLOCK:
1127 case MADERA_FLL2_CONTROL_1 ... MADERA_FLL2_CONTROL_6:
1128 case CS47L92_FLL2_CONTROL_7 ... CS47L92_FLL2_CONTROL_10:
1129 case MADERA_FLL2_CONTROL_11:
1130 case MADERA_FLL2_DIGITAL_TEST_1:
1131 case MADERA_FLL2_SYNCHRONISER_1 ... MADERA_FLL2_SYNCHRONISER_6:
1132 case CS47L92_FLL2_GPIO_CLOCK:
1133 case MADERA_MIC_CHARGE_PUMP_1:
1134 case MADERA_LDO2_CONTROL_1:
1135 case MADERA_MIC_BIAS_CTRL_1:
1136 case MADERA_MIC_BIAS_CTRL_2:
1137 case MADERA_MIC_BIAS_CTRL_5:
1138 case MADERA_MIC_BIAS_CTRL_6:
1139 case MADERA_HP_CTRL_1L:
1140 case MADERA_HP_CTRL_1R:
1141 case MADERA_HP_CTRL_2L:
1142 case MADERA_HP_CTRL_2R:
1143 case MADERA_HP_CTRL_3L:
1144 case MADERA_HP_CTRL_3R:
1145 case MADERA_ACCESSORY_DETECT_MODE_1:
1146 case MADERA_HEADPHONE_DETECT_0:
1147 case MADERA_HEADPHONE_DETECT_1:
1148 case MADERA_HEADPHONE_DETECT_2:
1149 case MADERA_HEADPHONE_DETECT_3:
1150 case MADERA_HEADPHONE_DETECT_5:
1151 case MADERA_MICD_CLAMP_CONTROL:
1152 case MADERA_MIC_DETECT_1_CONTROL_0:
1153 case MADERA_MIC_DETECT_1_CONTROL_1:
1154 case MADERA_MIC_DETECT_1_CONTROL_2:
1155 case MADERA_MIC_DETECT_1_CONTROL_3:
1156 case MADERA_MIC_DETECT_1_CONTROL_4:
1157 case MADERA_MIC_DETECT_1_LEVEL_1 ... MADERA_MIC_DETECT_1_LEVEL_4:
1158 case MADERA_MIC_DETECT_2_CONTROL_0:
1159 case MADERA_MIC_DETECT_2_CONTROL_1:
1160 case MADERA_MIC_DETECT_2_CONTROL_2:
1161 case MADERA_MIC_DETECT_2_CONTROL_3:
1162 case MADERA_MIC_DETECT_2_CONTROL_4:
1163 case MADERA_MIC_DETECT_2_LEVEL_1 ... MADERA_MIC_DETECT_2_LEVEL_4:
1164 case MADERA_GP_SWITCH_1:
1165 case MADERA_JACK_DETECT_ANALOGUE:
1166 case MADERA_INPUT_ENABLES:
1167 case MADERA_INPUT_ENABLES_STATUS:
1168 case MADERA_INPUT_RATE:
1169 case MADERA_INPUT_VOLUME_RAMP:
1170 case MADERA_HPF_CONTROL:
1171 case MADERA_IN1L_CONTROL:
1172 case MADERA_ADC_DIGITAL_VOLUME_1L:
1173 case MADERA_DMIC1L_CONTROL:
1174 case MADERA_IN1L_RATE_CONTROL:
1175 case MADERA_IN1R_CONTROL:
1176 case MADERA_ADC_DIGITAL_VOLUME_1R:
1177 case MADERA_DMIC1R_CONTROL:
1178 case MADERA_IN1R_RATE_CONTROL:
1179 case MADERA_IN2L_CONTROL:
1180 case MADERA_ADC_DIGITAL_VOLUME_2L:
1181 case MADERA_DMIC2L_CONTROL:
1182 case MADERA_IN2L_RATE_CONTROL:
1183 case MADERA_IN2R_CONTROL:
1184 case MADERA_ADC_DIGITAL_VOLUME_2R:
1185 case MADERA_DMIC2R_CONTROL:
1186 case MADERA_IN2R_RATE_CONTROL:
1187 case MADERA_IN3L_CONTROL:
1188 case MADERA_ADC_DIGITAL_VOLUME_3L:
1189 case MADERA_DMIC3L_CONTROL:
1190 case MADERA_IN3L_RATE_CONTROL:
1191 case MADERA_IN3R_CONTROL:
1192 case MADERA_ADC_DIGITAL_VOLUME_3R:
1193 case MADERA_DMIC3R_CONTROL:
1194 case MADERA_IN3R_RATE_CONTROL:
1195 case MADERA_IN4L_CONTROL:
1196 case MADERA_ADC_DIGITAL_VOLUME_4L:
1197 case MADERA_DMIC4L_CONTROL:
1198 case MADERA_IN4L_RATE_CONTROL:
1199 case MADERA_IN4R_CONTROL:
1200 case MADERA_ADC_DIGITAL_VOLUME_4R:
1201 case MADERA_DMIC4R_CONTROL:
1202 case MADERA_IN4R_RATE_CONTROL:
1203 case MADERA_OUTPUT_ENABLES_1:
1204 case MADERA_OUTPUT_STATUS_1:
1205 case MADERA_RAW_OUTPUT_STATUS_1:
1206 case MADERA_OUTPUT_RATE_1:
1207 case MADERA_OUTPUT_VOLUME_RAMP:
1208 case MADERA_OUTPUT_PATH_CONFIG_1L:
1209 case MADERA_DAC_DIGITAL_VOLUME_1L:
1210 case MADERA_OUTPUT_PATH_CONFIG_1:
1211 case MADERA_NOISE_GATE_SELECT_1L:
1212 case MADERA_OUTPUT_PATH_CONFIG_1R:
1213 case MADERA_DAC_DIGITAL_VOLUME_1R:
1214 case MADERA_NOISE_GATE_SELECT_1R:
1215 case MADERA_OUTPUT_PATH_CONFIG_2L:
1216 case MADERA_DAC_DIGITAL_VOLUME_2L:
1217 case MADERA_OUTPUT_PATH_CONFIG_2:
1218 case MADERA_NOISE_GATE_SELECT_2L:
1219 case MADERA_OUTPUT_PATH_CONFIG_2R:
1220 case MADERA_DAC_DIGITAL_VOLUME_2R:
1221 case MADERA_NOISE_GATE_SELECT_2R:
1222 case MADERA_OUTPUT_PATH_CONFIG_3L:
1223 case MADERA_DAC_DIGITAL_VOLUME_3L:
1224 case MADERA_OUTPUT_PATH_CONFIG_3:
1225 case MADERA_NOISE_GATE_SELECT_3L:
1226 case MADERA_OUTPUT_PATH_CONFIG_3R:
1227 case MADERA_DAC_DIGITAL_VOLUME_3R:
1228 case MADERA_NOISE_GATE_SELECT_3R:
1229 case MADERA_OUTPUT_PATH_CONFIG_5L:
1230 case MADERA_DAC_DIGITAL_VOLUME_5L:
1231 case MADERA_NOISE_GATE_SELECT_5L:
1232 case MADERA_OUTPUT_PATH_CONFIG_5R:
1233 case MADERA_DAC_DIGITAL_VOLUME_5R:
1234 case MADERA_NOISE_GATE_SELECT_5R:
1235 case MADERA_DAC_AEC_CONTROL_1 ... MADERA_DAC_AEC_CONTROL_2:
1236 case MADERA_NOISE_GATE_CONTROL:
1237 case MADERA_PDM_SPK1_CTRL_1 ... MADERA_PDM_SPK1_CTRL_2:
1238 case MADERA_HP1_SHORT_CIRCUIT_CTRL:
1239 case MADERA_HP2_SHORT_CIRCUIT_CTRL:
1240 case MADERA_HP3_SHORT_CIRCUIT_CTRL:
1241 case MADERA_AIF1_BCLK_CTRL:
1242 case MADERA_AIF1_TX_PIN_CTRL:
1243 case MADERA_AIF1_RX_PIN_CTRL:
1244 case MADERA_AIF1_RATE_CTRL:
1245 case MADERA_AIF1_FORMAT:
1246 case MADERA_AIF1_RX_BCLK_RATE:
1247 case MADERA_AIF1_FRAME_CTRL_1 ... MADERA_AIF1_FRAME_CTRL_18:
1248 case MADERA_AIF1_TX_ENABLES:
1249 case MADERA_AIF1_RX_ENABLES:
1250 case MADERA_AIF2_BCLK_CTRL:
1251 case MADERA_AIF2_TX_PIN_CTRL:
1252 case MADERA_AIF2_RX_PIN_CTRL:
1253 case MADERA_AIF2_RATE_CTRL:
1254 case MADERA_AIF2_FORMAT:
1255 case MADERA_AIF2_RX_BCLK_RATE:
1256 case MADERA_AIF2_FRAME_CTRL_1 ... MADERA_AIF2_FRAME_CTRL_18:
1257 case MADERA_AIF2_TX_ENABLES:
1258 case MADERA_AIF2_RX_ENABLES:
1259 case MADERA_AIF3_BCLK_CTRL:
1260 case MADERA_AIF3_TX_PIN_CTRL:
1261 case MADERA_AIF3_RX_PIN_CTRL:
1262 case MADERA_AIF3_RATE_CTRL:
1263 case MADERA_AIF3_FORMAT:
1264 case MADERA_AIF3_RX_BCLK_RATE:
1265 case MADERA_AIF3_FRAME_CTRL_1 ... MADERA_AIF3_FRAME_CTRL_18:
1266 case MADERA_AIF3_TX_ENABLES:
1267 case MADERA_AIF3_RX_ENABLES:
1268 case MADERA_SPD1_TX_CONTROL:
1269 case MADERA_SPD1_TX_CHANNEL_STATUS_1:
1270 case MADERA_SPD1_TX_CHANNEL_STATUS_2:
1271 case MADERA_SPD1_TX_CHANNEL_STATUS_3:
1272 case MADERA_SLIMBUS_FRAMER_REF_GEAR:
1273 case MADERA_SLIMBUS_RATES_1 ... MADERA_SLIMBUS_RATES_8:
1274 case MADERA_SLIMBUS_RX_CHANNEL_ENABLE:
1275 case MADERA_SLIMBUS_TX_CHANNEL_ENABLE:
1276 case MADERA_SLIMBUS_RX_PORT_STATUS:
1277 case MADERA_SLIMBUS_TX_PORT_STATUS:
1278 case MADERA_PWM1MIX_INPUT_1_SOURCE:
1279 case MADERA_PWM1MIX_INPUT_1_VOLUME:
1280 case MADERA_PWM1MIX_INPUT_2_SOURCE:
1281 case MADERA_PWM1MIX_INPUT_2_VOLUME:
1282 case MADERA_PWM1MIX_INPUT_3_SOURCE:
1283 case MADERA_PWM1MIX_INPUT_3_VOLUME:
1284 case MADERA_PWM1MIX_INPUT_4_SOURCE:
1285 case MADERA_PWM1MIX_INPUT_4_VOLUME:
1286 case MADERA_PWM2MIX_INPUT_1_SOURCE:
1287 case MADERA_PWM2MIX_INPUT_1_VOLUME:
1288 case MADERA_PWM2MIX_INPUT_2_SOURCE:
1289 case MADERA_PWM2MIX_INPUT_2_VOLUME:
1290 case MADERA_PWM2MIX_INPUT_3_SOURCE:
1291 case MADERA_PWM2MIX_INPUT_3_VOLUME:
1292 case MADERA_PWM2MIX_INPUT_4_SOURCE:
1293 case MADERA_PWM2MIX_INPUT_4_VOLUME:
1294 case MADERA_OUT1LMIX_INPUT_1_SOURCE:
1295 case MADERA_OUT1LMIX_INPUT_1_VOLUME:
1296 case MADERA_OUT1LMIX_INPUT_2_SOURCE:
1297 case MADERA_OUT1LMIX_INPUT_2_VOLUME:
1298 case MADERA_OUT1LMIX_INPUT_3_SOURCE:
1299 case MADERA_OUT1LMIX_INPUT_3_VOLUME:
1300 case MADERA_OUT1LMIX_INPUT_4_SOURCE:
1301 case MADERA_OUT1LMIX_INPUT_4_VOLUME:
1302 case MADERA_OUT1RMIX_INPUT_1_SOURCE:
1303 case MADERA_OUT1RMIX_INPUT_1_VOLUME:
1304 case MADERA_OUT1RMIX_INPUT_2_SOURCE:
1305 case MADERA_OUT1RMIX_INPUT_2_VOLUME:
1306 case MADERA_OUT1RMIX_INPUT_3_SOURCE:
1307 case MADERA_OUT1RMIX_INPUT_3_VOLUME:
1308 case MADERA_OUT1RMIX_INPUT_4_SOURCE:
1309 case MADERA_OUT1RMIX_INPUT_4_VOLUME:
1310 case MADERA_OUT2LMIX_INPUT_1_SOURCE:
1311 case MADERA_OUT2LMIX_INPUT_1_VOLUME:
1312 case MADERA_OUT2LMIX_INPUT_2_SOURCE:
1313 case MADERA_OUT2LMIX_INPUT_2_VOLUME:
1314 case MADERA_OUT2LMIX_INPUT_3_SOURCE:
1315 case MADERA_OUT2LMIX_INPUT_3_VOLUME:
1316 case MADERA_OUT2LMIX_INPUT_4_SOURCE:
1317 case MADERA_OUT2LMIX_INPUT_4_VOLUME:
1318 case MADERA_OUT2RMIX_INPUT_1_SOURCE:
1319 case MADERA_OUT2RMIX_INPUT_1_VOLUME:
1320 case MADERA_OUT2RMIX_INPUT_2_SOURCE:
1321 case MADERA_OUT2RMIX_INPUT_2_VOLUME:
1322 case MADERA_OUT2RMIX_INPUT_3_SOURCE:
1323 case MADERA_OUT2RMIX_INPUT_3_VOLUME:
1324 case MADERA_OUT2RMIX_INPUT_4_SOURCE:
1325 case MADERA_OUT2RMIX_INPUT_4_VOLUME:
1326 case MADERA_OUT3LMIX_INPUT_1_SOURCE:
1327 case MADERA_OUT3LMIX_INPUT_1_VOLUME:
1328 case MADERA_OUT3LMIX_INPUT_2_SOURCE:
1329 case MADERA_OUT3LMIX_INPUT_2_VOLUME:
1330 case MADERA_OUT3LMIX_INPUT_3_SOURCE:
1331 case MADERA_OUT3LMIX_INPUT_3_VOLUME:
1332 case MADERA_OUT3LMIX_INPUT_4_SOURCE:
1333 case MADERA_OUT3LMIX_INPUT_4_VOLUME:
1334 case MADERA_OUT3RMIX_INPUT_1_SOURCE:
1335 case MADERA_OUT3RMIX_INPUT_1_VOLUME:
1336 case MADERA_OUT3RMIX_INPUT_2_SOURCE:
1337 case MADERA_OUT3RMIX_INPUT_2_VOLUME:
1338 case MADERA_OUT3RMIX_INPUT_3_SOURCE:
1339 case MADERA_OUT3RMIX_INPUT_3_VOLUME:
1340 case MADERA_OUT3RMIX_INPUT_4_SOURCE:
1341 case MADERA_OUT3RMIX_INPUT_4_VOLUME:
1342 case MADERA_OUT5LMIX_INPUT_1_SOURCE:
1343 case MADERA_OUT5LMIX_INPUT_1_VOLUME:
1344 case MADERA_OUT5LMIX_INPUT_2_SOURCE:
1345 case MADERA_OUT5LMIX_INPUT_2_VOLUME:
1346 case MADERA_OUT5LMIX_INPUT_3_SOURCE:
1347 case MADERA_OUT5LMIX_INPUT_3_VOLUME:
1348 case MADERA_OUT5LMIX_INPUT_4_SOURCE:
1349 case MADERA_OUT5LMIX_INPUT_4_VOLUME:
1350 case MADERA_OUT5RMIX_INPUT_1_SOURCE:
1351 case MADERA_OUT5RMIX_INPUT_1_VOLUME:
1352 case MADERA_OUT5RMIX_INPUT_2_SOURCE:
1353 case MADERA_OUT5RMIX_INPUT_2_VOLUME:
1354 case MADERA_OUT5RMIX_INPUT_3_SOURCE:
1355 case MADERA_OUT5RMIX_INPUT_3_VOLUME:
1356 case MADERA_OUT5RMIX_INPUT_4_SOURCE:
1357 case MADERA_OUT5RMIX_INPUT_4_VOLUME:
1358 case MADERA_AIF1TX1MIX_INPUT_1_SOURCE:
1359 case MADERA_AIF1TX1MIX_INPUT_1_VOLUME:
1360 case MADERA_AIF1TX1MIX_INPUT_2_SOURCE:
1361 case MADERA_AIF1TX1MIX_INPUT_2_VOLUME:
1362 case MADERA_AIF1TX1MIX_INPUT_3_SOURCE:
1363 case MADERA_AIF1TX1MIX_INPUT_3_VOLUME:
1364 case MADERA_AIF1TX1MIX_INPUT_4_SOURCE:
1365 case MADERA_AIF1TX1MIX_INPUT_4_VOLUME:
1366 case MADERA_AIF1TX2MIX_INPUT_1_SOURCE:
1367 case MADERA_AIF1TX2MIX_INPUT_1_VOLUME:
1368 case MADERA_AIF1TX2MIX_INPUT_2_SOURCE:
1369 case MADERA_AIF1TX2MIX_INPUT_2_VOLUME:
1370 case MADERA_AIF1TX2MIX_INPUT_3_SOURCE:
1371 case MADERA_AIF1TX2MIX_INPUT_3_VOLUME:
1372 case MADERA_AIF1TX2MIX_INPUT_4_SOURCE:
1373 case MADERA_AIF1TX2MIX_INPUT_4_VOLUME:
1374 case MADERA_AIF1TX3MIX_INPUT_1_SOURCE:
1375 case MADERA_AIF1TX3MIX_INPUT_1_VOLUME:
1376 case MADERA_AIF1TX3MIX_INPUT_2_SOURCE:
1377 case MADERA_AIF1TX3MIX_INPUT_2_VOLUME:
1378 case MADERA_AIF1TX3MIX_INPUT_3_SOURCE:
1379 case MADERA_AIF1TX3MIX_INPUT_3_VOLUME:
1380 case MADERA_AIF1TX3MIX_INPUT_4_SOURCE:
1381 case MADERA_AIF1TX3MIX_INPUT_4_VOLUME:
1382 case MADERA_AIF1TX4MIX_INPUT_1_SOURCE:
1383 case MADERA_AIF1TX4MIX_INPUT_1_VOLUME:
1384 case MADERA_AIF1TX4MIX_INPUT_2_SOURCE:
1385 case MADERA_AIF1TX4MIX_INPUT_2_VOLUME:
1386 case MADERA_AIF1TX4MIX_INPUT_3_SOURCE:
1387 case MADERA_AIF1TX4MIX_INPUT_3_VOLUME:
1388 case MADERA_AIF1TX4MIX_INPUT_4_SOURCE:
1389 case MADERA_AIF1TX4MIX_INPUT_4_VOLUME:
1390 case MADERA_AIF1TX5MIX_INPUT_1_SOURCE:
1391 case MADERA_AIF1TX5MIX_INPUT_1_VOLUME:
1392 case MADERA_AIF1TX5MIX_INPUT_2_SOURCE:
1393 case MADERA_AIF1TX5MIX_INPUT_2_VOLUME:
1394 case MADERA_AIF1TX5MIX_INPUT_3_SOURCE:
1395 case MADERA_AIF1TX5MIX_INPUT_3_VOLUME:
1396 case MADERA_AIF1TX5MIX_INPUT_4_SOURCE:
1397 case MADERA_AIF1TX5MIX_INPUT_4_VOLUME:
1398 case MADERA_AIF1TX6MIX_INPUT_1_SOURCE:
1399 case MADERA_AIF1TX6MIX_INPUT_1_VOLUME:
1400 case MADERA_AIF1TX6MIX_INPUT_2_SOURCE:
1401 case MADERA_AIF1TX6MIX_INPUT_2_VOLUME:
1402 case MADERA_AIF1TX6MIX_INPUT_3_SOURCE:
1403 case MADERA_AIF1TX6MIX_INPUT_3_VOLUME:
1404 case MADERA_AIF1TX6MIX_INPUT_4_SOURCE:
1405 case MADERA_AIF1TX6MIX_INPUT_4_VOLUME:
1406 case MADERA_AIF1TX7MIX_INPUT_1_SOURCE:
1407 case MADERA_AIF1TX7MIX_INPUT_1_VOLUME:
1408 case MADERA_AIF1TX7MIX_INPUT_2_SOURCE:
1409 case MADERA_AIF1TX7MIX_INPUT_2_VOLUME:
1410 case MADERA_AIF1TX7MIX_INPUT_3_SOURCE:
1411 case MADERA_AIF1TX7MIX_INPUT_3_VOLUME:
1412 case MADERA_AIF1TX7MIX_INPUT_4_SOURCE:
1413 case MADERA_AIF1TX7MIX_INPUT_4_VOLUME:
1414 case MADERA_AIF1TX8MIX_INPUT_1_SOURCE:
1415 case MADERA_AIF1TX8MIX_INPUT_1_VOLUME:
1416 case MADERA_AIF1TX8MIX_INPUT_2_SOURCE:
1417 case MADERA_AIF1TX8MIX_INPUT_2_VOLUME:
1418 case MADERA_AIF1TX8MIX_INPUT_3_SOURCE:
1419 case MADERA_AIF1TX8MIX_INPUT_3_VOLUME:
1420 case MADERA_AIF1TX8MIX_INPUT_4_SOURCE:
1421 case MADERA_AIF1TX8MIX_INPUT_4_VOLUME:
1422 case MADERA_AIF2TX1MIX_INPUT_1_SOURCE:
1423 case MADERA_AIF2TX1MIX_INPUT_1_VOLUME:
1424 case MADERA_AIF2TX1MIX_INPUT_2_SOURCE:
1425 case MADERA_AIF2TX1MIX_INPUT_2_VOLUME:
1426 case MADERA_AIF2TX1MIX_INPUT_3_SOURCE:
1427 case MADERA_AIF2TX1MIX_INPUT_3_VOLUME:
1428 case MADERA_AIF2TX1MIX_INPUT_4_SOURCE:
1429 case MADERA_AIF2TX1MIX_INPUT_4_VOLUME:
1430 case MADERA_AIF2TX2MIX_INPUT_1_SOURCE:
1431 case MADERA_AIF2TX2MIX_INPUT_1_VOLUME:
1432 case MADERA_AIF2TX2MIX_INPUT_2_SOURCE:
1433 case MADERA_AIF2TX2MIX_INPUT_2_VOLUME:
1434 case MADERA_AIF2TX2MIX_INPUT_3_SOURCE:
1435 case MADERA_AIF2TX2MIX_INPUT_3_VOLUME:
1436 case MADERA_AIF2TX2MIX_INPUT_4_SOURCE:
1437 case MADERA_AIF2TX2MIX_INPUT_4_VOLUME:
1438 case MADERA_AIF2TX3MIX_INPUT_1_SOURCE:
1439 case MADERA_AIF2TX3MIX_INPUT_1_VOLUME:
1440 case MADERA_AIF2TX3MIX_INPUT_2_SOURCE:
1441 case MADERA_AIF2TX3MIX_INPUT_2_VOLUME:
1442 case MADERA_AIF2TX3MIX_INPUT_3_SOURCE:
1443 case MADERA_AIF2TX3MIX_INPUT_3_VOLUME:
1444 case MADERA_AIF2TX3MIX_INPUT_4_SOURCE:
1445 case MADERA_AIF2TX3MIX_INPUT_4_VOLUME:
1446 case MADERA_AIF2TX4MIX_INPUT_1_SOURCE:
1447 case MADERA_AIF2TX4MIX_INPUT_1_VOLUME:
1448 case MADERA_AIF2TX4MIX_INPUT_2_SOURCE:
1449 case MADERA_AIF2TX4MIX_INPUT_2_VOLUME:
1450 case MADERA_AIF2TX4MIX_INPUT_3_SOURCE:
1451 case MADERA_AIF2TX4MIX_INPUT_3_VOLUME:
1452 case MADERA_AIF2TX4MIX_INPUT_4_SOURCE:
1453 case MADERA_AIF2TX4MIX_INPUT_4_VOLUME:
1454 case MADERA_AIF2TX5MIX_INPUT_1_SOURCE:
1455 case MADERA_AIF2TX5MIX_INPUT_1_VOLUME:
1456 case MADERA_AIF2TX5MIX_INPUT_2_SOURCE:
1457 case MADERA_AIF2TX5MIX_INPUT_2_VOLUME:
1458 case MADERA_AIF2TX5MIX_INPUT_3_SOURCE:
1459 case MADERA_AIF2TX5MIX_INPUT_3_VOLUME:
1460 case MADERA_AIF2TX5MIX_INPUT_4_SOURCE:
1461 case MADERA_AIF2TX5MIX_INPUT_4_VOLUME:
1462 case MADERA_AIF2TX6MIX_INPUT_1_SOURCE:
1463 case MADERA_AIF2TX6MIX_INPUT_1_VOLUME:
1464 case MADERA_AIF2TX6MIX_INPUT_2_SOURCE:
1465 case MADERA_AIF2TX6MIX_INPUT_2_VOLUME:
1466 case MADERA_AIF2TX6MIX_INPUT_3_SOURCE:
1467 case MADERA_AIF2TX6MIX_INPUT_3_VOLUME:
1468 case MADERA_AIF2TX6MIX_INPUT_4_SOURCE:
1469 case MADERA_AIF2TX6MIX_INPUT_4_VOLUME:
1470 case MADERA_AIF2TX7MIX_INPUT_1_SOURCE:
1471 case MADERA_AIF2TX7MIX_INPUT_1_VOLUME:
1472 case MADERA_AIF2TX7MIX_INPUT_2_SOURCE:
1473 case MADERA_AIF2TX7MIX_INPUT_2_VOLUME:
1474 case MADERA_AIF2TX7MIX_INPUT_3_SOURCE:
1475 case MADERA_AIF2TX7MIX_INPUT_3_VOLUME:
1476 case MADERA_AIF2TX7MIX_INPUT_4_SOURCE:
1477 case MADERA_AIF2TX7MIX_INPUT_4_VOLUME:
1478 case MADERA_AIF2TX8MIX_INPUT_1_SOURCE:
1479 case MADERA_AIF2TX8MIX_INPUT_1_VOLUME:
1480 case MADERA_AIF2TX8MIX_INPUT_2_SOURCE:
1481 case MADERA_AIF2TX8MIX_INPUT_2_VOLUME:
1482 case MADERA_AIF2TX8MIX_INPUT_3_SOURCE:
1483 case MADERA_AIF2TX8MIX_INPUT_3_VOLUME:
1484 case MADERA_AIF2TX8MIX_INPUT_4_SOURCE:
1485 case MADERA_AIF2TX8MIX_INPUT_4_VOLUME:
1486 case MADERA_AIF3TX1MIX_INPUT_1_SOURCE:
1487 case MADERA_AIF3TX1MIX_INPUT_1_VOLUME:
1488 case MADERA_AIF3TX1MIX_INPUT_2_SOURCE:
1489 case MADERA_AIF3TX1MIX_INPUT_2_VOLUME:
1490 case MADERA_AIF3TX1MIX_INPUT_3_SOURCE:
1491 case MADERA_AIF3TX1MIX_INPUT_3_VOLUME:
1492 case MADERA_AIF3TX1MIX_INPUT_4_SOURCE:
1493 case MADERA_AIF3TX1MIX_INPUT_4_VOLUME:
1494 case MADERA_AIF3TX2MIX_INPUT_1_SOURCE:
1495 case MADERA_AIF3TX2MIX_INPUT_1_VOLUME:
1496 case MADERA_AIF3TX2MIX_INPUT_2_SOURCE:
1497 case MADERA_AIF3TX2MIX_INPUT_2_VOLUME:
1498 case MADERA_AIF3TX2MIX_INPUT_3_SOURCE:
1499 case MADERA_AIF3TX2MIX_INPUT_3_VOLUME:
1500 case MADERA_AIF3TX2MIX_INPUT_4_SOURCE:
1501 case MADERA_AIF3TX2MIX_INPUT_4_VOLUME:
1502 case MADERA_AIF3TX3MIX_INPUT_1_SOURCE:
1503 case MADERA_AIF3TX3MIX_INPUT_1_VOLUME:
1504 case MADERA_AIF3TX3MIX_INPUT_2_SOURCE:
1505 case MADERA_AIF3TX3MIX_INPUT_2_VOLUME:
1506 case MADERA_AIF3TX3MIX_INPUT_3_SOURCE:
1507 case MADERA_AIF3TX3MIX_INPUT_3_VOLUME:
1508 case MADERA_AIF3TX3MIX_INPUT_4_SOURCE:
1509 case MADERA_AIF3TX3MIX_INPUT_4_VOLUME:
1510 case MADERA_AIF3TX4MIX_INPUT_1_SOURCE:
1511 case MADERA_AIF3TX4MIX_INPUT_1_VOLUME:
1512 case MADERA_AIF3TX4MIX_INPUT_2_SOURCE:
1513 case MADERA_AIF3TX4MIX_INPUT_2_VOLUME:
1514 case MADERA_AIF3TX4MIX_INPUT_3_SOURCE:
1515 case MADERA_AIF3TX4MIX_INPUT_3_VOLUME:
1516 case MADERA_AIF3TX4MIX_INPUT_4_SOURCE:
1517 case MADERA_AIF3TX4MIX_INPUT_4_VOLUME:
1518 case CS47L92_AIF3TX5MIX_INPUT_1_SOURCE:
1519 case CS47L92_AIF3TX5MIX_INPUT_1_VOLUME:
1520 case CS47L92_AIF3TX5MIX_INPUT_2_SOURCE:
1521 case CS47L92_AIF3TX5MIX_INPUT_2_VOLUME:
1522 case CS47L92_AIF3TX5MIX_INPUT_3_SOURCE:
1523 case CS47L92_AIF3TX5MIX_INPUT_3_VOLUME:
1524 case CS47L92_AIF3TX5MIX_INPUT_4_SOURCE:
1525 case CS47L92_AIF3TX5MIX_INPUT_4_VOLUME:
1526 case CS47L92_AIF3TX6MIX_INPUT_1_SOURCE:
1527 case CS47L92_AIF3TX6MIX_INPUT_1_VOLUME:
1528 case CS47L92_AIF3TX6MIX_INPUT_2_SOURCE:
1529 case CS47L92_AIF3TX6MIX_INPUT_2_VOLUME:
1530 case CS47L92_AIF3TX6MIX_INPUT_3_SOURCE:
1531 case CS47L92_AIF3TX6MIX_INPUT_3_VOLUME:
1532 case CS47L92_AIF3TX6MIX_INPUT_4_SOURCE:
1533 case CS47L92_AIF3TX6MIX_INPUT_4_VOLUME:
1534 case CS47L92_AIF3TX7MIX_INPUT_1_SOURCE:
1535 case CS47L92_AIF3TX7MIX_INPUT_1_VOLUME:
1536 case CS47L92_AIF3TX7MIX_INPUT_2_SOURCE:
1537 case CS47L92_AIF3TX7MIX_INPUT_2_VOLUME:
1538 case CS47L92_AIF3TX7MIX_INPUT_3_SOURCE:
1539 case CS47L92_AIF3TX7MIX_INPUT_3_VOLUME:
1540 case CS47L92_AIF3TX7MIX_INPUT_4_SOURCE:
1541 case CS47L92_AIF3TX7MIX_INPUT_4_VOLUME:
1542 case CS47L92_AIF3TX8MIX_INPUT_1_SOURCE:
1543 case CS47L92_AIF3TX8MIX_INPUT_1_VOLUME:
1544 case CS47L92_AIF3TX8MIX_INPUT_2_SOURCE:
1545 case CS47L92_AIF3TX8MIX_INPUT_2_VOLUME:
1546 case CS47L92_AIF3TX8MIX_INPUT_3_SOURCE:
1547 case CS47L92_AIF3TX8MIX_INPUT_3_VOLUME:
1548 case CS47L92_AIF3TX8MIX_INPUT_4_SOURCE:
1549 case CS47L92_AIF3TX8MIX_INPUT_4_VOLUME:
1550 case MADERA_SLIMTX1MIX_INPUT_1_SOURCE:
1551 case MADERA_SLIMTX1MIX_INPUT_1_VOLUME:
1552 case MADERA_SLIMTX1MIX_INPUT_2_SOURCE:
1553 case MADERA_SLIMTX1MIX_INPUT_2_VOLUME:
1554 case MADERA_SLIMTX1MIX_INPUT_3_SOURCE:
1555 case MADERA_SLIMTX1MIX_INPUT_3_VOLUME:
1556 case MADERA_SLIMTX1MIX_INPUT_4_SOURCE:
1557 case MADERA_SLIMTX1MIX_INPUT_4_VOLUME:
1558 case MADERA_SLIMTX2MIX_INPUT_1_SOURCE:
1559 case MADERA_SLIMTX2MIX_INPUT_1_VOLUME:
1560 case MADERA_SLIMTX2MIX_INPUT_2_SOURCE:
1561 case MADERA_SLIMTX2MIX_INPUT_2_VOLUME:
1562 case MADERA_SLIMTX2MIX_INPUT_3_SOURCE:
1563 case MADERA_SLIMTX2MIX_INPUT_3_VOLUME:
1564 case MADERA_SLIMTX2MIX_INPUT_4_SOURCE:
1565 case MADERA_SLIMTX2MIX_INPUT_4_VOLUME:
1566 case MADERA_SLIMTX3MIX_INPUT_1_SOURCE:
1567 case MADERA_SLIMTX3MIX_INPUT_1_VOLUME:
1568 case MADERA_SLIMTX3MIX_INPUT_2_SOURCE:
1569 case MADERA_SLIMTX3MIX_INPUT_2_VOLUME:
1570 case MADERA_SLIMTX3MIX_INPUT_3_SOURCE:
1571 case MADERA_SLIMTX3MIX_INPUT_3_VOLUME:
1572 case MADERA_SLIMTX3MIX_INPUT_4_SOURCE:
1573 case MADERA_SLIMTX3MIX_INPUT_4_VOLUME:
1574 case MADERA_SLIMTX4MIX_INPUT_1_SOURCE:
1575 case MADERA_SLIMTX4MIX_INPUT_1_VOLUME:
1576 case MADERA_SLIMTX4MIX_INPUT_2_SOURCE:
1577 case MADERA_SLIMTX4MIX_INPUT_2_VOLUME:
1578 case MADERA_SLIMTX4MIX_INPUT_3_SOURCE:
1579 case MADERA_SLIMTX4MIX_INPUT_3_VOLUME:
1580 case MADERA_SLIMTX4MIX_INPUT_4_SOURCE:
1581 case MADERA_SLIMTX4MIX_INPUT_4_VOLUME:
1582 case MADERA_SLIMTX5MIX_INPUT_1_SOURCE:
1583 case MADERA_SLIMTX5MIX_INPUT_1_VOLUME:
1584 case MADERA_SLIMTX5MIX_INPUT_2_SOURCE:
1585 case MADERA_SLIMTX5MIX_INPUT_2_VOLUME:
1586 case MADERA_SLIMTX5MIX_INPUT_3_SOURCE:
1587 case MADERA_SLIMTX5MIX_INPUT_3_VOLUME:
1588 case MADERA_SLIMTX5MIX_INPUT_4_SOURCE:
1589 case MADERA_SLIMTX5MIX_INPUT_4_VOLUME:
1590 case MADERA_SLIMTX6MIX_INPUT_1_SOURCE:
1591 case MADERA_SLIMTX6MIX_INPUT_1_VOLUME:
1592 case MADERA_SLIMTX6MIX_INPUT_2_SOURCE:
1593 case MADERA_SLIMTX6MIX_INPUT_2_VOLUME:
1594 case MADERA_SLIMTX6MIX_INPUT_3_SOURCE:
1595 case MADERA_SLIMTX6MIX_INPUT_3_VOLUME:
1596 case MADERA_SLIMTX6MIX_INPUT_4_SOURCE:
1597 case MADERA_SLIMTX6MIX_INPUT_4_VOLUME:
1598 case MADERA_SLIMTX7MIX_INPUT_1_SOURCE:
1599 case MADERA_SLIMTX7MIX_INPUT_1_VOLUME:
1600 case MADERA_SLIMTX7MIX_INPUT_2_SOURCE:
1601 case MADERA_SLIMTX7MIX_INPUT_2_VOLUME:
1602 case MADERA_SLIMTX7MIX_INPUT_3_SOURCE:
1603 case MADERA_SLIMTX7MIX_INPUT_3_VOLUME:
1604 case MADERA_SLIMTX7MIX_INPUT_4_SOURCE:
1605 case MADERA_SLIMTX7MIX_INPUT_4_VOLUME:
1606 case MADERA_SLIMTX8MIX_INPUT_1_SOURCE:
1607 case MADERA_SLIMTX8MIX_INPUT_1_VOLUME:
1608 case MADERA_SLIMTX8MIX_INPUT_2_SOURCE:
1609 case MADERA_SLIMTX8MIX_INPUT_2_VOLUME:
1610 case MADERA_SLIMTX8MIX_INPUT_3_SOURCE:
1611 case MADERA_SLIMTX8MIX_INPUT_3_VOLUME:
1612 case MADERA_SLIMTX8MIX_INPUT_4_SOURCE:
1613 case MADERA_SLIMTX8MIX_INPUT_4_VOLUME:
1614 case MADERA_SPDIF1TX1MIX_INPUT_1_SOURCE:
1615 case MADERA_SPDIF1TX1MIX_INPUT_1_VOLUME:
1616 case MADERA_SPDIF1TX2MIX_INPUT_1_SOURCE:
1617 case MADERA_SPDIF1TX2MIX_INPUT_1_VOLUME:
1618 case MADERA_EQ1MIX_INPUT_1_SOURCE:
1619 case MADERA_EQ1MIX_INPUT_1_VOLUME:
1620 case MADERA_EQ1MIX_INPUT_2_SOURCE:
1621 case MADERA_EQ1MIX_INPUT_2_VOLUME:
1622 case MADERA_EQ1MIX_INPUT_3_SOURCE:
1623 case MADERA_EQ1MIX_INPUT_3_VOLUME:
1624 case MADERA_EQ1MIX_INPUT_4_SOURCE:
1625 case MADERA_EQ1MIX_INPUT_4_VOLUME:
1626 case MADERA_EQ2MIX_INPUT_1_SOURCE:
1627 case MADERA_EQ2MIX_INPUT_1_VOLUME:
1628 case MADERA_EQ2MIX_INPUT_2_SOURCE:
1629 case MADERA_EQ2MIX_INPUT_2_VOLUME:
1630 case MADERA_EQ2MIX_INPUT_3_SOURCE:
1631 case MADERA_EQ2MIX_INPUT_3_VOLUME:
1632 case MADERA_EQ2MIX_INPUT_4_SOURCE:
1633 case MADERA_EQ2MIX_INPUT_4_VOLUME:
1634 case MADERA_EQ3MIX_INPUT_1_SOURCE:
1635 case MADERA_EQ3MIX_INPUT_1_VOLUME:
1636 case MADERA_EQ3MIX_INPUT_2_SOURCE:
1637 case MADERA_EQ3MIX_INPUT_2_VOLUME:
1638 case MADERA_EQ3MIX_INPUT_3_SOURCE:
1639 case MADERA_EQ3MIX_INPUT_3_VOLUME:
1640 case MADERA_EQ3MIX_INPUT_4_SOURCE:
1641 case MADERA_EQ3MIX_INPUT_4_VOLUME:
1642 case MADERA_EQ4MIX_INPUT_1_SOURCE:
1643 case MADERA_EQ4MIX_INPUT_1_VOLUME:
1644 case MADERA_EQ4MIX_INPUT_2_SOURCE:
1645 case MADERA_EQ4MIX_INPUT_2_VOLUME:
1646 case MADERA_EQ4MIX_INPUT_3_SOURCE:
1647 case MADERA_EQ4MIX_INPUT_3_VOLUME:
1648 case MADERA_EQ4MIX_INPUT_4_SOURCE:
1649 case MADERA_EQ4MIX_INPUT_4_VOLUME:
1650 case MADERA_DRC1LMIX_INPUT_1_SOURCE:
1651 case MADERA_DRC1LMIX_INPUT_1_VOLUME:
1652 case MADERA_DRC1LMIX_INPUT_2_SOURCE:
1653 case MADERA_DRC1LMIX_INPUT_2_VOLUME:
1654 case MADERA_DRC1LMIX_INPUT_3_SOURCE:
1655 case MADERA_DRC1LMIX_INPUT_3_VOLUME:
1656 case MADERA_DRC1LMIX_INPUT_4_SOURCE:
1657 case MADERA_DRC1LMIX_INPUT_4_VOLUME:
1658 case MADERA_DRC1RMIX_INPUT_1_SOURCE:
1659 case MADERA_DRC1RMIX_INPUT_1_VOLUME:
1660 case MADERA_DRC1RMIX_INPUT_2_SOURCE:
1661 case MADERA_DRC1RMIX_INPUT_2_VOLUME:
1662 case MADERA_DRC1RMIX_INPUT_3_SOURCE:
1663 case MADERA_DRC1RMIX_INPUT_3_VOLUME:
1664 case MADERA_DRC1RMIX_INPUT_4_SOURCE:
1665 case MADERA_DRC1RMIX_INPUT_4_VOLUME:
1666 case MADERA_DRC2LMIX_INPUT_1_SOURCE:
1667 case MADERA_DRC2LMIX_INPUT_1_VOLUME:
1668 case MADERA_DRC2LMIX_INPUT_2_SOURCE:
1669 case MADERA_DRC2LMIX_INPUT_2_VOLUME:
1670 case MADERA_DRC2LMIX_INPUT_3_SOURCE:
1671 case MADERA_DRC2LMIX_INPUT_3_VOLUME:
1672 case MADERA_DRC2LMIX_INPUT_4_SOURCE:
1673 case MADERA_DRC2LMIX_INPUT_4_VOLUME:
1674 case MADERA_DRC2RMIX_INPUT_1_SOURCE:
1675 case MADERA_DRC2RMIX_INPUT_1_VOLUME:
1676 case MADERA_DRC2RMIX_INPUT_2_SOURCE:
1677 case MADERA_DRC2RMIX_INPUT_2_VOLUME:
1678 case MADERA_DRC2RMIX_INPUT_3_SOURCE:
1679 case MADERA_DRC2RMIX_INPUT_3_VOLUME:
1680 case MADERA_DRC2RMIX_INPUT_4_SOURCE:
1681 case MADERA_DRC2RMIX_INPUT_4_VOLUME:
1682 case MADERA_HPLP1MIX_INPUT_1_SOURCE:
1683 case MADERA_HPLP1MIX_INPUT_1_VOLUME:
1684 case MADERA_HPLP1MIX_INPUT_2_SOURCE:
1685 case MADERA_HPLP1MIX_INPUT_2_VOLUME:
1686 case MADERA_HPLP1MIX_INPUT_3_SOURCE:
1687 case MADERA_HPLP1MIX_INPUT_3_VOLUME:
1688 case MADERA_HPLP1MIX_INPUT_4_SOURCE:
1689 case MADERA_HPLP1MIX_INPUT_4_VOLUME:
1690 case MADERA_HPLP2MIX_INPUT_1_SOURCE:
1691 case MADERA_HPLP2MIX_INPUT_1_VOLUME:
1692 case MADERA_HPLP2MIX_INPUT_2_SOURCE:
1693 case MADERA_HPLP2MIX_INPUT_2_VOLUME:
1694 case MADERA_HPLP2MIX_INPUT_3_SOURCE:
1695 case MADERA_HPLP2MIX_INPUT_3_VOLUME:
1696 case MADERA_HPLP2MIX_INPUT_4_SOURCE:
1697 case MADERA_HPLP2MIX_INPUT_4_VOLUME:
1698 case MADERA_HPLP3MIX_INPUT_1_SOURCE:
1699 case MADERA_HPLP3MIX_INPUT_1_VOLUME:
1700 case MADERA_HPLP3MIX_INPUT_2_SOURCE:
1701 case MADERA_HPLP3MIX_INPUT_2_VOLUME:
1702 case MADERA_HPLP3MIX_INPUT_3_SOURCE:
1703 case MADERA_HPLP3MIX_INPUT_3_VOLUME:
1704 case MADERA_HPLP3MIX_INPUT_4_SOURCE:
1705 case MADERA_HPLP3MIX_INPUT_4_VOLUME:
1706 case MADERA_HPLP4MIX_INPUT_1_SOURCE:
1707 case MADERA_HPLP4MIX_INPUT_1_VOLUME:
1708 case MADERA_HPLP4MIX_INPUT_2_SOURCE:
1709 case MADERA_HPLP4MIX_INPUT_2_VOLUME:
1710 case MADERA_HPLP4MIX_INPUT_3_SOURCE:
1711 case MADERA_HPLP4MIX_INPUT_3_VOLUME:
1712 case MADERA_HPLP4MIX_INPUT_4_SOURCE:
1713 case MADERA_HPLP4MIX_INPUT_4_VOLUME:
1714 case MADERA_DSP1LMIX_INPUT_1_SOURCE:
1715 case MADERA_DSP1LMIX_INPUT_1_VOLUME:
1716 case MADERA_DSP1LMIX_INPUT_2_SOURCE:
1717 case MADERA_DSP1LMIX_INPUT_2_VOLUME:
1718 case MADERA_DSP1LMIX_INPUT_3_SOURCE:
1719 case MADERA_DSP1LMIX_INPUT_3_VOLUME:
1720 case MADERA_DSP1LMIX_INPUT_4_SOURCE:
1721 case MADERA_DSP1LMIX_INPUT_4_VOLUME:
1722 case MADERA_DSP1RMIX_INPUT_1_SOURCE:
1723 case MADERA_DSP1RMIX_INPUT_1_VOLUME:
1724 case MADERA_DSP1RMIX_INPUT_2_SOURCE:
1725 case MADERA_DSP1RMIX_INPUT_2_VOLUME:
1726 case MADERA_DSP1RMIX_INPUT_3_SOURCE:
1727 case MADERA_DSP1RMIX_INPUT_3_VOLUME:
1728 case MADERA_DSP1RMIX_INPUT_4_SOURCE:
1729 case MADERA_DSP1RMIX_INPUT_4_VOLUME:
1730 case MADERA_DSP1AUX1MIX_INPUT_1_SOURCE:
1731 case MADERA_DSP1AUX2MIX_INPUT_1_SOURCE:
1732 case MADERA_DSP1AUX3MIX_INPUT_1_SOURCE:
1733 case MADERA_DSP1AUX4MIX_INPUT_1_SOURCE:
1734 case MADERA_DSP1AUX5MIX_INPUT_1_SOURCE:
1735 case MADERA_DSP1AUX6MIX_INPUT_1_SOURCE:
1736 case MADERA_ASRC1_1LMIX_INPUT_1_SOURCE:
1737 case MADERA_ASRC1_1RMIX_INPUT_1_SOURCE:
1738 case MADERA_ASRC1_2LMIX_INPUT_1_SOURCE:
1739 case MADERA_ASRC1_2RMIX_INPUT_1_SOURCE:
1740 case MADERA_ISRC1DEC1MIX_INPUT_1_SOURCE:
1741 case MADERA_ISRC1DEC2MIX_INPUT_1_SOURCE:
1742 case MADERA_ISRC1INT1MIX_INPUT_1_SOURCE:
1743 case MADERA_ISRC1INT2MIX_INPUT_1_SOURCE:
1744 case MADERA_ISRC2DEC1MIX_INPUT_1_SOURCE:
1745 case MADERA_ISRC2DEC2MIX_INPUT_1_SOURCE:
1746 case MADERA_ISRC2INT1MIX_INPUT_1_SOURCE:
1747 case MADERA_ISRC2INT2MIX_INPUT_1_SOURCE:
1748 case MADERA_DFC1MIX_INPUT_1_SOURCE:
1749 case MADERA_DFC2MIX_INPUT_1_SOURCE:
1750 case MADERA_DFC3MIX_INPUT_1_SOURCE:
1751 case MADERA_DFC4MIX_INPUT_1_SOURCE:
1752 case MADERA_DFC5MIX_INPUT_1_SOURCE:
1753 case MADERA_DFC6MIX_INPUT_1_SOURCE:
1754 case MADERA_DFC7MIX_INPUT_1_SOURCE:
1755 case MADERA_DFC8MIX_INPUT_1_SOURCE:
1756 case MADERA_FX_CTRL1 ... MADERA_FX_CTRL2:
1757 case MADERA_EQ1_1 ... MADERA_EQ1_21:
1758 case MADERA_EQ2_1 ... MADERA_EQ2_21:
1759 case MADERA_EQ3_1 ... MADERA_EQ3_21:
1760 case MADERA_EQ4_1 ... MADERA_EQ4_21:
1761 case MADERA_DRC1_CTRL1 ... MADERA_DRC1_CTRL5:
1762 case MADERA_DRC2_CTRL1 ... MADERA_DRC2_CTRL5:
1763 case MADERA_HPLPF1_1 ... MADERA_HPLPF1_2:
1764 case MADERA_HPLPF2_1 ... MADERA_HPLPF2_2:
1765 case MADERA_HPLPF3_1 ... MADERA_HPLPF3_2:
1766 case MADERA_HPLPF4_1 ... MADERA_HPLPF4_2:
1767 case MADERA_ASRC1_ENABLE:
1768 case MADERA_ASRC1_STATUS:
1769 case MADERA_ASRC1_RATE1 ... MADERA_ASRC1_RATE2:
1770 case MADERA_ISRC_1_CTRL_1 ... MADERA_ISRC_1_CTRL_3:
1771 case MADERA_ISRC_2_CTRL_1 ... MADERA_ISRC_2_CTRL_3:
1772 case MADERA_AUXPDM1_CTRL_0 ... MADERA_AUXPDM1_CTRL_1:
1773 case MADERA_DFC1_CTRL:
1774 case MADERA_DFC1_RX:
1775 case MADERA_DFC1_TX:
1776 case MADERA_DFC2_CTRL:
1777 case MADERA_DFC2_RX:
1778 case MADERA_DFC2_TX:
1779 case MADERA_DFC3_CTRL:
1780 case MADERA_DFC3_RX:
1781 case MADERA_DFC3_TX:
1782 case MADERA_DFC4_CTRL:
1783 case MADERA_DFC4_RX:
1784 case MADERA_DFC4_TX:
1785 case MADERA_DFC5_CTRL:
1786 case MADERA_DFC5_RX:
1787 case MADERA_DFC5_TX:
1788 case MADERA_DFC6_CTRL:
1789 case MADERA_DFC6_RX:
1790 case MADERA_DFC6_TX:
1791 case MADERA_DFC7_CTRL:
1792 case MADERA_DFC7_RX:
1793 case MADERA_DFC7_TX:
1794 case MADERA_DFC8_CTRL:
1795 case MADERA_DFC8_RX:
1796 case MADERA_DFC8_TX:
1797 case MADERA_DFC_STATUS:
1798 case MADERA_GPIO1_CTRL_1 ... MADERA_GPIO16_CTRL_2:
1799 case MADERA_IRQ1_STATUS_1 ... MADERA_IRQ1_STATUS_33:
1800 case MADERA_IRQ1_MASK_1 ... MADERA_IRQ1_MASK_33:
1801 case MADERA_IRQ1_RAW_STATUS_1 ... MADERA_IRQ1_RAW_STATUS_33:
1802 case MADERA_INTERRUPT_DEBOUNCE_7:
1803 case MADERA_IRQ1_CTRL:
1804 return true;
1805 default:
1806 return false;
1807 }
1808 }
1809
1810 static bool cs47l92_16bit_volatile_register(struct device *dev,
1811 unsigned int reg)
1812 {
1813 switch (reg) {
1814 case MADERA_SOFTWARE_RESET:
1815 case MADERA_HARDWARE_REVISION:
1816 case MADERA_WRITE_SEQUENCER_CTRL_0 ... MADERA_WRITE_SEQUENCER_CTRL_2:
1817 case MADERA_HAPTICS_STATUS:
1818 case MADERA_SAMPLE_RATE_1_STATUS:
1819 case MADERA_SAMPLE_RATE_2_STATUS:
1820 case MADERA_SAMPLE_RATE_3_STATUS:
1821 case MADERA_ASYNC_SAMPLE_RATE_1_STATUS:
1822 case MADERA_ASYNC_SAMPLE_RATE_2_STATUS:
1823 case MADERA_HP_CTRL_1L:
1824 case MADERA_HP_CTRL_1R:
1825 case MADERA_HP_CTRL_2L:
1826 case MADERA_HP_CTRL_2R:
1827 case MADERA_HP_CTRL_3L:
1828 case MADERA_HP_CTRL_3R:
1829 case MADERA_MIC_DETECT_1_CONTROL_3:
1830 case MADERA_MIC_DETECT_1_CONTROL_4:
1831 case MADERA_MIC_DETECT_2_CONTROL_3:
1832 case MADERA_MIC_DETECT_2_CONTROL_4:
1833 case MADERA_HEADPHONE_DETECT_2:
1834 case MADERA_HEADPHONE_DETECT_3:
1835 case MADERA_HEADPHONE_DETECT_5:
1836 case MADERA_INPUT_ENABLES_STATUS:
1837 case MADERA_OUTPUT_STATUS_1:
1838 case MADERA_RAW_OUTPUT_STATUS_1:
1839 case MADERA_SPD1_TX_CHANNEL_STATUS_1:
1840 case MADERA_SPD1_TX_CHANNEL_STATUS_2:
1841 case MADERA_SPD1_TX_CHANNEL_STATUS_3:
1842 case MADERA_SLIMBUS_RX_PORT_STATUS:
1843 case MADERA_SLIMBUS_TX_PORT_STATUS:
1844 case MADERA_FX_CTRL2:
1845 case MADERA_ASRC1_STATUS:
1846 case MADERA_DFC_STATUS:
1847 case MADERA_IRQ1_STATUS_1 ... MADERA_IRQ1_STATUS_33:
1848 case MADERA_IRQ1_RAW_STATUS_1 ... MADERA_IRQ1_RAW_STATUS_33:
1849 return true;
1850 default:
1851 return false;
1852 }
1853 }
1854
1855 static bool cs47l92_32bit_readable_register(struct device *dev,
1856 unsigned int reg)
1857 {
1858 switch (reg) {
1859 case MADERA_WSEQ_SEQUENCE_1 ... MADERA_WSEQ_SEQUENCE_508:
1860 case MADERA_OTP_HPDET_CAL_1 ... MADERA_OTP_HPDET_CAL_2:
1861 case MADERA_DSP1_CONFIG_1 ... MADERA_DSP1_PMEM_ERR_ADDR___XMEM_ERR_ADDR:
1862 return true;
1863 default:
1864 return cs47l92_is_adsp_memory(reg);
1865 }
1866 }
1867
1868 static bool cs47l92_32bit_volatile_register(struct device *dev,
1869 unsigned int reg)
1870 {
1871 switch (reg) {
1872 case MADERA_WSEQ_SEQUENCE_1 ... MADERA_WSEQ_SEQUENCE_508:
1873 case MADERA_OTP_HPDET_CAL_1 ... MADERA_OTP_HPDET_CAL_2:
1874 case MADERA_DSP1_CONFIG_1 ... MADERA_DSP1_PMEM_ERR_ADDR___XMEM_ERR_ADDR:
1875 return true;
1876 default:
1877 return cs47l92_is_adsp_memory(reg);
1878 }
1879 }
1880
1881 const struct regmap_config cs47l92_16bit_spi_regmap = {
1882 .name = "cs47l92_16bit",
1883 .reg_bits = 32,
1884 .pad_bits = 16,
1885 .val_bits = 16,
1886 .reg_format_endian = REGMAP_ENDIAN_BIG,
1887 .val_format_endian = REGMAP_ENDIAN_BIG,
1888
1889 .max_register = MADERA_INTERRUPT_RAW_STATUS_1,
1890 .readable_reg = &cs47l92_16bit_readable_register,
1891 .volatile_reg = &cs47l92_16bit_volatile_register,
1892
1893 .cache_type = REGCACHE_RBTREE,
1894 .reg_defaults = cs47l92_reg_default,
1895 .num_reg_defaults = ARRAY_SIZE(cs47l92_reg_default),
1896 };
1897 EXPORT_SYMBOL_GPL(cs47l92_16bit_spi_regmap);
1898
1899 const struct regmap_config cs47l92_16bit_i2c_regmap = {
1900 .name = "cs47l92_16bit",
1901 .reg_bits = 32,
1902 .val_bits = 16,
1903 .reg_format_endian = REGMAP_ENDIAN_BIG,
1904 .val_format_endian = REGMAP_ENDIAN_BIG,
1905
1906 .max_register = MADERA_INTERRUPT_RAW_STATUS_1,
1907 .readable_reg = &cs47l92_16bit_readable_register,
1908 .volatile_reg = &cs47l92_16bit_volatile_register,
1909
1910 .cache_type = REGCACHE_RBTREE,
1911 .reg_defaults = cs47l92_reg_default,
1912 .num_reg_defaults = ARRAY_SIZE(cs47l92_reg_default),
1913 };
1914 EXPORT_SYMBOL_GPL(cs47l92_16bit_i2c_regmap);
1915
1916 const struct regmap_config cs47l92_32bit_spi_regmap = {
1917 .name = "cs47l92_32bit",
1918 .reg_bits = 32,
1919 .reg_stride = 2,
1920 .pad_bits = 16,
1921 .val_bits = 32,
1922 .reg_format_endian = REGMAP_ENDIAN_BIG,
1923 .val_format_endian = REGMAP_ENDIAN_BIG,
1924
1925 .max_register = MADERA_DSP1_PMEM_ERR_ADDR___XMEM_ERR_ADDR,
1926 .readable_reg = &cs47l92_32bit_readable_register,
1927 .volatile_reg = &cs47l92_32bit_volatile_register,
1928
1929 .cache_type = REGCACHE_RBTREE,
1930 };
1931 EXPORT_SYMBOL_GPL(cs47l92_32bit_spi_regmap);
1932
1933 const struct regmap_config cs47l92_32bit_i2c_regmap = {
1934 .name = "cs47l92_32bit",
1935 .reg_bits = 32,
1936 .reg_stride = 2,
1937 .val_bits = 32,
1938 .reg_format_endian = REGMAP_ENDIAN_BIG,
1939 .val_format_endian = REGMAP_ENDIAN_BIG,
1940
1941 .max_register = MADERA_DSP1_PMEM_ERR_ADDR___XMEM_ERR_ADDR,
1942 .readable_reg = &cs47l92_32bit_readable_register,
1943 .volatile_reg = &cs47l92_32bit_volatile_register,
1944
1945 .cache_type = REGCACHE_RBTREE,
1946 };
1947 EXPORT_SYMBOL_GPL(cs47l92_32bit_i2c_regmap);