]> git.ipfire.org Git - people/ms/linux.git/commitdiff
ARM: pxa: z2: use gpio lookup for audio device
authorArnd Bergmann <arnd@arndb.de>
Tue, 17 Sep 2019 12:40:58 +0000 (14:40 +0200)
committerArnd Bergmann <arnd@arndb.de>
Sat, 7 May 2022 20:55:48 +0000 (22:55 +0200)
The audio device is allocated by the audio driver, and it uses a gpio
number from the mach/z2.h header file.

Change it to use a gpio lookup table for the device allocated by the
driver to keep the header file local to the machine.

Acked-by: Mark Brown <broonie@kernel.org>
Cc: alsa-devel@alsa-project.org
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/arm/mach-pxa/z2.c
sound/soc/pxa/z2.c

index 7eaeda2699270184127060189f6da0ddd5b0ea66..bb854e903c8f35ad0b1149dd7dd31fc090e02a1c 100644 (file)
@@ -651,6 +651,15 @@ static void __init z2_spi_init(void)
 static inline void z2_spi_init(void) {}
 #endif
 
+static struct gpiod_lookup_table z2_audio_gpio_table = {
+       .dev_id = "soc-audio",
+       .table = {
+               GPIO_LOOKUP("gpio-pxa", GPIO37_ZIPITZ2_HEADSET_DETECT,
+                           "hsdet-gpio", GPIO_ACTIVE_HIGH),
+               { },
+       },
+};
+
 /******************************************************************************
  * Core power regulator
  ******************************************************************************/
@@ -755,6 +764,8 @@ static void __init z2_init(void)
        z2_keys_init();
        z2_pmic_init();
 
+       gpiod_add_lookup_table(&z2_audio_gpio_table);
+
        pm_power_off = z2_power_off;
 }
 
index dc6c48e4738b3fbbeb339bcfa28359128ec50cd2..7f1c6bc69510769dcd849f6c2f6bc37d8c31f736 100644 (file)
@@ -13,7 +13,7 @@
 #include <linux/timer.h>
 #include <linux/interrupt.h>
 #include <linux/platform_device.h>
-#include <linux/gpio.h>
+#include <linux/gpio/consumer.h>
 
 #include <sound/core.h>
 #include <sound/pcm.h>
@@ -22,7 +22,6 @@
 
 #include <asm/mach-types.h>
 #include <linux/platform_data/asoc-pxa.h>
-#include <mach/z2.h>
 
 #include "../codecs/wm8750.h"
 #include "pxa2xx-i2s.h"
@@ -89,7 +88,6 @@ static struct snd_soc_jack_pin hs_jack_pins[] = {
 /* Headset jack detection gpios */
 static struct snd_soc_jack_gpio hs_jack_gpios[] = {
        {
-               .gpio           = GPIO37_ZIPITZ2_HEADSET_DETECT,
                .name           = "hsdet-gpio",
                .report         = SND_JACK_HEADSET,
                .debounce_time  = 200,
@@ -195,6 +193,7 @@ static int __init z2_init(void)
        if (!z2_snd_device)
                return -ENOMEM;
 
+       hs_jack_gpios[0].gpiod_dev = &z2_snd_device->dev;
        platform_set_drvdata(z2_snd_device, &snd_soc_z2);
        ret = platform_device_add(z2_snd_device);