Re: [PATCH RESEND 3/5] mfd: arizona: Add register bits for general purpose switch

Lee Jones
2015-08-12T08:23:28Z

On Tue, 11 Aug 2015, Charles Keepax wrote:

> The switch is typically used in conjunction with the MICDET clamp in
> order to suppress pops and clicks associated with jack insertion.
>
> Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
> ---
> drivers/mfd/wm5110-tables.c | 2 ++
> include/linux/mfd/arizona/pdata.h | 3 +++
> include/linux/mfd/arizona/registers.h | 8 ++++++++
> 3 files changed, 13 insertions(+), 0 deletions(-)

Acked-by: Lee Jones <lee.jones@linaro.org>

> diff --git a/drivers/mfd/wm5110-tables.c b/drivers/mfd/wm5110-tables.c
> index dd27872..acb3bb2 100644
> --- a/drivers/mfd/wm5110-tables.c
> +++ b/drivers/mfd/wm5110-tables.c
> @@ -1472,6 +1472,7 @@ static const struct reg_default wm5110_reg_default[] = {
> { 0x00000C04, 0xA101 }, /* R3076 - GPIO5 CTRL */
> { 0x00000C0F, 0x0400 }, /* R3087 - IRQ CTRL 1 */
> { 0x00000C10, 0x1000 }, /* R3088 - GPIO Debounce Config */
> + { 0x00000C18, 0x0000 }, /* R3096 - GP Switch 1 */
> { 0x00000C20, 0x8002 }, /* R3104 - Misc Pad Ctrl 1 */
> { 0x00000C21, 0x8001 }, /* R3105 - Misc Pad Ctrl 2 */
> { 0x00000C22, 0x0000 }, /* R3106 - Misc Pad Ctrl 3 */
> @@ -2524,6 +2525,7 @@ static bool wm5110_readable_register(struct device *dev, unsigned int reg)
> case ARIZONA_GPIO5_CTRL:
> case ARIZONA_IRQ_CTRL_1:
> case ARIZONA_GPIO_DEBOUNCE_CONFIG:
> + case ARIZONA_GP_SWITCH_1:
> case ARIZONA_MISC_PAD_CTRL_1:
> case ARIZONA_MISC_PAD_CTRL_2:
> case ARIZONA_MISC_PAD_CTRL_3:
> diff --git a/include/linux/mfd/arizona/pdata.h b/include/linux/mfd/arizona/pdata.h
> index f030a32..e76577b 100644
> --- a/include/linux/mfd/arizona/pdata.h
> +++ b/include/linux/mfd/arizona/pdata.h
> @@ -182,6 +182,9 @@ struct arizona_pdata {
>
> /** GPIO for primary IRQ (used for edge triggered emulation) */
> int irq_gpio;
> +
> + /** General purpose switch control */
> + unsigned int gpsw;
> };
>
> #endif
> diff --git a/include/linux/mfd/arizona/registers.h b/include/linux/mfd/arizona/registers.h
> index 3f3bb2b..e96644c 100644
> --- a/include/linux/mfd/arizona/registers.h
> +++ b/include/linux/mfd/arizona/registers.h
> @@ -869,6 +869,7 @@
> #define ARIZONA_GPIO5_CTRL 0xC04
> #define ARIZONA_IRQ_CTRL_1 0xC0F
> #define ARIZONA_GPIO_DEBOUNCE_CONFIG 0xC10
> +#define ARIZONA_GP_SWITCH_1 0xC18
> #define ARIZONA_MISC_PAD_CTRL_1 0xC20
> #define ARIZONA_MISC_PAD_CTRL_2 0xC21
> #define ARIZONA_MISC_PAD_CTRL_3 0xC22
> @@ -4573,6 +4574,13 @@
> #define ARIZONA_GP_DBTIME_WIDTH 4 /* GP_DBTIME - [15:12] */
>
> /*
> + * R3096 (0xC18) - GP Switch 1
> + */
> +#define ARIZONA_SW1_MODE_MASK 0x0003 /* SW1_MODE - [1:0] */
> +#define ARIZONA_SW1_MODE_SHIFT 0 /* SW1_MODE - [1:0] */
> +#define ARIZONA_SW1_MODE_WIDTH 2 /* SW1_MODE - [1:0] */
> +
> +/*
> * R3104 (0xC20) - Misc Pad Ctrl 1
> */
> #define ARIZONA_LDO1ENA_PD 0x8000 /* LDO1ENA_PD */

--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog