ASoC: fsl: imx-es8328: Switch to using gpiod API
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 18 Mar 2024 20:07:56 +0000 (22:07 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 25 Mar 2024 14:18:35 +0000 (14:18 +0000)
This updates the driver to gpiod API, and removes yet another use of
of_get_named_gpio().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://msgid.link/r/20240318200804.181516-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/imx-es8328.c

index 6f0d031c1d5fd7a16edccfbc0ab81e881dbc85d1..d67b8a149bfff0455b813dd5662c323a9ffdd723 100644 (file)
@@ -3,7 +3,7 @@
 // Copyright 2012 Freescale Semiconductor, Inc.
 // Copyright 2012 Linaro Ltd.
 
-#include <linux/gpio.h>
+#include <linux/gpio/consumer.h>
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/of_platform.h>
@@ -23,7 +23,7 @@ struct imx_es8328_data {
        struct snd_soc_card card;
        char codec_dai_name[DAI_NAME_SIZE];
        char platform_name[DAI_NAME_SIZE];
-       int jack_gpio;
+       struct gpio_desc *jack_gpiod;
 };
 
 static struct snd_soc_jack_gpio headset_jack_gpios[] = {
@@ -54,8 +54,8 @@ static int imx_es8328_dai_init(struct snd_soc_pcm_runtime *rtd)
                                        struct imx_es8328_data, card);
        int ret = 0;
 
-       /* Headphone jack detection */
-       if (gpio_is_valid(data->jack_gpio)) {
+       if (data->jack_gpiod) {
+               /* Headphone jack detection */
                ret = snd_soc_card_jack_new_pins(rtd->card, "Headphone",
                                                 SND_JACK_HEADSET | SND_JACK_BTN_0,
                                                 &headset_jack,
@@ -64,7 +64,7 @@ static int imx_es8328_dai_init(struct snd_soc_pcm_runtime *rtd)
                if (ret)
                        return ret;
 
-               headset_jack_gpios[0].gpio = data->jack_gpio;
+               headset_jack_gpios[0].desc = data->jack_gpiod;
                ret = snd_soc_jack_add_gpios(&headset_jack,
                                             ARRAY_SIZE(headset_jack_gpios),
                                             headset_jack_gpios);
@@ -174,7 +174,11 @@ static int imx_es8328_probe(struct platform_device *pdev)
 
        data->dev = dev;
 
-       data->jack_gpio = of_get_named_gpio(pdev->dev.of_node, "jack-gpio", 0);
+       data->jack_gpiod = devm_gpiod_get_optional(dev, "jack", GPIOD_IN);
+       if (IS_ERR(data->jack_gpiod)) {
+               ret = PTR_ERR(data->jack_gpiod);
+               goto put_device;
+       }
 
        /*
         * CPU == Platform