Re: [PATCH 21/46] ARM: pxa: spitz: use gpio descriptors for audio

From: Robert Jarzmik
Date: Mon Oct 28 2019 - 17:08:35 EST


Arnd Bergmann <arnd@xxxxxxxx> writes:

> The audio driver should not use a hardwired gpio number
> from the header. Change it to use a lookup table.
>
> Cc: Mark Brown <broonie@xxxxxxxxxx>
> Cc: alsa-devel@xxxxxxxxxxxxxxxx
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> arch/arm/mach-pxa/spitz.c | 33 ++++++++++-
> arch/arm/mach-pxa/{include/mach => }/spitz.h | 2 +-
> arch/arm/mach-pxa/spitz_pm.c | 2 +-
> sound/soc/pxa/spitz.c | 58 ++++++++------------
> 4 files changed, 57 insertions(+), 38 deletions(-)
> rename arch/arm/mach-pxa/{include/mach => }/spitz.h (99%)
>
> diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
> index a4fdc399d152..6028fd83c44d 100644
> --- a/arch/arm/mach-pxa/spitz.c
> +++ b/arch/arm/mach-pxa/spitz.c
> @@ -44,7 +44,7 @@
> #include <linux/platform_data/mmc-pxamci.h>
> #include <linux/platform_data/usb-ohci-pxa27x.h>
> #include <linux/platform_data/video-pxafb.h>
> -#include <mach/spitz.h>
> +#include "spitz.h"
> #include "sharpsl_pm.h"
> #include <mach/smemc.h>
>
> @@ -948,11 +948,42 @@ static void __init spitz_i2c_init(void)
> static inline void spitz_i2c_init(void) {}
> #endif
>
> +static struct gpiod_lookup_table spitz_audio_gpio_table = {
> + .dev_id = "spitz-audio",
> + .table = {
> + GPIO_LOOKUP("sharp-scoop.0", SPITZ_GPIO_MUTE_L - SPITZ_SCP_GPIO_BASE,
> + "mute-l", GPIO_ACTIVE_HIGH),
> + GPIO_LOOKUP("sharp-scoop.0", SPITZ_GPIO_MUTE_R - SPITZ_SCP_GPIO_BASE,
> + "mute-r", GPIO_ACTIVE_HIGH),
> + GPIO_LOOKUP("sharp-scoop.1", SPITZ_GPIO_MIC_BIAS - SPITZ_SCP2_GPIO_BASE,
> + "mic", GPIO_ACTIVE_HIGH),
> + { },
> + },
> +};
> +
> +static struct gpiod_lookup_table akita_audio_gpio_table = {
> + .dev_id = "spitz-audio",
> + .table = {
> + GPIO_LOOKUP("sharp-scoop.0", SPITZ_GPIO_MUTE_L - SPITZ_SCP_GPIO_BASE,
> + "mute-l", GPIO_ACTIVE_HIGH),
> + GPIO_LOOKUP("sharp-scoop.0", SPITZ_GPIO_MUTE_R - SPITZ_SCP_GPIO_BASE,
> + "mute-r", GPIO_ACTIVE_HIGH),
> + GPIO_LOOKUP("gpio-pxa", AKITA_GPIO_MIC_BIAS - AKITA_IOEXP_GPIO_BASE,
> + "mic", GPIO_ACTIVE_HIGH),
This last one looks a bit dubious, as it looks like a gpio on a gpio expander,
could you cross-check that "gpio-pxa" shouldn't be an I2C expander gpio please ?

Cheers.

--
Robert