--- /dev/null
+From 8e977ba87ff38f177906272496e6d10dbc9cc0c5 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Mon, 29 Apr 2024 12:21:58 +0200
+Subject: Revert "ASoC: ti: Convert Pandora ASoC to GPIO descriptors"
+
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+This reverts commit 0f4048e1a0c6e9d3d31ce5b684600fd137cebfca which is
+commit 319e6ac143b9e9048e527ab9dd2aabb8fdf3d60f upstream.
+
+It breaks the 6.1.y build, so needs to be reverted.
+
+Cc: Linus Walleij <linus.walleij@linaro.org>
+Cc: Jarkko Nikula <jarkko.nikula@bitmer.com>
+Cc: Mark Brown <broonie@kernel.org>
+Cc: Sasha Levin <sashal@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/arm/mach-omap2/pdata-quirks.c | 10 -----
+ sound/soc/ti/omap3pandora.c | 63 +++++++++++++++++++++++--------------
+ 2 files changed, 40 insertions(+), 33 deletions(-)
+
+--- a/arch/arm/mach-omap2/pdata-quirks.c
++++ b/arch/arm/mach-omap2/pdata-quirks.c
+@@ -257,19 +257,9 @@ static struct platform_device pandora_ba
+ .id = -1,
+ };
+
+-static struct gpiod_lookup_table pandora_soc_audio_gpios = {
+- .dev_id = "soc-audio",
+- .table = {
+- GPIO_LOOKUP("gpio-112-127", 6, "dac", GPIO_ACTIVE_HIGH),
+- GPIO_LOOKUP("gpio-0-15", 14, "amp", GPIO_ACTIVE_HIGH),
+- { }
+- },
+-};
+-
+ static void __init omap3_pandora_legacy_init(void)
+ {
+ platform_device_register(&pandora_backlight);
+- gpiod_add_lookup_table(&pandora_soc_audio_gpios);
+ }
+ #endif /* CONFIG_ARCH_OMAP3 */
+
+--- a/sound/soc/ti/omap3pandora.c
++++ b/sound/soc/ti/omap3pandora.c
+@@ -7,7 +7,7 @@
+
+ #include <linux/clk.h>
+ #include <linux/platform_device.h>
+-#include <linux/gpio/consumer.h>
++#include <linux/gpio.h>
+ #include <linux/delay.h>
+ #include <linux/regulator/consumer.h>
+ #include <linux/module.h>
+@@ -21,11 +21,12 @@
+
+ #include "omap-mcbsp.h"
+
++#define OMAP3_PANDORA_DAC_POWER_GPIO 118
++#define OMAP3_PANDORA_AMP_POWER_GPIO 14
++
+ #define PREFIX "ASoC omap3pandora: "
+
+ static struct regulator *omap3pandora_dac_reg;
+-static struct gpio_desc *dac_power_gpio;
+-static struct gpio_desc *amp_power_gpio;
+
+ static int omap3pandora_hw_params(struct snd_pcm_substream *substream,
+ struct snd_pcm_hw_params *params)
+@@ -77,9 +78,9 @@ static int omap3pandora_dac_event(struct
+ return ret;
+ }
+ mdelay(1);
+- gpiod_set_value(dac_power_gpio, 1);
++ gpio_set_value(OMAP3_PANDORA_DAC_POWER_GPIO, 1);
+ } else {
+- gpiod_set_value(dac_power_gpio, 0);
++ gpio_set_value(OMAP3_PANDORA_DAC_POWER_GPIO, 0);
+ mdelay(1);
+ regulator_disable(omap3pandora_dac_reg);
+ }
+@@ -91,9 +92,9 @@ static int omap3pandora_hp_event(struct
+ struct snd_kcontrol *k, int event)
+ {
+ if (SND_SOC_DAPM_EVENT_ON(event))
+- gpiod_set_value(amp_power_gpio, 1);
++ gpio_set_value(OMAP3_PANDORA_AMP_POWER_GPIO, 1);
+ else
+- gpiod_set_value(amp_power_gpio, 0);
++ gpio_set_value(OMAP3_PANDORA_AMP_POWER_GPIO, 0);
+
+ return 0;
+ }
+@@ -228,10 +229,35 @@ static int __init omap3pandora_soc_init(
+
+ pr_info("OMAP3 Pandora SoC init\n");
+
++ ret = gpio_request(OMAP3_PANDORA_DAC_POWER_GPIO, "dac_power");
++ if (ret) {
++ pr_err(PREFIX "Failed to get DAC power GPIO\n");
++ return ret;
++ }
++
++ ret = gpio_direction_output(OMAP3_PANDORA_DAC_POWER_GPIO, 0);
++ if (ret) {
++ pr_err(PREFIX "Failed to set DAC power GPIO direction\n");
++ goto fail0;
++ }
++
++ ret = gpio_request(OMAP3_PANDORA_AMP_POWER_GPIO, "amp_power");
++ if (ret) {
++ pr_err(PREFIX "Failed to get amp power GPIO\n");
++ goto fail0;
++ }
++
++ ret = gpio_direction_output(OMAP3_PANDORA_AMP_POWER_GPIO, 0);
++ if (ret) {
++ pr_err(PREFIX "Failed to set amp power GPIO direction\n");
++ goto fail1;
++ }
++
+ omap3pandora_snd_device = platform_device_alloc("soc-audio", -1);
+ if (omap3pandora_snd_device == NULL) {
+ pr_err(PREFIX "Platform device allocation failed\n");
+- return -ENOMEM;
++ ret = -ENOMEM;
++ goto fail1;
+ }
+
+ platform_set_drvdata(omap3pandora_snd_device, &snd_soc_card_omap3pandora);
+@@ -242,20 +268,6 @@ static int __init omap3pandora_soc_init(
+ goto fail2;
+ }
+
+- dac_power_gpio = devm_gpiod_get(&omap3pandora_snd_device->dev,
+- "dac", GPIOD_OUT_LOW);
+- if (IS_ERR(dac_power_gpio)) {
+- ret = PTR_ERR(dac_power_gpio);
+- goto fail3;
+- }
+-
+- amp_power_gpio = devm_gpiod_get(&omap3pandora_snd_device->dev,
+- "amp", GPIOD_OUT_LOW);
+- if (IS_ERR(amp_power_gpio)) {
+- ret = PTR_ERR(amp_power_gpio);
+- goto fail3;
+- }
+-
+ omap3pandora_dac_reg = regulator_get(&omap3pandora_snd_device->dev, "vcc");
+ if (IS_ERR(omap3pandora_dac_reg)) {
+ pr_err(PREFIX "Failed to get DAC regulator from %s: %ld\n",
+@@ -271,7 +283,10 @@ fail3:
+ platform_device_del(omap3pandora_snd_device);
+ fail2:
+ platform_device_put(omap3pandora_snd_device);
+-
++fail1:
++ gpio_free(OMAP3_PANDORA_AMP_POWER_GPIO);
++fail0:
++ gpio_free(OMAP3_PANDORA_DAC_POWER_GPIO);
+ return ret;
+ }
+ module_init(omap3pandora_soc_init);
+@@ -280,6 +295,8 @@ static void __exit omap3pandora_soc_exit
+ {
+ regulator_put(omap3pandora_dac_reg);
+ platform_device_unregister(omap3pandora_snd_device);
++ gpio_free(OMAP3_PANDORA_AMP_POWER_GPIO);
++ gpio_free(OMAP3_PANDORA_DAC_POWER_GPIO);
+ }
+ module_exit(omap3pandora_soc_exit);
+