#include <linux/module.h>
#include <linux/mfd/arizona/core.h>
#include <linux/mfd/arizona/registers.h>
#include <linux/device.h>
#include "arizona.h"
#define CS47L24_NUM_ISR 5
static const struct reg_sequence cs47l24_reva_patch[] = {
{ 0x80, 0x3 },
{ 0x27C, 0x0010 },
{ 0x221, 0x0070 },
{ 0x80, 0x0 },
};
int cs47l24_patch(struct arizona *arizona)
{
return regmap_register_patch(arizona->regmap,
cs47l24_reva_patch,
ARRAY_SIZE(cs47l24_reva_patch));
}
EXPORT_SYMBOL_GPL(cs47l24_patch);
static const struct regmap_irq cs47l24_irqs[ARIZONA_NUM_IRQ] = {
[ARIZONA_IRQ_GP2] = { .reg_offset = 0, .mask = ARIZONA_GP2_EINT1 },
[ARIZONA_IRQ_GP1] = { .reg_offset = 0, .mask = ARIZONA_GP1_EINT1 },
[ARIZONA_IRQ_DSP3_RAM_RDY] = {
.reg_offset = 1, .mask = ARIZONA_DSP3_RAM_RDY_EINT1
},
[ARIZONA_IRQ_DSP2_RAM_RDY] = {
.reg_offset = 1, .mask = ARIZONA_DSP2_RAM_RDY_EINT1
},
[ARIZONA_IRQ_DSP_IRQ8] = {
.reg_offset = 1, .mask = ARIZONA_DSP_IRQ8_EINT1
},
[ARIZONA_IRQ_DSP_IRQ7] = {
.reg_offset = 1, .mask = ARIZONA_DSP_IRQ7_EINT1
},
[ARIZONA_IRQ_DSP_IRQ6] = {
.reg_offset = 1, .mask = ARIZONA_DSP_IRQ6_EINT1
},
[ARIZONA_IRQ_DSP_IRQ5] = {
.reg_offset = 1, .mask = ARIZONA_DSP_IRQ5_EINT1
},
[ARIZONA_IRQ_DSP_IRQ4] = {
.reg_offset = 1, .mask = ARIZONA_DSP_IRQ4_EINT1
},
[ARIZONA_IRQ_DSP_IRQ3] = {
.reg_offset = 1, .mask = ARIZONA_DSP_IRQ3_EINT1
},
[ARIZONA_IRQ_DSP_IRQ2] = {
.reg_offset = 1, .mask = ARIZONA_DSP_IRQ2_EINT1
},
[ARIZONA_IRQ_DSP_IRQ1] = {
.reg_offset = 1, .mask = ARIZONA_DSP_IRQ1_EINT1
},
[ARIZONA_IRQ_SPK_OVERHEAT_WARN] = {
.reg_offset = 2, .mask = ARIZONA_SPK_OVERHEAT_WARN_EINT1
},
[ARIZONA_IRQ_SPK_OVERHEAT] = {
.reg_offset = 2, .mask = ARIZONA_SPK_OVERHEAT_EINT1
},
[ARIZONA_IRQ_WSEQ_DONE] = {
.reg_offset = 2, .mask = ARIZONA_WSEQ_DONE_EINT1
},
[ARIZONA_IRQ_DRC2_SIG_DET] = {
.reg_offset = 2, .mask = ARIZONA_DRC2_SIG_DET_EINT1
},
[ARIZONA_IRQ_DRC1_SIG_DET] = {
.reg_offset = 2, .mask = ARIZONA_DRC1_SIG_DET_EINT1
},
[ARIZONA_IRQ_ASRC2_LOCK] = {
.reg_offset = 2, .mask = ARIZONA_ASRC2_LOCK_EINT1
},
[ARIZONA_IRQ_ASRC1_LOCK] = {
.reg_offset = 2, .mask = ARIZONA_ASRC1_LOCK_EINT1
},
[ARIZONA_IRQ_UNDERCLOCKED] = {
.reg_offset = 2, .mask = ARIZONA_UNDERCLOCKED_EINT1
},
[ARIZONA_IRQ_OVERCLOCKED] = {
.reg_offset = 2, .mask = ARIZONA_OVERCLOCKED_EINT1
},
[ARIZONA_IRQ_FLL2_LOCK] = {
.reg_offset = 2, .mask = ARIZONA_FLL2_LOCK_EINT1
},
[ARIZONA_IRQ_FLL1_LOCK] = {
.reg_offset = 2, .mask = ARIZONA_FLL1_LOCK_EINT1
},
[ARIZONA_IRQ_CLKGEN_ERR] = {
.reg_offset = 2, .mask = ARIZONA_CLKGEN_ERR_EINT1
},
[ARIZONA_IRQ_CLKGEN_ERR_ASYNC] = {
.reg_offset = 2, .mask = ARIZONA_CLKGEN_ERR_ASYNC_EINT1
},
[ARIZONA_IRQ_CTRLIF_ERR] = {
.reg_offset = 3, .mask = ARIZONA_V2_CTRLIF_ERR_EINT1
},
[ARIZONA_IRQ_MIXER_DROPPED_SAMPLES] = {
.reg_offset = 3, .mask = ARIZONA_V2_MIXER_DROPPED_SAMPLE_EINT1
},
[ARIZONA_IRQ_ASYNC_CLK_ENA_LOW] = {
.reg_offset = 3, .mask = ARIZONA_V2_ASYNC_CLK_ENA_LOW_EINT1
},
[ARIZONA_IRQ_SYSCLK_ENA_LOW] = {
.reg_offset = 3, .mask = ARIZONA_V2_SYSCLK_ENA_LOW_EINT1
},
[ARIZONA_IRQ_ISRC1_CFG_ERR] = {
.reg_offset = 3, .mask = ARIZONA_V2_ISRC1_CFG_ERR_EINT1
},
[ARIZONA_IRQ_ISRC2_CFG_ERR] = {
.reg_offset = 3, .mask = ARIZONA_V2_ISRC2_CFG_ERR_EINT1
},
[ARIZONA_IRQ_ISRC3_CFG_ERR] = {
.reg_offset = 3, .mask = ARIZONA_V2_ISRC3_CFG_ERR_EINT1
},
[ARIZONA_IRQ_HP1R_DONE] = {
.reg_offset = 3, .mask = ARIZONA_HP1R_DONE_EINT1
},
[ARIZONA_IRQ_HP1L_DONE] = {
.reg_offset = 3, .mask = ARIZONA_HP1L_DONE_EINT1
},
[ARIZONA_IRQ_BOOT_DONE] = {
.reg_offset = 4, .mask = ARIZONA_BOOT_DONE_EINT1
},
[ARIZONA_IRQ_ASRC_CFG_ERR] = {
.reg_offset = 4, .mask = ARIZONA_V2_ASRC_CFG_ERR_EINT1
},
[ARIZONA_IRQ_FLL2_CLOCK_OK] = {
.reg_offset = 4, .mask = ARIZONA_FLL2_CLOCK_OK_EINT1
},
[ARIZONA_IRQ_FLL1_CLOCK_OK] = {
.reg_offset = 4, .mask = ARIZONA_FLL1_CLOCK_OK_EINT1
},
[ARIZONA_IRQ_DSP_SHARED_WR_COLL] = {
.reg_offset = 5, .mask = ARIZONA_DSP_SHARED_WR_COLL_EINT1
},
[ARIZONA_IRQ_SPK_SHUTDOWN] = {
.reg_offset = 5, .mask = ARIZONA_SPK_SHUTDOWN_EINT1
},
[ARIZONA_IRQ_SPK1R_SHORT] = {
.reg_offset = 5, .mask = ARIZONA_SPK1R_SHORT_EINT1
},
[ARIZONA_IRQ_SPK1L_SHORT] = {
.reg_offset = 5, .mask = ARIZONA_SPK1L_SHORT_EINT1
},
[ARIZONA_IRQ_HP1R_SC_POS] = {
.reg_offset = 5, .mask = ARIZONA_HP1R_SC_POS_EINT1
},
[ARIZONA_IRQ_HP1L_SC_POS] = {
.reg_offset = 5, .mask = ARIZONA_HP1L_SC_POS_EINT1
},
};
const struct regmap_irq_chip cs47l24_irq = {
.name = "cs47l24 IRQ",
.status_base = ARIZONA_INTERRUPT_STATUS_1,
.mask_base = ARIZONA_INTERRUPT_STATUS_1_MASK,
.ack_base = ARIZONA_INTERRUPT_STATUS_1,
.num_regs = 6,
.irqs = cs47l24_irqs,
.num_irqs = ARRAY_SIZE(cs47l24_irqs),
};
EXPORT_SYMBOL_GPL(cs47l24_irq);
static const struct reg_default cs47l24_reg_default[] = {
{ 0x00000008, 0x0019 },
{ 0x00000020, 0x0000 },
{ 0x00000021, 0x1000 },
{ 0x00000022, 0x0000 },
{ 0x00000023, 0x1000 },
{ 0x00000024, 0x0000 },
{ 0x00000030, 0x0000 },
{ 0x00000031, 0x0100 },
{ 0x00000032, 0x0100 },
{ 0x00000041, 0x0000 },
{ 0x00000061, 0x01FF },
{ 0x00000062, 0x01FF },
{ 0x00000063, 0x01FF },
{ 0x00000064, 0x01FF },
{ 0x00000070, 0x0000 },
{ 0x00000090, 0x0000 },
{ 0x00000091, 0x7FFF },
{ 0x00000092, 0x0000 },
{ 0x00000093, 0x0000 },
{ 0x00000094, 0x0000 },
{ 0x00000095, 0x0000 },
{ 0x00000096, 0x0000 },
{ 0x00000097, 0x0000 },
{ 0x00000100, 0x0002 },
{ 0x00000101, 0x0504 },
{ 0x00000102, 0x0011 },
{ 0x00000103, 0x0011 },
{ 0x00000104, 0x0011 },
{ 0x00000112, 0x0305 },
{ 0x00000113, 0x0011 },
{ 0x00000114, 0x0011 },
{ 0x00000149, 0x0000 },
{ 0x0000014A, 0x0000 },
{ 0x00000152, 0x0000 },
{ 0x00000153, 0x0000 },
{ 0x00000154, 0x0000 },
{ 0x00000155, 0x0000 },
{ 0x00000156, 0x0000 },
{ 0x00000171, 0x0002 },
{ 0x00000172, 0x0008 },
{ 0x00000173, 0x0018 },
{ 0x00000174, 0x007D },
{ 0x00000175, 0x0006 },
{ 0x00000176, 0x0000 },
{ 0x00000179, 0x0000 },
{ 0x00000181, 0x0000 },
{ 0x00000182, 0x0000 },
{ 0x00000183, 0x0000 },
{ 0x00000184, 0x0000 },
{ 0x00000185, 0x0000 },
{ 0x00000186, 0x0000 },
{ 0x00000187, 0x0001 },
{ 0x00000189, 0x0000 },
{ 0x0000018A, 0x000C },
{ 0x00000191, 0x0002 },
{ 0x00000192, 0x0008 },
{ 0x00000193, 0x0018 },
{ 0x00000194, 0x007D },
{ 0x00000195, 0x000C },
{ 0x00000196, 0x0000 },
{ 0x00000199, 0x0000 },
{ 0x000001A1, 0x0000 },
{ 0x000001A2, 0x0000 },
{ 0x000001A3, 0x0000 },
{ 0x000001A4, 0x0000 },
{ 0x000001A5, 0x0000 },
{ 0x000001A6, 0x0000 },
{ 0x000001A7, 0x0001 },
{ 0x000001A9, 0x0000 },
{ 0x000001AA, 0x000C },
{ 0x00000218, 0x00E6 },
{ 0x00000219, 0x00E6 },
{ 0x00000300, 0x0000 },
{ 0x00000308, 0x0000 },
{ 0x00000309, 0x0022 },
{ 0x0000030C, 0x0002 },
{ 0x00000310, 0x2000 },
{ 0x00000311, 0x0180 },
{ 0x00000312, 0x0000 },
{ 0x00000314, 0x0000 },
{ 0x00000315, 0x0180 },
{ 0x00000316, 0x0000 },
{ 0x00000318, 0x2000 },
{ 0x00000319, 0x0180 },
{ 0x0000031A, 0x0000 },
{ 0x0000031C, 0x0000 },
{ 0x0000031D, 0x0180 },
{ 0x0000031E, 0x0000 },
{ 0x00000400, 0x0000 },
{ 0x00000408, 0x0000 },
{ 0x00000409, 0x0022 },
{ 0x00000410, 0x0080 },
{ 0x00000411, 0x0180 },
{ 0x00000412, 0x0081 },
{ 0x00000413, 0x0001 },
{ 0x00000415, 0x0180 },
{ 0x00000416, 0x0081 },
{ 0x00000417, 0x0002 },
{ 0x00000429, 0x0180 },
{ 0x0000042A, 0x0081 },
{ 0x0000042B, 0x0040 },
{ 0x00000450, 0x0000 },
{ 0x00000458, 0x0000 },
{ 0x000004A0, 0x3480 },
{ 0x00000500, 0x000C },
{ 0x00000501, 0x0008 },
{ 0x00000502, 0x0000 },
{ 0x00000503, 0x0000 },
{ 0x00000504, 0x0000 },
{ 0x00000505, 0x0040 },
{ 0x00000506, 0x0040 },
{ 0x00000507, 0x1818 },
{ 0x00000508, 0x1818 },
{ 0x00000509, 0x0000 },
{ 0x0000050A, 0x0001 },
{ 0x0000050B, 0x0002 },
{ 0x0000050C, 0x0003 },
{ 0x0000050D, 0x0004 },
{ 0x0000050E, 0x0005 },
{ 0x0000050F, 0x0006 },
{ 0x00000510, 0x0007 },
{ 0x00000511, 0x0000 },
{ 0x00000512, 0x0001 },
{ 0x00000513, 0x0002 },
{ 0x00000514, 0x0003 },
{ 0x00000515, 0x0004 },
{ 0x00000516, 0x0005 },
{ 0x00000517, 0x0006 },
{ 0x00000518, 0x0007 },
{ 0x00000519, 0x0000 },
{ 0x0000051A, 0x0000 },
{ 0x00000540, 0x000C },
{ 0x00000541, 0x0008 },
{ 0x00000542, 0x0000 },
{ 0x00000543, 0x0000 },
{ 0x00000544, 0x0000 },
{ 0x00000545, 0x0040 },
{ 0x00000546, 0x0040 },
{ 0x00000547, 0x1818 },
{ 0x00000548, 0x1818 },
{ 0x00000549, 0x0000 },
{ 0x0000054A, 0x0001 },
{ 0x0000054B, 0x0002 },
{ 0x0000054C, 0x0003 },
{ 0x0000054D, 0x0004 },
{ 0x0000054E, 0x0005 },
{ 0x00000551, 0x0000 },
{ 0x00000552, 0x0001 },
{ 0x00000553, 0x0002 },
{ 0x00000554, 0x0003 },
{ 0x00000555, 0x0004 },
{ 0x00000556, 0x0005 },
{ 0x00000559, 0x0000 },
{ 0x0000055A, 0x0000 },
{ 0x00000580, 0x000C },
{ 0x00000581, 0x0008 },
{ 0x00000582, 0x0000 },
{ 0x00000583, 0x0000 },
{ 0x00000584, 0x0000 },
{ 0x00000585, 0x0040 },
{ 0x00000586, 0x0040 },
{ 0x00000587, 0x1818 },
{ 0x00000588, 0x1818 },
{ 0x00000589, 0x0000 },
{ 0x0000058A, 0x0001 },
{ 0x00000591, 0x0000 },
{ 0x00000592, 0x0001 },
{ 0x00000599, 0x0000 },
{ 0x0000059A, 0x0000 },
{ 0x00000640, 0x0000 },
{ 0x00000641, 0x0080 },
{ 0x00000642, 0x0000 },
{ 0x00000643, 0x0080 },
{ 0x00000644, 0x0000 },
{ 0x00000645, 0x0080 },
{ 0x00000646, 0x0000 },
{ 0x00000647, 0x0080 },
{ 0x00000648, 0x0000 },
{ 0x00000649, 0x0080 },
{ 0x0000064A, 0x0000 },
{ 0x0000064B, 0x0080 },
{ 0x0000064C, 0x0000 },
{ 0x0000064D, 0x0080 },
{ 0x0000064E, 0x0000 },
{ 0x0000064F, 0x0080 },
{ 0x00000680, 0x0000 },
{ 0x00000681, 0x0080 },
{ 0x00000682, 0x0000 },
{ 0x00000683, 0x0080 },
{ 0x00000684, 0x0000 },
{ 0x00000685, 0x0080 },
{ 0x00000686, 0x0000 },
{ 0x00000687, 0x0080 },
{ 0x00000688, 0x0000 },
{ 0x00000689, 0x0080 },
{ 0x0000068A, 0x0000 },
{ 0x0000068B, 0x0080 },
{ 0x0000068C, 0x0000 },
{ 0x0000068D, 0x0080 },
{ 0x0000068E, 0x0000 },
{ 0x0000068F, 0x0080 },
{ 0x000006B0, 0x0000 },
{ 0x000006B1, 0x0080 },
{ 0x000006B2, 0x0000 },
{ 0x000006B3, 0x0080 },
{ 0x000006B4, 0x0000 },
{ 0x000006B5, 0x0080 },
{ 0x000006B6, 0x0000 },
{ 0x000006B7, 0x0080 },
{ 0x00000700, 0x0000 },
{ 0x00000701, 0x0080 },
{ 0x00000702, 0x0000 },
{ 0x00000703, 0x0080 },
{ 0x00000704, 0x0000 },
{ 0x00000705, 0x0080 },
{ 0x00000706, 0x0000 },
{ 0x00000707, 0x0080 },
{ 0x00000708, 0x0000 },
{ 0x00000709, 0x0080 },
{ 0x0000070A, 0x0000 },
{ 0x0000070B, 0x0080 },
{ 0x0000070C, 0x0000 },
{ 0x0000070D, 0x0080 },
{ 0x0000070E, 0x0000 },
{ 0x0000070F, 0x0080 },
{ 0x00000710, 0x0000 },
{ 0x00000711, 0x0080 },
{ 0x00000712, 0x0000 },
{ 0x00000713, 0x0080 },
{ 0x00000714, 0x0000 },
{ 0x00000715, 0x0080 },
{ 0x00000716, 0x0000 },
{ 0x00000717, 0x0080 },
{ 0x00000718, 0x0000 },
{ 0x00000719, 0x0080 },
{ 0x0000071A, 0x0000 },
{ 0x0000071B, 0x0080 },
{ 0x0000071C, 0x0000 },
{ 0x0000071D, 0x0080 },
{ 0x0000071E, 0x0000 },
{ 0x0000071F, 0x0080 },
{ 0x00000720, 0x0000 },
{ 0x00000721, 0x0080 },
{ 0x00000722, 0x0000 },
{ 0x00000723, 0x0080 },
{ 0x00000724, 0x0000 },
{ 0x00000725, 0x0080 },
{ 0x00000726, 0x0000 },
{ 0x00000727, 0x0080 },
{ 0x00000728, 0x0000 },
{ 0x00000729, 0x0080 },
{ 0x0000072A, 0x0000 },
{ 0x0000072B, 0x0080 },
{ 0x0000072C, 0x0000 },
{ 0x0000072D, 0x0080 },
{ 0x0000072E, 0x0000 },
{ 0x0000072F, 0x0080 },
{ 0x00000730, 0x0000 },
{ 0x00000731, 0x0080 },
{ 0x00000732, 0x0000 },
{ 0x00000733, 0x0080 },
{ 0x00000734, 0x0000 },
{ 0x00000735, 0x0080 },
{ 0x00000736, 0x0000 },
{ 0x00000737, 0x0080 },
{ 0x00000738, 0x0000 },
{ 0x00000739, 0x0080 },
{ 0x0000073A, 0x0000 },
{ 0x0000073B, 0x0080 },
{ 0x0000073C, 0x0000 },
{ 0x0000073D, 0x0080 },
{ 0x0000073E, 0x0000 },
{ 0x0000073F, 0x0080 },
{ 0x00000740, 0x0000 },
{ 0x00000741, 0x0080 },
{ 0x00000742, 0x0000 },
{ 0x00000743, 0x0080 },
{ 0x00000744, 0x0000 },
{ 0x00000745, 0x0080 },
{ 0x00000746, 0x0000 },
{ 0x00000747, 0x0080 },
{ 0x00000748, 0x0000 },
{ 0x00000749, 0x0080 },
{ 0x0000074A, 0x0000 },
{ 0x0000074B, 0x0080 },
{ 0x0000074C, 0x0000 },
{ 0x0000074D, 0x0080 },
{ 0x0000074E, 0x0000 },
{ 0x0000074F, 0x0080 },
{ 0x00000750, 0x0000 },
{ 0x00000751, 0x0080 },
{ 0x00000752, 0x0000 },
{ 0x00000753, 0x0080 },
{ 0x00000754, 0x0000 },
{ 0x00000755, 0x0080 },
{ 0x00000756, 0x0000 },
{ 0x00000757, 0x0080 },
{ 0x00000758, 0x0000 },
{ 0x00000759, 0x0080 },
{ 0x0000075A, 0x0000 },
{ 0x0000075B, 0x0080 },
{ 0x0000075C, 0x0000 },
{ 0x0000075D, 0x0080 },
{ 0x0000075E, 0x0000 },
{ 0x0000075F, 0x0080 },
{ 0x00000760, 0x0000 },
{ 0x00000761, 0x0080 },
{ 0x00000762, 0x0000 },
{ 0x00000763, 0x0080 },
{ 0x00000764, 0x0000 },
{ 0x00000765, 0x0080 },
{ 0x00000766, 0x0000 },
{ 0x00000767, 0x0080 },
{ 0x00000768, 0x0000 },
{ 0x00000769, 0x0080 },
{ 0x0000076A, 0x0000 },
{ 0x0000076B, 0x0080 },
{ 0x0000076C, 0x0000 },
{ 0x0000076D, 0x0080 },
{ 0x0000076E, 0x0000 },
{ 0x0000076F, 0x0080 },
{ 0x00000780, 0x0000 },
{ 0x00000781, 0x0080 },
{ 0x00000782, 0x0000 },
{ 0x00000783, 0x0080 },
{ 0x00000784, 0x0000 },
{ 0x00000785, 0x0080 },
{ 0x00000786, 0x0000 },
{ 0x00000787, 0x0080 },
{ 0x00000788, 0x0000 },
{ 0x00000789, 0x0080 },
{ 0x0000078A, 0x0000 },
{ 0x0000078B, 0x0080 },
{ 0x0000078C, 0x0000 },
{ 0x0000078D, 0x0080 },
{ 0x0000078E, 0x0000 },
{ 0x0000078F, 0x0080 },
{ 0x00000880, 0x0000 },
{ 0x00000881, 0x0080 },
{ 0x00000882, 0x0000 },
{ 0x00000883, 0x0080 },
{ 0x00000884, 0x0000 },
{ 0x00000885, 0x0080 },
{ 0x00000886, 0x0000 },
{ 0x00000887, 0x0080 },
{ 0x00000888, 0x0000 },
{ 0x00000889, 0x0080 },
{ 0x0000088A, 0x0000 },
{ 0x0000088B, 0x0080 },
{ 0x0000088C, 0x0000 },
{ 0x0000088D, 0x0080 },
{ 0x0000088E, 0x0000 },
{ 0x0000088F, 0x0080 },
{ 0x000008C0, 0x0000 },
{ 0x000008C1, 0x0080 },
{ 0x000008C2, 0x0000 },
{ 0x000008C3, 0x0080 },
{ 0x000008C4, 0x0000 },
{ 0x000008C5, 0x0080 },
{ 0x000008C6, 0x0000 },
{ 0x000008C7, 0x0080 },
{ 0x000008C8, 0x0000 },
{ 0x000008C9, 0x0080 },
{ 0x000008CA, 0x0000 },
{ 0x000008CB, 0x0080 },
{ 0x000008CC, 0x0000 },
{ 0x000008CD, 0x0080 },
{ 0x000008CE, 0x0000 },
{ 0x000008CF, 0x0080 },
{ 0x000008D0, 0x0000 },
{ 0x000008D1, 0x0080 },
{ 0x000008D2, 0x0000 },
{ 0x000008D3, 0x0080 },
{ 0x000008D4, 0x0000 },
{ 0x000008D5, 0x0080 },
{ 0x000008D6, 0x0000 },
{ 0x000008D7, 0x0080 },
{ 0x000008D8, 0x0000 },
{ 0x000008D9, 0x0080 },
{ 0x000008DA, 0x0000 },
{ 0x000008DB, 0x0080 },
{ 0x000008DC, 0x0000 },
{ 0x000008DD, 0x0080 },
{ 0x000008DE, 0x0000 },
{ 0x000008DF, 0x0080 },
{ 0x00000900, 0x0000 },
{ 0x00000901, 0x0080 },
{ 0x00000902, 0x0000 },
{ 0x00000903, 0x0080 },
{ 0x00000904, 0x0000 },
{ 0x00000905, 0x0080 },
{ 0x00000906, 0x0000 },
{ 0x00000907, 0x0080 },
{ 0x00000908, 0x0000 },
{ 0x00000909, 0x0080 },
{ 0x0000090A, 0x0000 },
{ 0x0000090B, 0x0080 },
{ 0x0000090C, 0x0000 },
{ 0x0000090D, 0x0080 },
{ 0x0000090E, 0x0000 },
{ 0x0000090F, 0x0080 },
{ 0x00000910, 0x0000 },
{ 0x00000911, 0x0080 },
{ 0x00000912, 0x0000 },
{ 0x00000913, 0x0080 },
{ 0x00000914, 0x0000 },
{ 0x00000915, 0x0080 },
{ 0x00000916, 0x0000 },
{ 0x00000917, 0x0080 },
{ 0x00000918, 0x0000 },
{ 0x00000919, 0x0080 },
{ 0x0000091A, 0x0000 },
{ 0x0000091B, 0x0080 },
{ 0x0000091C, 0x0000 },
{ 0x0000091D, 0x0080 },
{ 0x0000091E, 0x0000 },
{ 0x0000091F, 0x0080 },
{ 0x00000980, 0x0000 },
{ 0x00000981, 0x0080 },
{ 0x00000982, 0x0000 },
{ 0x00000983, 0x0080 },
{ 0x00000984, 0x0000 },
{ 0x00000985, 0x0080 },
{ 0x00000986, 0x0000 },
{ 0x00000987, 0x0080 },
{ 0x00000988, 0x0000 },
{ 0x00000989, 0x0080 },
{ 0x0000098A, 0x0000 },
{ 0x0000098B, 0x0080 },
{ 0x0000098C, 0x0000 },
{ 0x0000098D, 0x0080 },
{ 0x0000098E, 0x0000 },
{ 0x0000098F, 0x0080 },
{ 0x00000990, 0x0000 },
{ 0x00000998, 0x0000 },
{ 0x000009A0, 0x0000 },
{ 0x000009A8, 0x0000 },
{ 0x000009B0, 0x0000 },
{ 0x000009B8, 0x0000 },
{ 0x000009C0, 0x0000 },
{ 0x000009C1, 0x0080 },
{ 0x000009C2, 0x0000 },
{ 0x000009C3, 0x0080 },
{ 0x000009C4, 0x0000 },
{ 0x000009C5, 0x0080 },
{ 0x000009C6, 0x0000 },
{ 0x000009C7, 0x0080 },
{ 0x000009C8, 0x0000 },
{ 0x000009C9, 0x0080 },
{ 0x000009CA, 0x0000 },
{ 0x000009CB, 0x0080 },
{ 0x000009CC, 0x0000 },
{ 0x000009CD, 0x0080 },
{ 0x000009CE, 0x0000 },
{ 0x000009CF, 0x0080 },
{ 0x000009D0, 0x0000 },
{ 0x000009D8, 0x0000 },
{ 0x000009E0, 0x0000 },
{ 0x000009E8, 0x0000 },
{ 0x000009F0, 0x0000 },
{ 0x000009F8, 0x0000 },
{ 0x00000A80, 0x0000 },
{ 0x00000A88, 0x0000 },
{ 0x00000A90, 0x0000 },
{ 0x00000A98, 0x0000 },
{ 0x00000B00, 0x0000 },
{ 0x00000B08, 0x0000 },
{ 0x00000B10, 0x0000 },
{ 0x00000B18, 0x0000 },
{ 0x00000B20, 0x0000 },
{ 0x00000B28, 0x0000 },
{ 0x00000B30, 0x0000 },
{ 0x00000B38, 0x0000 },
{ 0x00000B40, 0x0000 },
{ 0x00000B48, 0x0000 },
{ 0x00000B50, 0x0000 },
{ 0x00000B58, 0x0000 },
{ 0x00000B60, 0x0000 },
{ 0x00000B68, 0x0000 },
{ 0x00000B70, 0x0000 },
{ 0x00000B78, 0x0000 },
{ 0x00000B80, 0x0000 },
{ 0x00000B88, 0x0000 },
{ 0x00000B90, 0x0000 },
{ 0x00000B98, 0x0000 },
{ 0x00000BA0, 0x0000 },
{ 0x00000BA8, 0x0000 },
{ 0x00000BB0, 0x0000 },
{ 0x00000BB8, 0x0000 },
{ 0x00000C00, 0xA101 },
{ 0x00000C01, 0xA101 },
{ 0x00000C0F, 0x0400 },
{ 0x00000C10, 0x1000 },
{ 0x00000C20, 0x0002 },
{ 0x00000C21, 0x0000 },
{ 0x00000C22, 0x0000 },
{ 0x00000C23, 0x0000 },
{ 0x00000C24, 0x0000 },
{ 0x00000C25, 0x0000 },
{ 0x00000C30, 0x0404 },
{ 0x00000C32, 0x0404 },
{ 0x00000C33, 0x0404 },
{ 0x00000C34, 0x0404 },
{ 0x00000C35, 0x0404 },
{ 0x00000C36, 0x0400 },
{ 0x00000C37, 0x0404 },
{ 0x00000C39, 0x0400 },
{ 0x00000D08, 0x0007 },
{ 0x00000D09, 0x06FF },
{ 0x00000D0A, 0xCFEF },
{ 0x00000D0B, 0xFFC3 },
{ 0x00000D0C, 0x000B },
{ 0x00000D0D, 0xD005 },
{ 0x00000D0F, 0x0000 },
{ 0x00000D18, 0x0007 },
{ 0x00000D19, 0x06FF },
{ 0x00000D1A, 0xCFEF },
{ 0x00000D1B, 0xFFC3 },
{ 0x00000D1C, 0x000B },
{ 0x00000D1D, 0xD005 },
{ 0x00000D1F, 0x0000 },
{ 0x00000E00, 0x0000 },
{ 0x00000E10, 0x6318 },
{ 0x00000E11, 0x6300 },
{ 0x00000E12, 0x0FC8 },
{ 0x00000E13, 0x03FE },
{ 0x00000E14, 0x00E0 },
{ 0x00000E15, 0x1EC4 },
{ 0x00000E16, 0xF136 },
{ 0x00000E17, 0x0409 },
{ 0x00000E18, 0x04CC },
{ 0x00000E19, 0x1C9B },
{ 0x00000E1A, 0xF337 },
{ 0x00000E1B, 0x040B },
{ 0x00000E1C, 0x0CBB },
{ 0x00000E1D, 0x16F8 },
{ 0x00000E1E, 0xF7D9 },
{ 0x00000E1F, 0x040A },
{ 0x00000E20, 0x1F14 },
{ 0x00000E21, 0x058C },
{ 0x00000E22, 0x0563 },
{ 0x00000E23, 0x4000 },
{ 0x00000E24, 0x0B75 },
{ 0x00000E26, 0x6318 },
{ 0x00000E27, 0x6300 },
{ 0x00000E28, 0x0FC8 },
{ 0x00000E29, 0x03FE },
{ 0x00000E2A, 0x00E0 },
{ 0x00000E2B, 0x1EC4 },
{ 0x00000E2C, 0xF136 },
{ 0x00000E2D, 0x0409 },
{ 0x00000E2E, 0x04CC },
{ 0x00000E2F, 0x1C9B },
{ 0x00000E30, 0xF337 },
{ 0x00000E31, 0x040B },
{ 0x00000E32, 0x0CBB },
{ 0x00000E33, 0x16F8 },
{ 0x00000E34, 0xF7D9 },
{ 0x00000E35, 0x040A },
{ 0x00000E36, 0x1F14 },
{ 0x00000E37, 0x058C },
{ 0x00000E38, 0x0563 },
{ 0x00000E39, 0x4000 },
{ 0x00000E3A, 0x0B75 },
{ 0x00000E80, 0x0018 },
{ 0x00000E81, 0x0933 },
{ 0x00000E82, 0x0018 },
{ 0x00000E83, 0x0000 },
{ 0x00000E84, 0x0000 },
{ 0x00000E89, 0x0018 },
{ 0x00000E8A, 0x0933 },
{ 0x00000E8B, 0x0018 },
{ 0x00000E8C, 0x0000 },
{ 0x00000E8D, 0x0000 },
{ 0x00000EC0, 0x0000 },
{ 0x00000EC1, 0x0000 },
{ 0x00000EC4, 0x0000 },
{ 0x00000EC5, 0x0000 },
{ 0x00000EC8, 0x0000 },
{ 0x00000EC9, 0x0000 },
{ 0x00000ECC, 0x0000 },
{ 0x00000ECD, 0x0000 },
{ 0x00000EE0, 0x0000 },
{ 0x00000EE2, 0x0000 },
{ 0x00000EE3, 0x4000 },
{ 0x00000EF0, 0x0000 },
{ 0x00000EF1, 0x0000 },
{ 0x00000EF2, 0x0000 },
{ 0x00000EF3, 0x0000 },
{ 0x00000EF4, 0x0000 },
{ 0x00000EF5, 0x0000 },
{ 0x00000EF6, 0x0000 },
{ 0x00000EF7, 0x0000 },
{ 0x00000EF8, 0x0000 },
{ 0x00001200, 0x0010 },
{ 0x00001300, 0x0010 },
};
static bool cs47l24_is_adsp_memory(unsigned int reg)
{
switch (reg) {
case 0x200000 ... 0x205fff:
case 0x280000 ... 0x281fff:
case 0x290000 ... 0x2a7fff:
case 0x2a8000 ... 0x2b3fff:
case 0x300000 ... 0x308fff:
case 0x380000 ... 0x381fff:
case 0x390000 ... 0x3a7fff:
case 0x3a8000 ... 0x3b3fff:
return true;
default:
return false;
}
}
static bool cs47l24_readable_register(struct device *dev, unsigned int reg)
{
switch (reg) {
case ARIZONA_SOFTWARE_RESET:
case ARIZONA_DEVICE_REVISION:
case ARIZONA_CTRL_IF_SPI_CFG_1:
case ARIZONA_WRITE_SEQUENCER_CTRL_0:
case ARIZONA_WRITE_SEQUENCER_CTRL_1:
case ARIZONA_WRITE_SEQUENCER_CTRL_2:
case ARIZONA_TONE_GENERATOR_1:
case ARIZONA_TONE_GENERATOR_2:
case ARIZONA_TONE_GENERATOR_3:
case ARIZONA_TONE_GENERATOR_4:
case ARIZONA_TONE_GENERATOR_5:
case ARIZONA_PWM_DRIVE_1:
case ARIZONA_PWM_DRIVE_2:
case ARIZONA_PWM_DRIVE_3:
case ARIZONA_SEQUENCE_CONTROL:
case ARIZONA_SAMPLE_RATE_SEQUENCE_SELECT_1:
case ARIZONA_SAMPLE_RATE_SEQUENCE_SELECT_2:
case ARIZONA_SAMPLE_RATE_SEQUENCE_SELECT_3:
case ARIZONA_SAMPLE_RATE_SEQUENCE_SELECT_4:
case ARIZONA_COMFORT_NOISE_GENERATOR:
case ARIZONA_HAPTICS_CONTROL_1:
case ARIZONA_HAPTICS_CONTROL_2:
case ARIZONA_HAPTICS_PHASE_1_INTENSITY:
case ARIZONA_HAPTICS_PHASE_1_DURATION:
case ARIZONA_HAPTICS_PHASE_2_INTENSITY:
case ARIZONA_HAPTICS_PHASE_2_DURATION:
case ARIZONA_HAPTICS_PHASE_3_INTENSITY:
case ARIZONA_HAPTICS_PHASE_3_DURATION:
case ARIZONA_HAPTICS_STATUS:
case ARIZONA_CLOCK_32K_1:
case ARIZONA_SYSTEM_CLOCK_1:
case ARIZONA_SAMPLE_RATE_1:
case ARIZONA_SAMPLE_RATE_2:
case ARIZONA_SAMPLE_RATE_3:
case ARIZONA_SAMPLE_RATE_1_STATUS:
case ARIZONA_SAMPLE_RATE_2_STATUS:
case ARIZONA_SAMPLE_RATE_3_STATUS:
case ARIZONA_ASYNC_CLOCK_1:
case ARIZONA_ASYNC_SAMPLE_RATE_1:
case ARIZONA_ASYNC_SAMPLE_RATE_1_STATUS:
case ARIZONA_ASYNC_SAMPLE_RATE_2:
case ARIZONA_ASYNC_SAMPLE_RATE_2_STATUS:
case ARIZONA_OUTPUT_SYSTEM_CLOCK:
case ARIZONA_OUTPUT_ASYNC_CLOCK:
case ARIZONA_RATE_ESTIMATOR_1:
case ARIZONA_RATE_ESTIMATOR_2:
case ARIZONA_RATE_ESTIMATOR_3:
case ARIZONA_RATE_ESTIMATOR_4:
case ARIZONA_RATE_ESTIMATOR_5:
case ARIZONA_FLL1_CONTROL_1:
case ARIZONA_FLL1_CONTROL_2:
case ARIZONA_FLL1_CONTROL_3:
case ARIZONA_FLL1_CONTROL_4:
case ARIZONA_FLL1_CONTROL_5:
case ARIZONA_FLL1_CONTROL_6:
case ARIZONA_FLL1_CONTROL_7:
case ARIZONA_FLL1_SYNCHRONISER_1:
case ARIZONA_FLL1_SYNCHRONISER_2:
case ARIZONA_FLL1_SYNCHRONISER_3:
case ARIZONA_FLL1_SYNCHRONISER_4:
case ARIZONA_FLL1_SYNCHRONISER_5:
case ARIZONA_FLL1_SYNCHRONISER_6:
case ARIZONA_FLL1_SYNCHRONISER_7:
case ARIZONA_FLL1_SPREAD_SPECTRUM:
case ARIZONA_FLL1_GPIO_CLOCK:
case ARIZONA_FLL2_CONTROL_1:
case ARIZONA_FLL2_CONTROL_2:
case ARIZONA_FLL2_CONTROL_3:
case ARIZONA_FLL2_CONTROL_4:
case ARIZONA_FLL2_CONTROL_5:
case ARIZONA_FLL2_CONTROL_6:
case ARIZONA_FLL2_CONTROL_7:
case ARIZONA_FLL2_SYNCHRONISER_1:
case ARIZONA_FLL2_SYNCHRONISER_2:
case ARIZONA_FLL2_SYNCHRONISER_3:
case ARIZONA_FLL2_SYNCHRONISER_4:
case ARIZONA_FLL2_SYNCHRONISER_5:
case ARIZONA_FLL2_SYNCHRONISER_6:
case ARIZONA_FLL2_SYNCHRONISER_7:
case ARIZONA_FLL2_SPREAD_SPECTRUM:
case ARIZONA_FLL2_GPIO_CLOCK:
case ARIZONA_MIC_BIAS_CTRL_1:
case ARIZONA_MIC_BIAS_CTRL_2:
case ARIZONA_HP_CTRL_1L:
case ARIZONA_HP_CTRL_1R:
case ARIZONA_INPUT_ENABLES:
case ARIZONA_INPUT_ENABLES_STATUS:
case ARIZONA_INPUT_RATE:
case ARIZONA_INPUT_VOLUME_RAMP:
case ARIZONA_HPF_CONTROL:
case ARIZONA_IN1L_CONTROL:
case ARIZONA_ADC_DIGITAL_VOLUME_1L:
case ARIZONA_DMIC1L_CONTROL:
case ARIZONA_IN1R_CONTROL:
case ARIZONA_ADC_DIGITAL_VOLUME_1R:
case ARIZONA_DMIC1R_CONTROL:
case ARIZONA_IN2L_CONTROL:
case ARIZONA_ADC_DIGITAL_VOLUME_2L:
case ARIZONA_DMIC2L_CONTROL:
case ARIZONA_IN2R_CONTROL:
case ARIZONA_ADC_DIGITAL_VOLUME_2R:
case ARIZONA_DMIC2R_CONTROL:
case ARIZONA_OUTPUT_ENABLES_1:
case ARIZONA_OUTPUT_STATUS_1:
case ARIZONA_RAW_OUTPUT_STATUS_1:
case ARIZONA_OUTPUT_RATE_1:
case ARIZONA_OUTPUT_VOLUME_RAMP:
case ARIZONA_OUTPUT_PATH_CONFIG_1L:
case ARIZONA_DAC_DIGITAL_VOLUME_1L:
case ARIZONA_DAC_VOLUME_LIMIT_1L:
case ARIZONA_NOISE_GATE_SELECT_1L:
case ARIZONA_DAC_DIGITAL_VOLUME_1R:
case ARIZONA_DAC_VOLUME_LIMIT_1R:
case ARIZONA_NOISE_GATE_SELECT_1R:
case ARIZONA_DAC_DIGITAL_VOLUME_4L:
case ARIZONA_OUT_VOLUME_4L:
case ARIZONA_NOISE_GATE_SELECT_4L:
case ARIZONA_DAC_AEC_CONTROL_1:
case ARIZONA_NOISE_GATE_CONTROL:
case ARIZONA_HP1_SHORT_CIRCUIT_CTRL:
case ARIZONA_AIF1_BCLK_CTRL:
case ARIZONA_AIF1_TX_PIN_CTRL:
case ARIZONA_AIF1_RX_PIN_CTRL:
case ARIZONA_AIF1_RATE_CTRL:
case ARIZONA_AIF1_FORMAT:
case ARIZONA_AIF1_TX_BCLK_RATE:
case ARIZONA_AIF1_RX_BCLK_RATE:
case ARIZONA_AIF1_FRAME_CTRL_1:
case ARIZONA_AIF1_FRAME_CTRL_2:
case ARIZONA_AIF1_FRAME_CTRL_3:
case ARIZONA_AIF1_FRAME_CTRL_4:
case ARIZONA_AIF1_FRAME_CTRL_5:
case ARIZONA_AIF1_FRAME_CTRL_6:
case ARIZONA_AIF1_FRAME_CTRL_7:
case ARIZONA_AIF1_FRAME_CTRL_8:
case ARIZONA_AIF1_FRAME_CTRL_9:
case ARIZONA_AIF1_FRAME_CTRL_10:
case ARIZONA_AIF1_FRAME_CTRL_11:
case ARIZONA_AIF1_FRAME_CTRL_12:
case ARIZONA_AIF1_FRAME_CTRL_13:
case ARIZONA_AIF1_FRAME_CTRL_14:
case ARIZONA_AIF1_FRAME_CTRL_15:
case ARIZONA_AIF1_FRAME_CTRL_16:
case ARIZONA_AIF1_FRAME_CTRL_17:
case ARIZONA_AIF1_FRAME_CTRL_18:
case ARIZONA_AIF1_TX_ENABLES:
case ARIZONA_AIF1_RX_ENABLES:
case ARIZONA_AIF2_BCLK_CTRL:
case ARIZONA_AIF2_TX_PIN_CTRL:
case ARIZONA_AIF2_RX_PIN_CTRL:
case ARIZONA_AIF2_RATE_CTRL:
case ARIZONA_AIF2_FORMAT:
case ARIZONA_AIF2_TX_BCLK_RATE:
case ARIZONA_AIF2_RX_BCLK_RATE:
case ARIZONA_AIF2_FRAME_CTRL_1:
case ARIZONA_AIF2_FRAME_CTRL_2:
case ARIZONA_AIF2_FRAME_CTRL_3:
case ARIZONA_AIF2_FRAME_CTRL_4:
case ARIZONA_AIF2_FRAME_CTRL_5:
case ARIZONA_AIF2_FRAME_CTRL_6:
case ARIZONA_AIF2_FRAME_CTRL_7:
case ARIZONA_AIF2_FRAME_CTRL_8:
case ARIZONA_AIF2_FRAME_CTRL_11:
case ARIZONA_AIF2_FRAME_CTRL_12:
case ARIZONA_AIF2_FRAME_CTRL_13:
case ARIZONA_AIF2_FRAME_CTRL_14:
case ARIZONA_AIF2_FRAME_CTRL_15:
case ARIZONA_AIF2_FRAME_CTRL_16:
case ARIZONA_AIF2_TX_ENABLES:
case ARIZONA_AIF2_RX_ENABLES:
case ARIZONA_AIF3_BCLK_CTRL:
case ARIZONA_AIF3_TX_PIN_CTRL:
case ARIZONA_AIF3_RX_PIN_CTRL:
case ARIZONA_AIF3_RATE_CTRL:
case ARIZONA_AIF3_FORMAT:
case ARIZONA_AIF3_TX_BCLK_RATE:
case ARIZONA_AIF3_RX_BCLK_RATE:
case ARIZONA_AIF3_FRAME_CTRL_1:
case ARIZONA_AIF3_FRAME_CTRL_2:
case ARIZONA_AIF3_FRAME_CTRL_3:
case ARIZONA_AIF3_FRAME_CTRL_4:
case ARIZONA_AIF3_FRAME_CTRL_11:
case ARIZONA_AIF3_FRAME_CTRL_12:
case ARIZONA_AIF3_TX_ENABLES:
case ARIZONA_AIF3_RX_ENABLES:
case ARIZONA_PWM1MIX_INPUT_1_SOURCE:
case ARIZONA_PWM1MIX_INPUT_1_VOLUME:
case ARIZONA_PWM1MIX_INPUT_2_SOURCE:
case ARIZONA_PWM1MIX_INPUT_2_VOLUME:
case ARIZONA_PWM1MIX_INPUT_3_SOURCE:
case ARIZONA_PWM1MIX_INPUT_3_VOLUME:
case ARIZONA_PWM1MIX_INPUT_4_SOURCE:
case ARIZONA_PWM1MIX_INPUT_4_VOLUME:
case ARIZONA_PWM2MIX_INPUT_1_SOURCE:
case ARIZONA_PWM2MIX_INPUT_1_VOLUME:
case ARIZONA_PWM2MIX_INPUT_2_SOURCE:
case ARIZONA_PWM2MIX_INPUT_2_VOLUME:
case ARIZONA_PWM2MIX_INPUT_3_SOURCE:
case ARIZONA_PWM2MIX_INPUT_3_VOLUME:
case ARIZONA_PWM2MIX_INPUT_4_SOURCE:
case ARIZONA_PWM2MIX_INPUT_4_VOLUME:
case ARIZONA_OUT1LMIX_INPUT_1_SOURCE:
case ARIZONA_OUT1LMIX_INPUT_1_VOLUME:
case ARIZONA_OUT1LMIX_INPUT_2_SOURCE:
case ARIZONA_OUT1LMIX_INPUT_2_VOLUME:
case ARIZONA_OUT1LMIX_INPUT_3_SOURCE:
case ARIZONA_OUT1LMIX_INPUT_3_VOLUME:
case ARIZONA_OUT1LMIX_INPUT_4_SOURCE:
case ARIZONA_OUT1LMIX_INPUT_4_VOLUME:
case ARIZONA_OUT1RMIX_INPUT_1_SOURCE:
case ARIZONA_OUT1RMIX_INPUT_1_VOLUME:
case ARIZONA_OUT1RMIX_INPUT_2_SOURCE:
case ARIZONA_OUT1RMIX_INPUT_2_VOLUME:
case ARIZONA_OUT1RMIX_INPUT_3_SOURCE:
case ARIZONA_OUT1RMIX_INPUT_3_VOLUME:
case ARIZONA_OUT1RMIX_INPUT_4_SOURCE:
case ARIZONA_OUT1RMIX_INPUT_4_VOLUME:
case ARIZONA_OUT4LMIX_INPUT_1_SOURCE:
case ARIZONA_OUT4LMIX_INPUT_1_VOLUME:
case ARIZONA_OUT4LMIX_INPUT_2_SOURCE:
case ARIZONA_OUT4LMIX_INPUT_2_VOLUME:
case ARIZONA_OUT4LMIX_INPUT_3_SOURCE:
case ARIZONA_OUT4LMIX_INPUT_3_VOLUME:
case ARIZONA_OUT4LMIX_INPUT_4_SOURCE:
case ARIZONA_OUT4LMIX_INPUT_4_VOLUME:
case ARIZONA_AIF1TX1MIX_INPUT_1_SOURCE:
case ARIZONA_AIF1TX1MIX_INPUT_1_VOLUME:
case ARIZONA_AIF1TX1MIX_INPUT_2_SOURCE:
case ARIZONA_AIF1TX1MIX_INPUT_2_VOLUME:
case ARIZONA_AIF1TX1MIX_INPUT_3_SOURCE:
case ARIZONA_AIF1TX1MIX_INPUT_3_VOLUME:
case ARIZONA_AIF1TX1MIX_INPUT_4_SOURCE:
case ARIZONA_AIF1TX1MIX_INPUT_4_VOLUME:
case ARIZONA_AIF1TX2MIX_INPUT_1_SOURCE:
case ARIZONA_AIF1TX2MIX_INPUT_1_VOLUME:
case ARIZONA_AIF1TX2MIX_INPUT_2_SOURCE:
case ARIZONA_AIF1TX2MIX_INPUT_2_VOLUME:
case ARIZONA_AIF1TX2MIX_INPUT_3_SOURCE:
case ARIZONA_AIF1TX2MIX_INPUT_3_VOLUME:
case ARIZONA_AIF1TX2MIX_INPUT_4_SOURCE:
case ARIZONA_AIF1TX2MIX_INPUT_4_VOLUME:
case ARIZONA_AIF1TX3MIX_INPUT_1_SOURCE:
case ARIZONA_AIF1TX3MIX_INPUT_1_VOLUME:
case ARIZONA_AIF1TX3MIX_INPUT_2_SOURCE:
case ARIZONA_AIF1TX3MIX_INPUT_2_VOLUME:
case ARIZONA_AIF1TX3MIX_INPUT_3_SOURCE:
case ARIZONA_AIF1TX3MIX_INPUT_3_VOLUME:
case ARIZONA_AIF1TX3MIX_INPUT_4_SOURCE:
case ARIZONA_AIF1TX3MIX_INPUT_4_VOLUME:
case ARIZONA_AIF1TX4MIX_INPUT_1_SOURCE:
case ARIZONA_AIF1TX4MIX_INPUT_1_VOLUME:
case ARIZONA_AIF1TX4MIX_INPUT_2_SOURCE:
case ARIZONA_AIF1TX4MIX_INPUT_2_VOLUME:
case ARIZONA_AIF1TX4MIX_INPUT_3_SOURCE:
case ARIZONA_AIF1TX4MIX_INPUT_3_VOLUME:
case ARIZONA_AIF1TX4MIX_INPUT_4_SOURCE:
case ARIZONA_AIF1TX4MIX_INPUT_4_VOLUME:
case ARIZONA_AIF1TX5MIX_INPUT_1_SOURCE:
case ARIZONA_AIF1TX5MIX_INPUT_1_VOLUME:
case ARIZONA_AIF1TX5MIX_INPUT_2_SOURCE:
case ARIZONA_AIF1TX5MIX_INPUT_2_VOLUME:
case ARIZONA_AIF1TX5MIX_INPUT_3_SOURCE:
case ARIZONA_AIF1TX5MIX_INPUT_3_VOLUME:
case ARIZONA_AIF1TX5MIX_INPUT_4_SOURCE:
case ARIZONA_AIF1TX5MIX_INPUT_4_VOLUME:
case ARIZONA_AIF1TX6MIX_INPUT_1_SOURCE:
case ARIZONA_AIF1TX6MIX_INPUT_1_VOLUME:
case ARIZONA_AIF1TX6MIX_INPUT_2_SOURCE:
case ARIZONA_AIF1TX6MIX_INPUT_2_VOLUME:
case ARIZONA_AIF1TX6MIX_INPUT_3_SOURCE:
case ARIZONA_AIF1TX6MIX_INPUT_3_VOLUME:
case ARIZONA_AIF1TX6MIX_INPUT_4_SOURCE:
case ARIZONA_AIF1TX6MIX_INPUT_4_VOLUME:
case ARIZONA_AIF1TX7MIX_INPUT_1_SOURCE:
case ARIZONA_AIF1TX7MIX_INPUT_1_VOLUME:
case ARIZONA_AIF1TX7MIX_INPUT_2_SOURCE:
case ARIZONA_AIF1TX7MIX_INPUT_2_VOLUME:
case ARIZONA_AIF1TX7MIX_INPUT_3_SOURCE:
case ARIZONA_AIF1TX7MIX_INPUT_3_VOLUME:
case ARIZONA_AIF1TX7MIX_INPUT_4_SOURCE:
case ARIZONA_AIF1TX7MIX_INPUT_4_VOLUME:
case ARIZONA_AIF1TX8MIX_INPUT_1_SOURCE:
case ARIZONA_AIF1TX8MIX_INPUT_1_VOLUME:
case ARIZONA_AIF1TX8MIX_INPUT_2_SOURCE:
case ARIZONA_AIF1TX8MIX_INPUT_2_VOLUME:
case ARIZONA_AIF1TX8MIX_INPUT_3_SOURCE:
case ARIZONA_AIF1TX8MIX_INPUT_3_VOLUME:
case ARIZONA_AIF1TX8MIX_INPUT_4_SOURCE:
case ARIZONA_AIF1TX8MIX_INPUT_4_VOLUME:
case ARIZONA_AIF2TX1MIX_INPUT_1_SOURCE:
case ARIZONA_AIF2TX1MIX_INPUT_1_VOLUME:
case ARIZONA_AIF2TX1MIX_INPUT_2_SOURCE:
case ARIZONA_AIF2TX1MIX_INPUT_2_VOLUME:
case ARIZONA_AIF2TX1MIX_INPUT_3_SOURCE:
case ARIZONA_AIF2TX1MIX_INPUT_3_VOLUME:
case ARIZONA_AIF2TX1MIX_INPUT_4_SOURCE:
case ARIZONA_AIF2TX1MIX_INPUT_4_VOLUME:
case ARIZONA_AIF2TX2MIX_INPUT_1_SOURCE:
case ARIZONA_AIF2TX2MIX_INPUT_1_VOLUME:
case ARIZONA_AIF2TX2MIX_INPUT_2_SOURCE:
case ARIZONA_AIF2TX2MIX_INPUT_2_VOLUME:
case ARIZONA_AIF2TX2MIX_INPUT_3_SOURCE:
case ARIZONA_AIF2TX2MIX_INPUT_3_VOLUME:
case ARIZONA_AIF2TX2MIX_INPUT_4_SOURCE:
case ARIZONA_AIF2TX2MIX_INPUT_4_VOLUME:
case ARIZONA_AIF2TX3MIX_INPUT_1_SOURCE:
case ARIZONA_AIF2TX3MIX_INPUT_1_VOLUME:
case ARIZONA_AIF2TX3MIX_INPUT_2_SOURCE:
case ARIZONA_AIF2TX3MIX_INPUT_2_VOLUME:
case ARIZONA_AIF2TX3MIX_INPUT_3_SOURCE:
case ARIZONA_AIF2TX3MIX_INPUT_3_VOLUME:
case ARIZONA_AIF2TX3MIX_INPUT_4_SOURCE:
case ARIZONA_AIF2TX3MIX_INPUT_4_VOLUME:
case ARIZONA_AIF2TX4MIX_INPUT_1_SOURCE:
case ARIZONA_AIF2TX4MIX_INPUT_1_VOLUME:
case ARIZONA_AIF2TX4MIX_INPUT_2_SOURCE:
case ARIZONA_AIF2TX4MIX_INPUT_2_VOLUME:
case ARIZONA_AIF2TX4MIX_INPUT_3_SOURCE:
case ARIZONA_AIF2TX4MIX_INPUT_3_VOLUME:
case ARIZONA_AIF2TX4MIX_INPUT_4_SOURCE:
case ARIZONA_AIF2TX4MIX_INPUT_4_VOLUME:
case ARIZONA_AIF2TX5MIX_INPUT_1_SOURCE:
case ARIZONA_AIF2TX5MIX_INPUT_1_VOLUME:
case ARIZONA_AIF2TX5MIX_INPUT_2_SOURCE:
case ARIZONA_AIF2TX5MIX_INPUT_2_VOLUME:
case ARIZONA_AIF2TX5MIX_INPUT_3_SOURCE:
case ARIZONA_AIF2TX5MIX_INPUT_3_VOLUME:
case ARIZONA_AIF2TX5MIX_INPUT_4_SOURCE:
case ARIZONA_AIF2TX5MIX_INPUT_4_VOLUME:
case ARIZONA_AIF2TX6MIX_INPUT_1_SOURCE:
case ARIZONA_AIF2TX6MIX_INPUT_1_VOLUME:
case ARIZONA_AIF2TX6MIX_INPUT_2_SOURCE:
case ARIZONA_AIF2TX6MIX_INPUT_2_VOLUME:
case ARIZONA_AIF2TX6MIX_INPUT_3_SOURCE:
case ARIZONA_AIF2TX6MIX_INPUT_3_VOLUME:
case ARIZONA_AIF2TX6MIX_INPUT_4_SOURCE:
case ARIZONA_AIF2TX6MIX_INPUT_4_VOLUME:
case ARIZONA_AIF3TX1MIX_INPUT_1_SOURCE:
case ARIZONA_AIF3TX1MIX_INPUT_1_VOLUME:
case ARIZONA_AIF3TX1MIX_INPUT_2_SOURCE:
case ARIZONA_AIF3TX1MIX_INPUT_2_VOLUME:
case ARIZONA_AIF3TX1MIX_INPUT_3_SOURCE:
case ARIZONA_AIF3TX1MIX_INPUT_3_VOLUME:
case ARIZONA_AIF3TX1MIX_INPUT_4_SOURCE:
case ARIZONA_AIF3TX1MIX_INPUT_4_VOLUME:
case ARIZONA_AIF3TX2MIX_INPUT_1_SOURCE:
case ARIZONA_AIF3TX2MIX_INPUT_1_VOLUME:
case ARIZONA_AIF3TX2MIX_INPUT_2_SOURCE:
case ARIZONA_AIF3TX2MIX_INPUT_2_VOLUME:
case ARIZONA_AIF3TX2MIX_INPUT_3_SOURCE:
case ARIZONA_AIF3TX2MIX_INPUT_3_VOLUME:
case ARIZONA_AIF3TX2MIX_INPUT_4_SOURCE:
case ARIZONA_AIF3TX2MIX_INPUT_4_VOLUME:
case ARIZONA_EQ1MIX_INPUT_1_SOURCE:
case ARIZONA_EQ1MIX_INPUT_1_VOLUME:
case ARIZONA_EQ1MIX_INPUT_2_SOURCE:
case ARIZONA_EQ1MIX_INPUT_2_VOLUME:
case ARIZONA_EQ1MIX_INPUT_3_SOURCE:
case ARIZONA_EQ1MIX_INPUT_3_VOLUME:
case ARIZONA_EQ1MIX_INPUT_4_SOURCE:
case ARIZONA_EQ1MIX_INPUT_4_VOLUME:
case ARIZONA_EQ2MIX_INPUT_1_SOURCE:
case ARIZONA_EQ2MIX_INPUT_1_VOLUME:
case ARIZONA_EQ2MIX_INPUT_2_SOURCE:
case ARIZONA_EQ2MIX_INPUT_2_VOLUME:
case ARIZONA_EQ2MIX_INPUT_3_SOURCE:
case ARIZONA_EQ2MIX_INPUT_3_VOLUME:
case ARIZONA_EQ2MIX_INPUT_4_SOURCE:
case ARIZONA_EQ2MIX_INPUT_4_VOLUME:
case ARIZONA_DRC1LMIX_INPUT_1_SOURCE:
case ARIZONA_DRC1LMIX_INPUT_1_VOLUME:
case ARIZONA_DRC1LMIX_INPUT_2_SOURCE:
case ARIZONA_DRC1LMIX_INPUT_2_VOLUME:
case ARIZONA_DRC1LMIX_INPUT_3_SOURCE:
case ARIZONA_DRC1LMIX_INPUT_3_VOLUME:
case ARIZONA_DRC1LMIX_INPUT_4_SOURCE:
case ARIZONA_DRC1LMIX_INPUT_4_VOLUME:
case ARIZONA_DRC1RMIX_INPUT_1_SOURCE:
case ARIZONA_DRC1RMIX_INPUT_1_VOLUME:
case ARIZONA_DRC1RMIX_INPUT_2_SOURCE:
case ARIZONA_DRC1RMIX_INPUT_2_VOLUME:
case ARIZONA_DRC1RMIX_INPUT_3_SOURCE:
case ARIZONA_DRC1RMIX_INPUT_3_VOLUME:
case ARIZONA_DRC1RMIX_INPUT_4_SOURCE:
case ARIZONA_DRC1RMIX_INPUT_4_VOLUME:
case ARIZONA_DRC2LMIX_INPUT_1_SOURCE:
case ARIZONA_DRC2LMIX_INPUT_1_VOLUME:
case ARIZONA_DRC2LMIX_INPUT_2_SOURCE:
case ARIZONA_DRC2LMIX_INPUT_2_VOLUME:
case ARIZONA_DRC2LMIX_INPUT_3_SOURCE:
case ARIZONA_DRC2LMIX_INPUT_3_VOLUME:
case ARIZONA_DRC2LMIX_INPUT_4_SOURCE:
case ARIZONA_DRC2LMIX_INPUT_4_VOLUME:
case ARIZONA_DRC2RMIX_INPUT_1_SOURCE:
case ARIZONA_DRC2RMIX_INPUT_1_VOLUME:
case ARIZONA_DRC2RMIX_INPUT_2_SOURCE:
case ARIZONA_DRC2RMIX_INPUT_2_VOLUME:
case ARIZONA_DRC2RMIX_INPUT_3_SOURCE:
case ARIZONA_DRC2RMIX_INPUT_3_VOLUME:
case ARIZONA_DRC2RMIX_INPUT_4_SOURCE:
case ARIZONA_DRC2RMIX_INPUT_4_VOLUME:
case ARIZONA_HPLP1MIX_INPUT_1_SOURCE:
case ARIZONA_HPLP1MIX_INPUT_1_VOLUME:
case ARIZONA_HPLP1MIX_INPUT_2_SOURCE:
case ARIZONA_HPLP1MIX_INPUT_2_VOLUME:
case ARIZONA_HPLP1MIX_INPUT_3_SOURCE:
case ARIZONA_HPLP1MIX_INPUT_3_VOLUME:
case ARIZONA_HPLP1MIX_INPUT_4_SOURCE:
case ARIZONA_HPLP1MIX_INPUT_4_VOLUME:
case ARIZONA_HPLP2MIX_INPUT_1_SOURCE:
case ARIZONA_HPLP2MIX_INPUT_1_VOLUME:
case ARIZONA_HPLP2MIX_INPUT_2_SOURCE:
case ARIZONA_HPLP2MIX_INPUT_2_VOLUME:
case ARIZONA_HPLP2MIX_INPUT_3_SOURCE:
case ARIZONA_HPLP2MIX_INPUT_3_VOLUME:
case ARIZONA_HPLP2MIX_INPUT_4_SOURCE:
case ARIZONA_HPLP2MIX_INPUT_4_VOLUME:
case ARIZONA_HPLP3MIX_INPUT_1_SOURCE:
case ARIZONA_HPLP3MIX_INPUT_1_VOLUME:
case ARIZONA_HPLP3MIX_INPUT_2_SOURCE:
case ARIZONA_HPLP3MIX_INPUT_2_VOLUME:
case ARIZONA_HPLP3MIX_INPUT_3_SOURCE:
case ARIZONA_HPLP3MIX_INPUT_3_VOLUME:
case ARIZONA_HPLP3MIX_INPUT_4_SOURCE:
case ARIZONA_HPLP3MIX_INPUT_4_VOLUME:
case ARIZONA_HPLP4MIX_INPUT_1_SOURCE:
case ARIZONA_HPLP4MIX_INPUT_1_VOLUME:
case ARIZONA_HPLP4MIX_INPUT_2_SOURCE:
case ARIZONA_HPLP4MIX_INPUT_2_VOLUME:
case ARIZONA_HPLP4MIX_INPUT_3_SOURCE:
case ARIZONA_HPLP4MIX_INPUT_3_VOLUME:
case ARIZONA_HPLP4MIX_INPUT_4_SOURCE:
case ARIZONA_HPLP4MIX_INPUT_4_VOLUME:
case ARIZONA_DSP2LMIX_INPUT_1_SOURCE:
case ARIZONA_DSP2LMIX_INPUT_1_VOLUME:
case ARIZONA_DSP2LMIX_INPUT_2_SOURCE:
case ARIZONA_DSP2LMIX_INPUT_2_VOLUME:
case ARIZONA_DSP2LMIX_INPUT_3_SOURCE:
case ARIZONA_DSP2LMIX_INPUT_3_VOLUME:
case ARIZONA_DSP2LMIX_INPUT_4_SOURCE:
case ARIZONA_DSP2LMIX_INPUT_4_VOLUME:
case ARIZONA_DSP2RMIX_INPUT_1_SOURCE:
case ARIZONA_DSP2RMIX_INPUT_1_VOLUME:
case ARIZONA_DSP2RMIX_INPUT_2_SOURCE:
case ARIZONA_DSP2RMIX_INPUT_2_VOLUME:
case ARIZONA_DSP2RMIX_INPUT_3_SOURCE:
case ARIZONA_DSP2RMIX_INPUT_3_VOLUME:
case ARIZONA_DSP2RMIX_INPUT_4_SOURCE:
case ARIZONA_DSP2RMIX_INPUT_4_VOLUME:
case ARIZONA_DSP2AUX1MIX_INPUT_1_SOURCE:
case ARIZONA_DSP2AUX2MIX_INPUT_1_SOURCE:
case ARIZONA_DSP2AUX3MIX_INPUT_1_SOURCE:
case ARIZONA_DSP2AUX4MIX_INPUT_1_SOURCE:
case ARIZONA_DSP2AUX5MIX_INPUT_1_SOURCE:
case ARIZONA_DSP2AUX6MIX_INPUT_1_SOURCE:
case ARIZONA_DSP3LMIX_INPUT_1_SOURCE:
case ARIZONA_DSP3LMIX_INPUT_1_VOLUME:
case ARIZONA_DSP3LMIX_INPUT_2_SOURCE:
case ARIZONA_DSP3LMIX_INPUT_2_VOLUME:
case ARIZONA_DSP3LMIX_INPUT_3_SOURCE:
case ARIZONA_DSP3LMIX_INPUT_3_VOLUME:
case ARIZONA_DSP3LMIX_INPUT_4_SOURCE:
case ARIZONA_DSP3LMIX_INPUT_4_VOLUME:
case ARIZONA_DSP3RMIX_INPUT_1_SOURCE:
case ARIZONA_DSP3RMIX_INPUT_1_VOLUME:
case ARIZONA_DSP3RMIX_INPUT_2_SOURCE:
case ARIZONA_DSP3RMIX_INPUT_2_VOLUME:
case ARIZONA_DSP3RMIX_INPUT_3_SOURCE:
case ARIZONA_DSP3RMIX_INPUT_3_VOLUME:
case ARIZONA_DSP3RMIX_INPUT_4_SOURCE:
case ARIZONA_DSP3RMIX_INPUT_4_VOLUME:
case ARIZONA_DSP3AUX1MIX_INPUT_1_SOURCE:
case ARIZONA_DSP3AUX2MIX_INPUT_1_SOURCE:
case ARIZONA_DSP3AUX3MIX_INPUT_1_SOURCE:
case ARIZONA_DSP3AUX4MIX_INPUT_1_SOURCE:
case ARIZONA_DSP3AUX5MIX_INPUT_1_SOURCE:
case ARIZONA_DSP3AUX6MIX_INPUT_1_SOURCE:
case ARIZONA_ASRC1LMIX_INPUT_1_SOURCE:
case ARIZONA_ASRC1RMIX_INPUT_1_SOURCE:
case ARIZONA_ASRC2LMIX_INPUT_1_SOURCE:
case ARIZONA_ASRC2RMIX_INPUT_1_SOURCE:
case ARIZONA_ISRC1DEC1MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC1DEC2MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC1DEC3MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC1DEC4MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC1INT1MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC1INT2MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC1INT3MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC1INT4MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC2DEC1MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC2DEC2MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC2DEC3MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC2DEC4MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC2INT1MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC2INT2MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC2INT3MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC2INT4MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC3DEC1MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC3DEC2MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC3DEC3MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC3DEC4MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC3INT1MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC3INT2MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC3INT3MIX_INPUT_1_SOURCE:
case ARIZONA_ISRC3INT4MIX_INPUT_1_SOURCE:
case ARIZONA_GPIO1_CTRL:
case ARIZONA_GPIO2_CTRL:
case ARIZONA_IRQ_CTRL_1:
case ARIZONA_GPIO_DEBOUNCE_CONFIG:
case ARIZONA_MISC_PAD_CTRL_1:
case ARIZONA_MISC_PAD_CTRL_2:
case ARIZONA_MISC_PAD_CTRL_3:
case ARIZONA_MISC_PAD_CTRL_4:
case ARIZONA_MISC_PAD_CTRL_5:
case ARIZONA_MISC_PAD_CTRL_6:
case ARIZONA_MISC_PAD_CTRL_7:
case ARIZONA_MISC_PAD_CTRL_9:
case ARIZONA_MISC_PAD_CTRL_10:
case ARIZONA_MISC_PAD_CTRL_11:
case ARIZONA_MISC_PAD_CTRL_12:
case ARIZONA_MISC_PAD_CTRL_13:
case ARIZONA_MISC_PAD_CTRL_14:
case ARIZONA_MISC_PAD_CTRL_16:
case ARIZONA_INTERRUPT_STATUS_1:
case ARIZONA_INTERRUPT_STATUS_2:
case ARIZONA_INTERRUPT_STATUS_3:
case ARIZONA_INTERRUPT_STATUS_4:
case ARIZONA_INTERRUPT_STATUS_5:
case ARIZONA_INTERRUPT_STATUS_6:
case ARIZONA_INTERRUPT_STATUS_1_MASK:
case ARIZONA_INTERRUPT_STATUS_2_MASK:
case ARIZONA_INTERRUPT_STATUS_3_MASK:
case ARIZONA_INTERRUPT_STATUS_4_MASK:
case ARIZONA_INTERRUPT_STATUS_5_MASK:
case ARIZONA_INTERRUPT_STATUS_6_MASK:
case ARIZONA_INTERRUPT_CONTROL:
case ARIZONA_IRQ2_STATUS_1:
case ARIZONA_IRQ2_STATUS_2:
case ARIZONA_IRQ2_STATUS_3:
case ARIZONA_IRQ2_STATUS_4:
case ARIZONA_IRQ2_STATUS_5:
case ARIZONA_IRQ2_STATUS_6:
case ARIZONA_IRQ2_STATUS_1_MASK:
case ARIZONA_IRQ2_STATUS_2_MASK:
case ARIZONA_IRQ2_STATUS_3_MASK:
case ARIZONA_IRQ2_STATUS_4_MASK:
case ARIZONA_IRQ2_STATUS_5_MASK:
case ARIZONA_IRQ2_STATUS_6_MASK:
case ARIZONA_IRQ2_CONTROL:
case ARIZONA_INTERRUPT_RAW_STATUS_2:
case ARIZONA_INTERRUPT_RAW_STATUS_3:
case ARIZONA_INTERRUPT_RAW_STATUS_4:
case ARIZONA_INTERRUPT_RAW_STATUS_5:
case ARIZONA_INTERRUPT_RAW_STATUS_6:
case ARIZONA_INTERRUPT_RAW_STATUS_7:
case ARIZONA_INTERRUPT_RAW_STATUS_8:
case ARIZONA_INTERRUPT_RAW_STATUS_9:
case ARIZONA_IRQ_PIN_STATUS:
case ARIZONA_FX_CTRL1:
case ARIZONA_FX_CTRL2:
case ARIZONA_EQ1_1:
case ARIZONA_EQ1_2:
case ARIZONA_EQ1_3:
case ARIZONA_EQ1_4:
case ARIZONA_EQ1_5:
case ARIZONA_EQ1_6:
case ARIZONA_EQ1_7:
case ARIZONA_EQ1_8:
case ARIZONA_EQ1_9:
case ARIZONA_EQ1_10:
case ARIZONA_EQ1_11:
case ARIZONA_EQ1_12:
case ARIZONA_EQ1_13:
case ARIZONA_EQ1_14:
case ARIZONA_EQ1_15:
case ARIZONA_EQ1_16:
case ARIZONA_EQ1_17:
case ARIZONA_EQ1_18:
case ARIZONA_EQ1_19:
case ARIZONA_EQ1_20:
case ARIZONA_EQ1_21:
case ARIZONA_EQ2_1:
case ARIZONA_EQ2_2:
case ARIZONA_EQ2_3:
case ARIZONA_EQ2_4:
case ARIZONA_EQ2_5:
case ARIZONA_EQ2_6:
case ARIZONA_EQ2_7:
case ARIZONA_EQ2_8:
case ARIZONA_EQ2_9:
case ARIZONA_EQ2_10:
case ARIZONA_EQ2_11:
case ARIZONA_EQ2_12:
case ARIZONA_EQ2_13:
case ARIZONA_EQ2_14:
case ARIZONA_EQ2_15:
case ARIZONA_EQ2_16:
case ARIZONA_EQ2_17:
case ARIZONA_EQ2_18:
case ARIZONA_EQ2_19:
case ARIZONA_EQ2_20:
case ARIZONA_EQ2_21:
case ARIZONA_DRC1_CTRL1:
case ARIZONA_DRC1_CTRL2:
case ARIZONA_DRC1_CTRL3:
case ARIZONA_DRC1_CTRL4:
case ARIZONA_DRC1_CTRL5:
case ARIZONA_DRC2_CTRL1:
case ARIZONA_DRC2_CTRL2:
case ARIZONA_DRC2_CTRL3:
case ARIZONA_DRC2_CTRL4:
case ARIZONA_DRC2_CTRL5:
case ARIZONA_HPLPF1_1:
case ARIZONA_HPLPF1_2:
case ARIZONA_HPLPF2_1:
case ARIZONA_HPLPF2_2:
case ARIZONA_HPLPF3_1:
case ARIZONA_HPLPF3_2:
case ARIZONA_HPLPF4_1:
case ARIZONA_HPLPF4_2:
case ARIZONA_ASRC_ENABLE:
case ARIZONA_ASRC_STATUS:
case ARIZONA_ASRC_RATE1:
case ARIZONA_ASRC_RATE2:
case ARIZONA_ISRC_1_CTRL_1:
case ARIZONA_ISRC_1_CTRL_2:
case ARIZONA_ISRC_1_CTRL_3:
case ARIZONA_ISRC_2_CTRL_1:
case ARIZONA_ISRC_2_CTRL_2:
case ARIZONA_ISRC_2_CTRL_3:
case ARIZONA_ISRC_3_CTRL_1:
case ARIZONA_ISRC_3_CTRL_2:
case ARIZONA_ISRC_3_CTRL_3:
case ARIZONA_DSP2_CONTROL_1:
case ARIZONA_DSP2_CLOCKING_1:
case ARIZONA_DSP2_STATUS_1:
case ARIZONA_DSP2_STATUS_2:
case ARIZONA_DSP2_STATUS_3:
case ARIZONA_DSP2_STATUS_4:
case ARIZONA_DSP2_WDMA_BUFFER_1:
case ARIZONA_DSP2_WDMA_BUFFER_2:
case ARIZONA_DSP2_WDMA_BUFFER_3:
case ARIZONA_DSP2_WDMA_BUFFER_4:
case ARIZONA_DSP2_WDMA_BUFFER_5:
case ARIZONA_DSP2_WDMA_BUFFER_6:
case ARIZONA_DSP2_WDMA_BUFFER_7:
case ARIZONA_DSP2_WDMA_BUFFER_8:
case ARIZONA_DSP2_RDMA_BUFFER_1:
case ARIZONA_DSP2_RDMA_BUFFER_2:
case ARIZONA_DSP2_RDMA_BUFFER_3:
case ARIZONA_DSP2_RDMA_BUFFER_4:
case ARIZONA_DSP2_RDMA_BUFFER_5:
case ARIZONA_DSP2_RDMA_BUFFER_6:
case ARIZONA_DSP2_WDMA_CONFIG_1:
case ARIZONA_DSP2_WDMA_CONFIG_2:
case ARIZONA_DSP2_WDMA_OFFSET_1:
case ARIZONA_DSP2_RDMA_CONFIG_1:
case ARIZONA_DSP2_RDMA_OFFSET_1:
case ARIZONA_DSP2_EXTERNAL_START_SELECT_1:
case ARIZONA_DSP2_SCRATCH_0:
case ARIZONA_DSP2_SCRATCH_1:
case ARIZONA_DSP2_SCRATCH_2:
case ARIZONA_DSP2_SCRATCH_3:
case ARIZONA_DSP3_CONTROL_1:
case ARIZONA_DSP3_CLOCKING_1:
case ARIZONA_DSP3_STATUS_1:
case ARIZONA_DSP3_STATUS_2:
case ARIZONA_DSP3_STATUS_3:
case ARIZONA_DSP3_STATUS_4:
case ARIZONA_DSP3_WDMA_BUFFER_1:
case ARIZONA_DSP3_WDMA_BUFFER_2:
case ARIZONA_DSP3_WDMA_BUFFER_3:
case ARIZONA_DSP3_WDMA_BUFFER_4:
case ARIZONA_DSP3_WDMA_BUFFER_5:
case ARIZONA_DSP3_WDMA_BUFFER_6:
case ARIZONA_DSP3_WDMA_BUFFER_7:
case ARIZONA_DSP3_WDMA_BUFFER_8:
case ARIZONA_DSP3_RDMA_BUFFER_1:
case ARIZONA_DSP3_RDMA_BUFFER_2:
case ARIZONA_DSP3_RDMA_BUFFER_3:
case ARIZONA_DSP3_RDMA_BUFFER_4:
case ARIZONA_DSP3_RDMA_BUFFER_5:
case ARIZONA_DSP3_RDMA_BUFFER_6:
case ARIZONA_DSP3_WDMA_CONFIG_1:
case ARIZONA_DSP3_WDMA_CONFIG_2:
case ARIZONA_DSP3_WDMA_OFFSET_1:
case ARIZONA_DSP3_RDMA_CONFIG_1:
case ARIZONA_DSP3_RDMA_OFFSET_1:
case ARIZONA_DSP3_EXTERNAL_START_SELECT_1:
case ARIZONA_DSP3_SCRATCH_0:
case ARIZONA_DSP3_SCRATCH_1:
case ARIZONA_DSP3_SCRATCH_2:
case ARIZONA_DSP3_SCRATCH_3:
return true;
default:
return cs47l24_is_adsp_memory(reg);
}
}
static bool cs47l24_volatile_register(struct device *dev, unsigned int reg)
{
switch (reg) {
case ARIZONA_SOFTWARE_RESET:
case ARIZONA_DEVICE_REVISION:
case ARIZONA_WRITE_SEQUENCER_CTRL_0:
case ARIZONA_WRITE_SEQUENCER_CTRL_1:
case ARIZONA_WRITE_SEQUENCER_CTRL_2:
case ARIZONA_HAPTICS_STATUS:
case ARIZONA_SAMPLE_RATE_1_STATUS:
case ARIZONA_SAMPLE_RATE_2_STATUS:
case ARIZONA_SAMPLE_RATE_3_STATUS:
case ARIZONA_ASYNC_SAMPLE_RATE_1_STATUS:
case ARIZONA_ASYNC_SAMPLE_RATE_2_STATUS:
case ARIZONA_HP_CTRL_1L:
case ARIZONA_HP_CTRL_1R:
case ARIZONA_INPUT_ENABLES_STATUS:
case ARIZONA_OUTPUT_STATUS_1:
case ARIZONA_RAW_OUTPUT_STATUS_1:
case ARIZONA_INTERRUPT_STATUS_1:
case ARIZONA_INTERRUPT_STATUS_2:
case ARIZONA_INTERRUPT_STATUS_3:
case ARIZONA_INTERRUPT_STATUS_4:
case ARIZONA_INTERRUPT_STATUS_5:
case ARIZONA_INTERRUPT_STATUS_6:
case ARIZONA_IRQ2_STATUS_1:
case ARIZONA_IRQ2_STATUS_2:
case ARIZONA_IRQ2_STATUS_3:
case ARIZONA_IRQ2_STATUS_4:
case ARIZONA_IRQ2_STATUS_5:
case ARIZONA_IRQ2_STATUS_6:
case ARIZONA_INTERRUPT_RAW_STATUS_2:
case ARIZONA_INTERRUPT_RAW_STATUS_3:
case ARIZONA_INTERRUPT_RAW_STATUS_4:
case ARIZONA_INTERRUPT_RAW_STATUS_5:
case ARIZONA_INTERRUPT_RAW_STATUS_6:
case ARIZONA_INTERRUPT_RAW_STATUS_7:
case ARIZONA_INTERRUPT_RAW_STATUS_8:
case ARIZONA_INTERRUPT_RAW_STATUS_9:
case ARIZONA_IRQ_PIN_STATUS:
case ARIZONA_FX_CTRL2:
case ARIZONA_ASRC_STATUS:
case ARIZONA_DSP2_STATUS_1:
case ARIZONA_DSP2_STATUS_2:
case ARIZONA_DSP2_STATUS_3:
case ARIZONA_DSP2_STATUS_4:
case ARIZONA_DSP2_WDMA_BUFFER_1:
case ARIZONA_DSP2_WDMA_BUFFER_2:
case ARIZONA_DSP2_WDMA_BUFFER_3:
case ARIZONA_DSP2_WDMA_BUFFER_4:
case ARIZONA_DSP2_WDMA_BUFFER_5:
case ARIZONA_DSP2_WDMA_BUFFER_6:
case ARIZONA_DSP2_WDMA_BUFFER_7:
case ARIZONA_DSP2_WDMA_BUFFER_8:
case ARIZONA_DSP2_RDMA_BUFFER_1:
case ARIZONA_DSP2_RDMA_BUFFER_2:
case ARIZONA_DSP2_RDMA_BUFFER_3:
case ARIZONA_DSP2_RDMA_BUFFER_4:
case ARIZONA_DSP2_RDMA_BUFFER_5:
case ARIZONA_DSP2_RDMA_BUFFER_6:
case ARIZONA_DSP2_WDMA_CONFIG_1:
case ARIZONA_DSP2_WDMA_CONFIG_2:
case ARIZONA_DSP2_WDMA_OFFSET_1:
case ARIZONA_DSP2_RDMA_CONFIG_1:
case ARIZONA_DSP2_RDMA_OFFSET_1:
case ARIZONA_DSP2_EXTERNAL_START_SELECT_1:
case ARIZONA_DSP2_SCRATCH_0:
case ARIZONA_DSP2_SCRATCH_1:
case ARIZONA_DSP2_SCRATCH_2:
case ARIZONA_DSP2_SCRATCH_3:
case ARIZONA_DSP2_CLOCKING_1:
case ARIZONA_DSP3_STATUS_1:
case ARIZONA_DSP3_STATUS_2:
case ARIZONA_DSP3_STATUS_3:
case ARIZONA_DSP3_STATUS_4:
case ARIZONA_DSP3_WDMA_BUFFER_1:
case ARIZONA_DSP3_WDMA_BUFFER_2:
case ARIZONA_DSP3_WDMA_BUFFER_3:
case ARIZONA_DSP3_WDMA_BUFFER_4:
case ARIZONA_DSP3_WDMA_BUFFER_5:
case ARIZONA_DSP3_WDMA_BUFFER_6:
case ARIZONA_DSP3_WDMA_BUFFER_7:
case ARIZONA_DSP3_WDMA_BUFFER_8:
case ARIZONA_DSP3_RDMA_BUFFER_1:
case ARIZONA_DSP3_RDMA_BUFFER_2:
case ARIZONA_DSP3_RDMA_BUFFER_3:
case ARIZONA_DSP3_RDMA_BUFFER_4:
case ARIZONA_DSP3_RDMA_BUFFER_5:
case ARIZONA_DSP3_RDMA_BUFFER_6:
case ARIZONA_DSP3_WDMA_CONFIG_1:
case ARIZONA_DSP3_WDMA_CONFIG_2:
case ARIZONA_DSP3_WDMA_OFFSET_1:
case ARIZONA_DSP3_RDMA_CONFIG_1:
case ARIZONA_DSP3_RDMA_OFFSET_1:
case ARIZONA_DSP3_EXTERNAL_START_SELECT_1:
case ARIZONA_DSP3_SCRATCH_0:
case ARIZONA_DSP3_SCRATCH_1:
case ARIZONA_DSP3_SCRATCH_2:
case ARIZONA_DSP3_SCRATCH_3:
case ARIZONA_DSP3_CLOCKING_1:
return true;
default:
return cs47l24_is_adsp_memory(reg);
}
}
#define CS47L24_MAX_REGISTER 0x3b3fff
const struct regmap_config cs47l24_spi_regmap = {
.reg_bits = 32,
.pad_bits = 16,
.val_bits = 16,
.reg_format_endian = REGMAP_ENDIAN_BIG,
.val_format_endian = REGMAP_ENDIAN_BIG,
.max_register = CS47L24_MAX_REGISTER,
.readable_reg = cs47l24_readable_register,
.volatile_reg = cs47l24_volatile_register,
.cache_type = REGCACHE_MAPLE,
.reg_defaults = cs47l24_reg_default,
.num_reg_defaults = ARRAY_SIZE(cs47l24_reg_default),
};
EXPORT_SYMBOL_GPL