Re: [PATCH RESEND] mfd: arizona: Fixup register table definitions

Lee Jones
2015-07-07T11:45:21Z

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 <ckeepax@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