On Tue, 30 Jun 2015, Charles Keepax wrote: > The regmap register definitions have been a source of many small fixes > as issues are discovered. As such I made a small automated tool to > check these definitions. This patch fixes the issues (mostly harmless) > located by that tool, the issues fall into three catagories: > > 1) Volatile registers that have a default in the defaults table (default > has been removed from the table since it is redundant) > 2) Registers that are marked as volatile but unreadable (register has > been removed from the volatile list since it is obviously not being > used) > 3) Registers that arn't readable but have an entry in the defaults > table (again removed since it is redundant) > 4) Readable non-volatile registers that are missing a default, these are > dangerous as they won't get synced during a cache sync. Fortunately, > most of them seem to be registers that shouldn't be there (for example > wm5102 had readable registers for DRC2 and ISRC3 which is doesn't have) > > Hopefully another tool will be produced to check the actual default > values themselves but that is outside the scope of this patch. > > Signed-off-by: Charles Keepax <ckee...@opensource.wolfsonmicro.com> > --- > drivers/mfd/wm5102-tables.c | 47 +----------------------------------------- > drivers/mfd/wm5110-tables.c | 10 --------- > drivers/mfd/wm8997-tables.c | 6 +--- > 3 files changed, 4 insertions(+), 59 deletions(-)
Applied, thanks. > diff --git a/drivers/mfd/wm5102-tables.c b/drivers/mfd/wm5102-tables.c > index aeae6ec..5a5b371 100644 > --- a/drivers/mfd/wm5102-tables.c > +++ b/drivers/mfd/wm5102-tables.c > @@ -266,8 +266,6 @@ static const struct reg_default wm5102_reg_default[] = { > { 0x00000069, 0x01FF }, /* R105 - Always On Triggers Sequence > Select 4 */ > { 0x0000006A, 0x01FF }, /* R106 - Always On Triggers Sequence > Select 5 */ > { 0x0000006B, 0x01FF }, /* R107 - Always On Triggers Sequence > Select 6 */ > - { 0x0000006E, 0x01FF }, /* R110 - Trigger Sequence Select 32 */ > - { 0x0000006F, 0x01FF }, /* R111 - Trigger Sequence Select 33 */ > { 0x00000070, 0x0000 }, /* R112 - Comfort Noise Generator */ > { 0x00000090, 0x0000 }, /* R144 - Haptics Control 1 */ > { 0x00000091, 0x7FFF }, /* R145 - Haptics Control 2 */ > @@ -300,7 +298,6 @@ static const struct reg_default wm5102_reg_default[] = { > { 0x00000175, 0x0004 }, /* R373 - FLL1 Control 5 */ > { 0x00000176, 0x0000 }, /* R374 - FLL1 Control 6 */ > { 0x00000177, 0x0181 }, /* R375 - FLL1 Loop Filter Test 1 */ > - { 0x00000178, 0x0000 }, /* R376 - FLL1 NCO Test 0 */ > { 0x00000179, 0x0000 }, /* R377 - FLL1 Control 7 */ > { 0x00000181, 0x0000 }, /* R385 - FLL1 Synchroniser 1 */ > { 0x00000182, 0x0000 }, /* R386 - FLL1 Synchroniser 2 */ > @@ -318,7 +315,6 @@ static const struct reg_default wm5102_reg_default[] = { > { 0x00000195, 0x0004 }, /* R405 - FLL2 Control 5 */ > { 0x00000196, 0x0000 }, /* R406 - FLL2 Control 6 */ > { 0x00000197, 0x0000 }, /* R407 - FLL2 Loop Filter Test 1 */ > - { 0x00000198, 0x0000 }, /* R408 - FLL2 NCO Test 0 */ > { 0x00000199, 0x0000 }, /* R409 - FLL2 Control 7 */ > { 0x000001A1, 0x0000 }, /* R417 - FLL2 Synchroniser 1 */ > { 0x000001A2, 0x0000 }, /* R418 - FLL2 Synchroniser 2 */ > @@ -338,12 +334,9 @@ static const struct reg_default wm5102_reg_default[] = { > { 0x0000021A, 0x01A6 }, /* R538 - Mic Bias Ctrl 3 */ > { 0x00000293, 0x0000 }, /* R659 - Accessory Detect Mode 1 */ > { 0x0000029B, 0x0020 }, /* R667 - Headphone Detect 1 */ > - { 0x0000029C, 0x0000 }, /* R668 - Headphone Detect 2 */ > - { 0x0000029F, 0x0000 }, /* R671 - Headphone Detect Test */ > { 0x000002A2, 0x0000 }, /* R674 - Micd clamp control */ > { 0x000002A3, 0x1102 }, /* R675 - Mic Detect 1 */ > { 0x000002A4, 0x009F }, /* R676 - Mic Detect 2 */ > - { 0x000002A5, 0x0000 }, /* R677 - Mic Detect 3 */ > { 0x000002A6, 0x3737 }, /* R678 - Mic Detect Level 1 */ > { 0x000002A7, 0x372C }, /* R679 - Mic Detect Level 2 */ > { 0x000002A8, 0x1422 }, /* R680 - Mic Detect Level 3 */ > @@ -887,11 +880,11 @@ static const struct reg_default wm5102_reg_default[] = { > { 0x00000D1B, 0xFFFF }, /* R3355 - IRQ2 Status 4 Mask */ > { 0x00000D1C, 0xFFFF }, /* R3356 - IRQ2 Status 5 Mask */ > { 0x00000D1F, 0x0000 }, /* R3359 - IRQ2 Control */ > + { 0x00000D41, 0x0000 }, /* R3393 - ADSP2 IRQ0 */ > { 0x00000D53, 0xFFFF }, /* R3411 - AOD IRQ Mask IRQ1 */ > { 0x00000D54, 0xFFFF }, /* R3412 - AOD IRQ Mask IRQ2 */ > { 0x00000D56, 0x0000 }, /* R3414 - Jack detect debounce */ > { 0x00000E00, 0x0000 }, /* R3584 - FX_Ctrl1 */ > - { 0x00000E01, 0x0000 }, /* R3585 - FX_Ctrl2 */ > { 0x00000E10, 0x6318 }, /* R3600 - EQ1_1 */ > { 0x00000E11, 0x6300 }, /* R3601 - EQ1_2 */ > { 0x00000E12, 0x0FC8 }, /* R3602 - EQ1_3 */ > @@ -991,6 +984,7 @@ static const struct reg_default wm5102_reg_default[] = { > { 0x00000ECD, 0x0000 }, /* R3789 - HPLPF4_2 */ > { 0x00000EE0, 0x0000 }, /* R3808 - ASRC_ENABLE */ > { 0x00000EE2, 0x0000 }, /* R3810 - ASRC_RATE1 */ > + { 0x00000EE3, 0x0400 }, /* R3811 - ASRC_RATE2 */ > { 0x00000EF0, 0x0000 }, /* R3824 - ISRC 1 CTRL 1 */ > { 0x00000EF1, 0x0000 }, /* R3825 - ISRC 1 CTRL 2 */ > { 0x00000EF2, 0x0000 }, /* R3826 - ISRC 1 CTRL 3 */ > @@ -998,7 +992,6 @@ static const struct reg_default wm5102_reg_default[] = { > { 0x00000EF4, 0x0000 }, /* R3828 - ISRC 2 CTRL 2 */ > { 0x00000EF5, 0x0000 }, /* R3829 - ISRC 2 CTRL 3 */ > { 0x00001100, 0x0010 }, /* R4352 - DSP1 Control 1 */ > - { 0x00001101, 0x0000 }, /* R4353 - DSP1 Clocking 1 */ > }; > > static bool wm5102_readable_register(struct device *dev, unsigned int reg) > @@ -1008,12 +1001,10 @@ static bool wm5102_readable_register(struct device > *dev, unsigned int reg) > case ARIZONA_DEVICE_REVISION: > case ARIZONA_CTRL_IF_SPI_CFG_1: > case ARIZONA_CTRL_IF_I2C1_CFG_1: > - case ARIZONA_CTRL_IF_STATUS_1: > case ARIZONA_WRITE_SEQUENCER_CTRL_0: > case ARIZONA_WRITE_SEQUENCER_CTRL_1: > case ARIZONA_WRITE_SEQUENCER_CTRL_2: > case ARIZONA_WRITE_SEQUENCER_CTRL_3: > - case ARIZONA_WRITE_SEQUENCER_PROM: > case ARIZONA_TONE_GENERATOR_1: > case ARIZONA_TONE_GENERATOR_2: > case ARIZONA_TONE_GENERATOR_3: > @@ -1034,8 +1025,6 @@ static bool wm5102_readable_register(struct device > *dev, unsigned int reg) > case ARIZONA_ALWAYS_ON_TRIGGERS_SEQUENCE_SELECT_4: > case ARIZONA_ALWAYS_ON_TRIGGERS_SEQUENCE_SELECT_5: > case ARIZONA_ALWAYS_ON_TRIGGERS_SEQUENCE_SELECT_6: > - case ARIZONA_ALWAYS_ON_TRIGGERS_SEQUENCE_SELECT_7: > - case ARIZONA_ALWAYS_ON_TRIGGERS_SEQUENCE_SELECT_8: > case ARIZONA_COMFORT_NOISE_GENERATOR: > case ARIZONA_HAPTICS_CONTROL_1: > case ARIZONA_HAPTICS_CONTROL_2: > @@ -1176,7 +1165,6 @@ static bool wm5102_readable_register(struct device > *dev, unsigned int reg) > case ARIZONA_DAC_DIGITAL_VOLUME_4L: > case ARIZONA_OUT_VOLUME_4L: > case ARIZONA_NOISE_GATE_SELECT_4L: > - case ARIZONA_OUTPUT_PATH_CONFIG_4R: > case ARIZONA_DAC_DIGITAL_VOLUME_4R: > case ARIZONA_OUT_VOLUME_4R: > case ARIZONA_NOISE_GATE_SELECT_4R: > @@ -1184,7 +1172,6 @@ static bool wm5102_readable_register(struct device > *dev, unsigned int reg) > case ARIZONA_DAC_DIGITAL_VOLUME_5L: > case ARIZONA_DAC_VOLUME_LIMIT_5L: > case ARIZONA_NOISE_GATE_SELECT_5L: > - case ARIZONA_OUTPUT_PATH_CONFIG_5R: > case ARIZONA_DAC_DIGITAL_VOLUME_5R: > case ARIZONA_DAC_VOLUME_LIMIT_5R: > case ARIZONA_NOISE_GATE_SELECT_5R: > @@ -1195,8 +1182,6 @@ static bool wm5102_readable_register(struct device > *dev, unsigned int reg) > case ARIZONA_NOISE_GATE_CONTROL: > case ARIZONA_PDM_SPK1_CTRL_1: > case ARIZONA_PDM_SPK1_CTRL_2: > - case ARIZONA_SPK_CTRL_2: > - case ARIZONA_SPK_CTRL_3: > case ARIZONA_DAC_COMP_1: > case ARIZONA_DAC_COMP_2: > case ARIZONA_DAC_COMP_3: > @@ -1228,7 +1213,6 @@ static bool wm5102_readable_register(struct device > *dev, unsigned int reg) > case ARIZONA_AIF1_FRAME_CTRL_18: > case ARIZONA_AIF1_TX_ENABLES: > case ARIZONA_AIF1_RX_ENABLES: > - case ARIZONA_AIF1_FORCE_WRITE: > case ARIZONA_AIF2_BCLK_CTRL: > case ARIZONA_AIF2_TX_PIN_CTRL: > case ARIZONA_AIF2_RX_PIN_CTRL: > @@ -1244,7 +1228,6 @@ static bool wm5102_readable_register(struct device > *dev, unsigned int reg) > case ARIZONA_AIF2_FRAME_CTRL_12: > case ARIZONA_AIF2_TX_ENABLES: > case ARIZONA_AIF2_RX_ENABLES: > - case ARIZONA_AIF2_FORCE_WRITE: > case ARIZONA_AIF3_BCLK_CTRL: > case ARIZONA_AIF3_TX_PIN_CTRL: > case ARIZONA_AIF3_RX_PIN_CTRL: > @@ -1260,7 +1243,6 @@ static bool wm5102_readable_register(struct device > *dev, unsigned int reg) > case ARIZONA_AIF3_FRAME_CTRL_12: > case ARIZONA_AIF3_TX_ENABLES: > case ARIZONA_AIF3_RX_ENABLES: > - case ARIZONA_AIF3_FORCE_WRITE: > case ARIZONA_SLIMBUS_FRAMER_REF_GEAR: > case ARIZONA_SLIMBUS_RATES_1: > case ARIZONA_SLIMBUS_RATES_2: > @@ -1586,22 +1568,6 @@ static bool wm5102_readable_register(struct device > *dev, unsigned int reg) > 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: > @@ -1810,11 +1776,6 @@ static bool wm5102_readable_register(struct device > *dev, unsigned int reg) > 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: > @@ -1832,9 +1793,6 @@ static bool wm5102_readable_register(struct device > *dev, unsigned int reg) > 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_DSP1_CONTROL_1: > case ARIZONA_DSP1_CLOCKING_1: > case ARIZONA_DSP1_STATUS_1: > @@ -1883,7 +1841,6 @@ static bool wm5102_volatile_register(struct device > *dev, unsigned int reg) > case ARIZONA_WRITE_SEQUENCER_CTRL_2: > case ARIZONA_WRITE_SEQUENCER_CTRL_3: > case ARIZONA_OUTPUT_STATUS_1: > - case ARIZONA_RAW_OUTPUT_STATUS_1: > case ARIZONA_SLIMBUS_RX_PORT_STATUS: > case ARIZONA_SLIMBUS_TX_PORT_STATUS: > case ARIZONA_SAMPLE_RATE_1_STATUS: > diff --git a/drivers/mfd/wm5110-tables.c b/drivers/mfd/wm5110-tables.c > index 12cad94..4cccfb3 100644 > --- a/drivers/mfd/wm5110-tables.c > +++ b/drivers/mfd/wm5110-tables.c > @@ -754,11 +754,9 @@ static const struct reg_default wm5110_reg_default[] = { > { 0x0000021A, 0x01A6 }, /* R538 - Mic Bias Ctrl 3 */ > { 0x00000293, 0x0000 }, /* R659 - Accessory Detect Mode 1 */ > { 0x0000029B, 0x0028 }, /* R667 - Headphone Detect 1 */ > - { 0x0000029C, 0x0000 }, /* R668 - Headphone Detect 2 */ > { 0x000002A2, 0x0000 }, /* R674 - Micd clamp control */ > { 0x000002A3, 0x1102 }, /* R675 - Mic Detect 1 */ > { 0x000002A4, 0x009F }, /* R676 - Mic Detect 2 */ > - { 0x000002A5, 0x0000 }, /* R677 - Mic Detect 3 */ > { 0x000002A6, 0x3737 }, /* R678 - Mic Detect Level 1 */ > { 0x000002A7, 0x372C }, /* R679 - Mic Detect Level 2 */ > { 0x000002A8, 0x1422 }, /* R680 - Mic Detect Level 3 */ > @@ -848,8 +846,6 @@ static const struct reg_default wm5110_reg_default[] = { > { 0x00000440, 0x8FFF }, /* R1088 - DRE Enable */ > { 0x00000450, 0x0000 }, /* R1104 - DAC AEC Control 1 */ > { 0x00000458, 0x0000 }, /* R1112 - Noise Gate Control */ > - { 0x00000480, 0x0040 }, /* R1152 - Class W ANC Threshold 1 */ > - { 0x00000481, 0x0040 }, /* R1153 - Class W ANC Threshold 2 */ > { 0x00000490, 0x0069 }, /* R1168 - PDM SPK1 CTRL 1 */ > { 0x00000491, 0x0000 }, /* R1169 - PDM SPK1 CTRL 2 */ > { 0x00000492, 0x0069 }, /* R1170 - PDM SPK2 CTRL 1 */ > @@ -1508,7 +1504,6 @@ static const struct reg_default wm5110_reg_default[] = { > { 0x00000D54, 0xFFFF }, /* R3412 - AOD IRQ Mask IRQ2 */ > { 0x00000D56, 0x0000 }, /* R3414 - Jack detect debounce */ > { 0x00000E00, 0x0000 }, /* R3584 - FX_Ctrl1 */ > - { 0x00000E01, 0x0000 }, /* R3585 - FX_Ctrl2 */ > { 0x00000E10, 0x6318 }, /* R3600 - EQ1_1 */ > { 0x00000E11, 0x6300 }, /* R3601 - EQ1_2 */ > { 0x00000E12, 0x0FC8 }, /* R3602 - EQ1_3 */ > @@ -1625,14 +1620,9 @@ static const struct reg_default wm5110_reg_default[] = > { > { 0x00000F00, 0x0000 }, /* R3840 - Clock Control */ > { 0x00000F01, 0x0000 }, /* R3841 - ANC_SRC */ > { 0x00001100, 0x0010 }, /* R4352 - DSP1 Control 1 */ > - { 0x00001101, 0x0000 }, /* R4353 - DSP1 Clocking 1 */ > { 0x00001200, 0x0010 }, /* R4608 - DSP2 Control 1 */ > - { 0x00001201, 0x0000 }, /* R4609 - DSP2 Clocking 1 */ > { 0x00001300, 0x0010 }, /* R4864 - DSP3 Control 1 */ > - { 0x00001301, 0x0000 }, /* R4865 - DSP3 Clocking 1 */ > { 0x00001400, 0x0010 }, /* R5120 - DSP4 Control 1 */ > - { 0x00001401, 0x0000 }, /* R5121 - DSP4 Clocking 1 */ > - { 0x00001404, 0x0000 }, /* R5124 - DSP4 Status 1 */ > }; > > static bool wm5110_is_rev_b_adsp_memory(unsigned int reg) > diff --git a/drivers/mfd/wm8997-tables.c b/drivers/mfd/wm8997-tables.c > index c0c25d75..daa2498 100644 > --- a/drivers/mfd/wm8997-tables.c > +++ b/drivers/mfd/wm8997-tables.c > @@ -243,7 +243,6 @@ static const struct reg_default wm8997_reg_default[] = { > { 0x0000029B, 0x0020 }, /* R667 - Headphone Detect 1 */ > { 0x000002A3, 0x1102 }, /* R675 - Mic Detect 1 */ > { 0x000002A4, 0x009F }, /* R676 - Mic Detect 2 */ > - { 0x000002A5, 0x0000 }, /* R677 - Mic Detect 3 */ > { 0x000002C3, 0x0000 }, /* R707 - Mic noise mix control 1 */ > { 0x000002CB, 0x0000 }, /* R715 - Isolation control */ > { 0x000002D3, 0x0000 }, /* R723 - Jack detect analogue */ > @@ -684,7 +683,6 @@ static const struct reg_default wm8997_reg_default[] = { > { 0x00000D54, 0xFFFF }, /* R3412 - AOD IRQ Mask IRQ2 */ > { 0x00000D56, 0x0000 }, /* R3414 - Jack detect debounce */ > { 0x00000E00, 0x0000 }, /* R3584 - FX_Ctrl1 */ > - { 0x00000E01, 0x0000 }, /* R3585 - FX_Ctrl2 */ > { 0x00000E10, 0x6318 }, /* R3600 - EQ1_1 */ > { 0x00000E11, 0x6300 }, /* R3601 - EQ1_2 */ > { 0x00000E12, 0x0FC8 }, /* R3602 - EQ1_3 */ > @@ -788,8 +786,6 @@ static const struct reg_default wm8997_reg_default[] = { > { 0x00000EF3, 0x0000 }, /* R3827 - ISRC 2 CTRL 1 */ > { 0x00000EF4, 0x0000 }, /* R3828 - ISRC 2 CTRL 2 */ > { 0x00000EF5, 0x0000 }, /* R3829 - ISRC 2 CTRL 3 */ > - { 0x00001100, 0x0010 }, /* R4352 - DSP1 Control 1 */ > - { 0x00001101, 0x0000 }, /* R4353 - DSP1 Clocking 1 */ > }; > > static bool wm8997_readable_register(struct device *dev, unsigned int reg) > @@ -1480,6 +1476,8 @@ static bool wm8997_volatile_register(struct device > *dev, unsigned int reg) > case ARIZONA_SAMPLE_RATE_2_STATUS: > case ARIZONA_SAMPLE_RATE_3_STATUS: > case ARIZONA_ASYNC_SAMPLE_RATE_1_STATUS: > + case ARIZONA_FLL1_NCO_TEST_0: > + case ARIZONA_FLL2_NCO_TEST_0: > case ARIZONA_MIC_DETECT_3: > case ARIZONA_HP_CTRL_1L: > case ARIZONA_HP_CTRL_1R: -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/