* [PATCH 0/5] GPIO descriptors for TI ASoC codecs
@ 2023-09-26 13:25 Linus Walleij
2023-09-26 13:25 ` [PATCH 1/5] ASoC: ti: Convert N810 ASoC to GPIO descriptors Linus Walleij
` (6 more replies)
0 siblings, 7 replies; 10+ messages in thread
From: Linus Walleij @ 2023-09-26 13:25 UTC (permalink / raw)
To: Tony Lindgren, Peter Ujfalusi, Jarkko Nikula, Liam Girdwood,
Mark Brown, Jaroslav Kysela, Takashi Iwai
Cc: linux-omap, linux-arm-kernel, alsa-devel, Linus Walleij
This cleans up and rewrites the GPIO usage in the TI
ASoC components to use GPIO descriptors exclusively.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
Linus Walleij (5):
ASoC: ti: Convert N810 ASoC to GPIO descriptors
ASoC: ti: Convert RX51 to use exclusively GPIO descriptors
ASoC: ti: Convert TWL4030 to use GPIO descriptors
ASoC: ti: Convert Pandora ASoC to GPIO descriptors
ASoC: ti: osk5912: Drop unused include
arch/arm/mach-omap2/board-n8x0.c | 10 +++++
arch/arm/mach-omap2/pdata-quirks.c | 10 +++++
include/linux/platform_data/omap-twl4030.h | 3 --
sound/soc/ti/n810.c | 31 ++++++++-------
sound/soc/ti/omap-twl4030.c | 20 ++++------
sound/soc/ti/omap3pandora.c | 63 +++++++++++-------------------
sound/soc/ti/osk5912.c | 1 -
sound/soc/ti/rx51.c | 19 ++-------
8 files changed, 72 insertions(+), 85 deletions(-)
---
base-commit: 0bb80ecc33a8fb5a682236443c1e740d5c917d1d
change-id: 20230922-descriptors-asoc-ti-a852eff479ed
Best regards,
--
Linus Walleij <linus.walleij@linaro.org>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/5] ASoC: ti: Convert N810 ASoC to GPIO descriptors
2023-09-26 13:25 [PATCH 0/5] GPIO descriptors for TI ASoC codecs Linus Walleij
@ 2023-09-26 13:25 ` Linus Walleij
2023-09-26 13:25 ` [PATCH 2/5] ASoC: ti: Convert RX51 to use exclusively " Linus Walleij
` (5 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Linus Walleij @ 2023-09-26 13:25 UTC (permalink / raw)
To: Tony Lindgren, Peter Ujfalusi, Jarkko Nikula, Liam Girdwood,
Mark Brown, Jaroslav Kysela, Takashi Iwai
Cc: linux-omap, linux-arm-kernel, alsa-devel, Linus Walleij
The N810 uses GPIO descriptors pretty much exclusively, but not
for ASoC, so let's fix it. Register the pins in a descriptor table
in the machine since the ASoC device is not using device tree.
Use static locals for the GPIO descriptors because I'm not able
to experient with better state storage on any real hardware. Others
using the N810 can come afterwards and improve this.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
arch/arm/mach-omap2/board-n8x0.c | 10 ++++++++++
sound/soc/ti/n810.c | 31 +++++++++++++++++--------------
2 files changed, 27 insertions(+), 14 deletions(-)
diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c
index 8e3b5068d4ab..31755a378c73 100644
--- a/arch/arm/mach-omap2/board-n8x0.c
+++ b/arch/arm/mach-omap2/board-n8x0.c
@@ -498,6 +498,15 @@ struct menelaus_platform_data n8x0_menelaus_platform_data = {
.late_init = n8x0_menelaus_late_init,
};
+static struct gpiod_lookup_table nokia810_asoc_gpio_table = {
+ .dev_id = "soc-audio",
+ .table = {
+ GPIO_LOOKUP("gpio-0-15", 10, "headset", GPIO_ACTIVE_HIGH),
+ GPIO_LOOKUP("gpio-80-111", 21, "speaker", GPIO_ACTIVE_HIGH),
+ { }
+ },
+};
+
static int __init n8x0_late_initcall(void)
{
if (!board_caps)
@@ -505,6 +514,7 @@ static int __init n8x0_late_initcall(void)
n8x0_mmc_init();
n8x0_usb_init();
+ gpiod_add_lookup_table(&nokia810_asoc_gpio_table);
return 0;
}
diff --git a/sound/soc/ti/n810.c b/sound/soc/ti/n810.c
index ed217b34f846..71a2a90bad2b 100644
--- a/sound/soc/ti/n810.c
+++ b/sound/soc/ti/n810.c
@@ -15,14 +15,14 @@
#include <sound/soc.h>
#include <asm/mach-types.h>
-#include <linux/gpio.h>
+#include <linux/gpio/consumer.h>
#include <linux/module.h>
#include <linux/platform_data/asoc-ti-mcbsp.h>
#include "omap-mcbsp.h"
-#define N810_HEADSET_AMP_GPIO 10
-#define N810_SPEAKER_AMP_GPIO 101
+static struct gpio_desc *n810_headset_amp;
+static struct gpio_desc *n810_speaker_amp;
enum {
N810_JACK_DISABLED,
@@ -187,9 +187,9 @@ static int n810_spk_event(struct snd_soc_dapm_widget *w,
struct snd_kcontrol *k, int event)
{
if (SND_SOC_DAPM_EVENT_ON(event))
- gpio_set_value(N810_SPEAKER_AMP_GPIO, 1);
+ gpiod_set_value(n810_speaker_amp, 1);
else
- gpio_set_value(N810_SPEAKER_AMP_GPIO, 0);
+ gpiod_set_value(n810_speaker_amp, 0);
return 0;
}
@@ -198,9 +198,9 @@ static int n810_jack_event(struct snd_soc_dapm_widget *w,
struct snd_kcontrol *k, int event)
{
if (SND_SOC_DAPM_EVENT_ON(event))
- gpio_set_value(N810_HEADSET_AMP_GPIO, 1);
+ gpiod_set_value(n810_headset_amp, 1);
else
- gpio_set_value(N810_HEADSET_AMP_GPIO, 0);
+ gpiod_set_value(n810_headset_amp, 0);
return 0;
}
@@ -327,14 +327,19 @@ static int __init n810_soc_init(void)
clk_set_parent(sys_clkout2_src, func96m_clk);
clk_set_rate(sys_clkout2, 12000000);
- if (WARN_ON((gpio_request(N810_HEADSET_AMP_GPIO, "hs_amp") < 0) ||
- (gpio_request(N810_SPEAKER_AMP_GPIO, "spk_amp") < 0))) {
- err = -EINVAL;
+ n810_headset_amp = devm_gpiod_get(&n810_snd_device->dev,
+ "headphone", GPIOD_OUT_LOW);
+ if (IS_ERR(n810_headset_amp)) {
+ err = PTR_ERR(n810_headset_amp);
goto err4;
}
- gpio_direction_output(N810_HEADSET_AMP_GPIO, 0);
- gpio_direction_output(N810_SPEAKER_AMP_GPIO, 0);
+ n810_speaker_amp = devm_gpiod_get(&n810_snd_device->dev,
+ "speaker", GPIOD_OUT_LOW);
+ if (IS_ERR(n810_speaker_amp)) {
+ err = PTR_ERR(n810_speaker_amp);
+ goto err4;
+ }
return 0;
err4:
@@ -351,8 +356,6 @@ static int __init n810_soc_init(void)
static void __exit n810_soc_exit(void)
{
- gpio_free(N810_SPEAKER_AMP_GPIO);
- gpio_free(N810_HEADSET_AMP_GPIO);
clk_put(sys_clkout2_src);
clk_put(sys_clkout2);
clk_put(func96m_clk);
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/5] ASoC: ti: Convert RX51 to use exclusively GPIO descriptors
2023-09-26 13:25 [PATCH 0/5] GPIO descriptors for TI ASoC codecs Linus Walleij
2023-09-26 13:25 ` [PATCH 1/5] ASoC: ti: Convert N810 ASoC to GPIO descriptors Linus Walleij
@ 2023-09-26 13:25 ` Linus Walleij
2023-10-01 17:48 ` Jarkko Nikula
2023-09-26 13:25 ` [PATCH 3/5] ASoC: ti: Convert TWL4030 to use " Linus Walleij
` (4 subsequent siblings)
6 siblings, 1 reply; 10+ messages in thread
From: Linus Walleij @ 2023-09-26 13:25 UTC (permalink / raw)
To: Tony Lindgren, Peter Ujfalusi, Jarkko Nikula, Liam Girdwood,
Mark Brown, Jaroslav Kysela, Takashi Iwai
Cc: linux-omap, linux-arm-kernel, alsa-devel, Linus Walleij
The RX51/Nokia n900 uses the legacy GPIO header to convert a GPIO
back to the global GPIO numberspace and then the jack using it
in the snd_soc_jack_add_gpios() call immediately looks up the
corresponding descriptor again.
The snd_soc_jack_add_gpios() handles GPIOs passed with devices
just fine: pass in the device instead, and rename the GPIO
to match the property in the device tree, and it should work
all the same but without all the trouble.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
sound/soc/ti/rx51.c | 19 ++++---------------
1 file changed, 4 insertions(+), 15 deletions(-)
diff --git a/sound/soc/ti/rx51.c b/sound/soc/ti/rx51.c
index 322c398d209b..047f852c79a9 100644
--- a/sound/soc/ti/rx51.c
+++ b/sound/soc/ti/rx51.c
@@ -10,7 +10,6 @@
*/
#include <linux/delay.h>
-#include <linux/gpio.h>
#include <linux/platform_device.h>
#include <linux/gpio/consumer.h>
#include <linux/module.h>
@@ -33,7 +32,6 @@ enum {
struct rx51_audio_pdata {
struct gpio_desc *tvout_selection_gpio;
- struct gpio_desc *jack_detection_gpio;
struct gpio_desc *eci_sw_gpio;
struct gpio_desc *speaker_amp_gpio;
};
@@ -198,7 +196,7 @@ static struct snd_soc_jack rx51_av_jack;
static struct snd_soc_jack_gpio rx51_av_jack_gpios[] = {
{
- .name = "avdet-gpio",
+ .name = "jack-detection",
.report = SND_JACK_HEADSET,
.invert = 1,
.debounce_time = 200,
@@ -263,7 +261,6 @@ static const struct snd_kcontrol_new aic34_rx51_controls[] = {
static int rx51_aic34_init(struct snd_soc_pcm_runtime *rtd)
{
struct snd_soc_card *card = rtd->card;
- struct rx51_audio_pdata *pdata = snd_soc_card_get_drvdata(card);
int err;
snd_soc_limit_volume(card, "TPA6130A2 Headphone Playback Volume", 42);
@@ -283,9 +280,9 @@ static int rx51_aic34_init(struct snd_soc_pcm_runtime *rtd)
return err;
}
- /* prepare gpio for snd_soc_jack_add_gpios */
- rx51_av_jack_gpios[0].gpio = desc_to_gpio(pdata->jack_detection_gpio);
- devm_gpiod_put(card->dev, pdata->jack_detection_gpio);
+ rx51_av_jack_gpios[0].gpiod_dev = card->dev;
+ /* Name is assigned in the struct */
+ rx51_av_jack_gpios[0].idx = 0;
err = snd_soc_jack_add_gpios(&rx51_av_jack,
ARRAY_SIZE(rx51_av_jack_gpios),
@@ -425,14 +422,6 @@ static int rx51_soc_probe(struct platform_device *pdev)
return PTR_ERR(pdata->tvout_selection_gpio);
}
- pdata->jack_detection_gpio = devm_gpiod_get(card->dev,
- "jack-detection",
- GPIOD_ASIS);
- if (IS_ERR(pdata->jack_detection_gpio)) {
- dev_err(card->dev, "could not get jack detection gpio\n");
- return PTR_ERR(pdata->jack_detection_gpio);
- }
-
pdata->eci_sw_gpio = devm_gpiod_get(card->dev, "eci-switch",
GPIOD_OUT_HIGH);
if (IS_ERR(pdata->eci_sw_gpio)) {
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/5] ASoC: ti: Convert TWL4030 to use GPIO descriptors
2023-09-26 13:25 [PATCH 0/5] GPIO descriptors for TI ASoC codecs Linus Walleij
2023-09-26 13:25 ` [PATCH 1/5] ASoC: ti: Convert N810 ASoC to GPIO descriptors Linus Walleij
2023-09-26 13:25 ` [PATCH 2/5] ASoC: ti: Convert RX51 to use exclusively " Linus Walleij
@ 2023-09-26 13:25 ` Linus Walleij
2023-09-26 13:25 ` [PATCH 4/5] ASoC: ti: Convert Pandora ASoC to " Linus Walleij
` (3 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Linus Walleij @ 2023-09-26 13:25 UTC (permalink / raw)
To: Tony Lindgren, Peter Ujfalusi, Jarkko Nikula, Liam Girdwood,
Mark Brown, Jaroslav Kysela, Takashi Iwai
Cc: linux-omap, linux-arm-kernel, alsa-devel, Linus Walleij
The TWL4030 is actually only ever populated from the device tree,
so we can just pass the right device and headphone jack GPIO name
to snd_soc_jack_add_gpios() and it will pick the right GPIO right
from the device tree.
The platform data patch is unused (no in-tree users of the pdata
method) but these can use GPIO descriptor tables rather than global
GPIO numbers if they need this.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
include/linux/platform_data/omap-twl4030.h | 3 ---
sound/soc/ti/omap-twl4030.c | 20 ++++++++------------
2 files changed, 8 insertions(+), 15 deletions(-)
diff --git a/include/linux/platform_data/omap-twl4030.h b/include/linux/platform_data/omap-twl4030.h
index 0dd851ea1c72..7fcb55fe21c9 100644
--- a/include/linux/platform_data/omap-twl4030.h
+++ b/include/linux/platform_data/omap-twl4030.h
@@ -37,9 +37,6 @@ struct omap_tw4030_pdata {
bool has_digimic0;
bool has_digimic1;
u8 has_linein;
-
- /* Jack detect GPIO or <= 0 if it is not implemented */
- int jack_detect;
};
#endif /* _OMAP_TWL4030_H_ */
diff --git a/sound/soc/ti/omap-twl4030.c b/sound/soc/ti/omap-twl4030.c
index 950eec44503b..c7055bb424e6 100644
--- a/sound/soc/ti/omap-twl4030.c
+++ b/sound/soc/ti/omap-twl4030.c
@@ -20,8 +20,6 @@
#include <linux/platform_data/omap-twl4030.h>
#include <linux/module.h>
#include <linux/of.h>
-#include <linux/gpio.h>
-#include <linux/of_gpio.h>
#include <sound/core.h>
#include <sound/pcm.h>
@@ -31,7 +29,6 @@
#include "omap-mcbsp.h"
struct omap_twl4030 {
- int jack_detect; /* board can detect jack events */
struct snd_soc_jack hs_jack;
};
@@ -130,7 +127,7 @@ static struct snd_soc_jack_pin hs_jack_pins[] = {
/* Headset jack detection gpios */
static struct snd_soc_jack_gpio hs_jack_gpios[] = {
{
- .name = "hsdet-gpio",
+ .name = "ti,jack-det",
.report = SND_JACK_HEADSET,
.debounce_time = 200,
},
@@ -151,9 +148,13 @@ static int omap_twl4030_init(struct snd_soc_pcm_runtime *rtd)
struct omap_twl4030 *priv = snd_soc_card_get_drvdata(card);
int ret = 0;
- /* Headset jack detection only if it is supported */
- if (priv->jack_detect > 0) {
- hs_jack_gpios[0].gpio = priv->jack_detect;
+ /*
+ * This is a bit of a hack, but the GPIO is optional so we
+ * only want to add the jack detection if the GPIO is there.
+ */
+ if (of_property_present(card->dev->of_node, "ti,jack-det-gpio")) {
+ hs_jack_gpios[0].gpiod_dev = card->dev;
+ hs_jack_gpios[0].idx = 0;
ret = snd_soc_card_jack_new_pins(rtd->card, "Headset Jack",
SND_JACK_HEADSET,
@@ -279,9 +280,6 @@ static int omap_twl4030_probe(struct platform_device *pdev)
omap_twl4030_dai_links[1].platforms->of_node = dai_node;
}
- priv->jack_detect = of_get_named_gpio(node,
- "ti,jack-det-gpio", 0);
-
/* Optional: audio routing can be provided */
prop = of_find_property(node, "ti,audio-routing", NULL);
if (prop) {
@@ -302,8 +300,6 @@ static int omap_twl4030_probe(struct platform_device *pdev)
if (!pdata->voice_connected)
card->num_links = 1;
-
- priv->jack_detect = pdata->jack_detect;
} else {
dev_err(&pdev->dev, "Missing pdata\n");
return -ENODEV;
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 4/5] ASoC: ti: Convert Pandora ASoC to GPIO descriptors
2023-09-26 13:25 [PATCH 0/5] GPIO descriptors for TI ASoC codecs Linus Walleij
` (2 preceding siblings ...)
2023-09-26 13:25 ` [PATCH 3/5] ASoC: ti: Convert TWL4030 to use " Linus Walleij
@ 2023-09-26 13:25 ` Linus Walleij
2023-09-26 13:25 ` [PATCH 5/5] ASoC: ti: osk5912: Drop unused include Linus Walleij
` (2 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Linus Walleij @ 2023-09-26 13:25 UTC (permalink / raw)
To: Tony Lindgren, Peter Ujfalusi, Jarkko Nikula, Liam Girdwood,
Mark Brown, Jaroslav Kysela, Takashi Iwai
Cc: linux-omap, linux-arm-kernel, alsa-devel, Linus Walleij
The Pandora uses GPIO descriptors pretty much exclusively, but not
for ASoC, so let's fix it. Register the pins in a descriptor table
in the machine since the ASoC device is not using device tree.
Use static locals for the GPIO descriptors because I'm not able
to experient with better state storage on any real hardware. Others
using the Pandora can come afterwards and improve this.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
arch/arm/mach-omap2/pdata-quirks.c | 10 ++++++
sound/soc/ti/omap3pandora.c | 63 ++++++++++++++------------------------
2 files changed, 33 insertions(+), 40 deletions(-)
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
index c1c0121f478d..b947bacf23a3 100644
--- a/arch/arm/mach-omap2/pdata-quirks.c
+++ b/arch/arm/mach-omap2/pdata-quirks.c
@@ -275,9 +275,19 @@ static struct platform_device pandora_backlight = {
.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 */
diff --git a/sound/soc/ti/omap3pandora.c b/sound/soc/ti/omap3pandora.c
index a287e9747c2a..fa92ed97dfe3 100644
--- 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.h>
+#include <linux/gpio/consumer.h>
#include <linux/delay.h>
#include <linux/regulator/consumer.h>
#include <linux/module.h>
@@ -21,12 +21,11 @@
#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)
@@ -78,9 +77,9 @@ static int omap3pandora_dac_event(struct snd_soc_dapm_widget *w,
return ret;
}
mdelay(1);
- gpio_set_value(OMAP3_PANDORA_DAC_POWER_GPIO, 1);
+ gpiod_set_value(dac_power_gpio, 1);
} else {
- gpio_set_value(OMAP3_PANDORA_DAC_POWER_GPIO, 0);
+ gpiod_set_value(dac_power_gpio, 0);
mdelay(1);
regulator_disable(omap3pandora_dac_reg);
}
@@ -92,9 +91,9 @@ static int omap3pandora_hp_event(struct snd_soc_dapm_widget *w,
struct snd_kcontrol *k, int event)
{
if (SND_SOC_DAPM_EVENT_ON(event))
- gpio_set_value(OMAP3_PANDORA_AMP_POWER_GPIO, 1);
+ gpiod_set_value(amp_power_gpio, 1);
else
- gpio_set_value(OMAP3_PANDORA_AMP_POWER_GPIO, 0);
+ gpiod_set_value(amp_power_gpio, 0);
return 0;
}
@@ -229,35 +228,10 @@ static int __init omap3pandora_soc_init(void)
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");
- ret = -ENOMEM;
- goto fail1;
+ return -ENOMEM;
}
platform_set_drvdata(omap3pandora_snd_device, &snd_soc_card_omap3pandora);
@@ -268,6 +242,20 @@ static int __init omap3pandora_soc_init(void)
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",
@@ -283,10 +271,7 @@ static int __init omap3pandora_soc_init(void)
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);
@@ -295,8 +280,6 @@ static void __exit omap3pandora_soc_exit(void)
{
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);
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 5/5] ASoC: ti: osk5912: Drop unused include
2023-09-26 13:25 [PATCH 0/5] GPIO descriptors for TI ASoC codecs Linus Walleij
` (3 preceding siblings ...)
2023-09-26 13:25 ` [PATCH 4/5] ASoC: ti: Convert Pandora ASoC to " Linus Walleij
@ 2023-09-26 13:25 ` Linus Walleij
2023-10-01 17:49 ` [PATCH 0/5] GPIO descriptors for TI ASoC codecs Jarkko Nikula
2023-10-02 16:04 ` Mark Brown
6 siblings, 0 replies; 10+ messages in thread
From: Linus Walleij @ 2023-09-26 13:25 UTC (permalink / raw)
To: Tony Lindgren, Peter Ujfalusi, Jarkko Nikula, Liam Girdwood,
Mark Brown, Jaroslav Kysela, Takashi Iwai
Cc: linux-omap, linux-arm-kernel, alsa-devel, Linus Walleij
This driver includes the legacy header <linux/gpio.h> but doesn't
use it. Drop the include.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
sound/soc/ti/osk5912.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/sound/soc/ti/osk5912.c b/sound/soc/ti/osk5912.c
index 2790c8915f55..12f0c3a15201 100644
--- a/sound/soc/ti/osk5912.c
+++ b/sound/soc/ti/osk5912.c
@@ -14,7 +14,6 @@
#include <sound/soc.h>
#include <asm/mach-types.h>
-#include <linux/gpio.h>
#include <linux/module.h>
#include <linux/platform_data/asoc-ti-mcbsp.h>
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 2/5] ASoC: ti: Convert RX51 to use exclusively GPIO descriptors
2023-09-26 13:25 ` [PATCH 2/5] ASoC: ti: Convert RX51 to use exclusively " Linus Walleij
@ 2023-10-01 17:48 ` Jarkko Nikula
0 siblings, 0 replies; 10+ messages in thread
From: Jarkko Nikula @ 2023-10-01 17:48 UTC (permalink / raw)
To: Linus Walleij, Tony Lindgren, Peter Ujfalusi, Liam Girdwood,
Mark Brown, Jaroslav Kysela, Takashi Iwai
Cc: linux-omap, linux-arm-kernel, alsa-devel
On 9/26/23 16:25, Linus Walleij wrote:
> The RX51/Nokia n900 uses the legacy GPIO header to convert a GPIO
> back to the global GPIO numberspace and then the jack using it
> in the snd_soc_jack_add_gpios() call immediately looks up the
> corresponding descriptor again.
>
> The snd_soc_jack_add_gpios() handles GPIOs passed with devices
> just fine: pass in the device instead, and rename the GPIO
> to match the property in the device tree, and it should work
> all the same but without all the trouble.
>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
Tested-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/5] GPIO descriptors for TI ASoC codecs
2023-09-26 13:25 [PATCH 0/5] GPIO descriptors for TI ASoC codecs Linus Walleij
` (4 preceding siblings ...)
2023-09-26 13:25 ` [PATCH 5/5] ASoC: ti: osk5912: Drop unused include Linus Walleij
@ 2023-10-01 17:49 ` Jarkko Nikula
2023-10-02 11:45 ` Mark Brown
2023-10-02 16:04 ` Mark Brown
6 siblings, 1 reply; 10+ messages in thread
From: Jarkko Nikula @ 2023-10-01 17:49 UTC (permalink / raw)
To: Linus Walleij, Tony Lindgren, Peter Ujfalusi, Liam Girdwood,
Mark Brown, Jaroslav Kysela, Takashi Iwai
Cc: linux-omap, linux-arm-kernel, alsa-devel
On 9/26/23 16:25, Linus Walleij wrote:
> This cleans up and rewrites the GPIO usage in the TI
> ASoC components to use GPIO descriptors exclusively.
>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> Linus Walleij (5):
> ASoC: ti: Convert N810 ASoC to GPIO descriptors
> ASoC: ti: Convert RX51 to use exclusively GPIO descriptors
> ASoC: ti: Convert TWL4030 to use GPIO descriptors
> ASoC: ti: Convert Pandora ASoC to GPIO descriptors
> ASoC: ti: osk5912: Drop unused include
>
> arch/arm/mach-omap2/board-n8x0.c | 10 +++++
> arch/arm/mach-omap2/pdata-quirks.c | 10 +++++
> include/linux/platform_data/omap-twl4030.h | 3 --
> sound/soc/ti/n810.c | 31 ++++++++-------
> sound/soc/ti/omap-twl4030.c | 20 ++++------
> sound/soc/ti/omap3pandora.c | 63 +++++++++++-------------------
> sound/soc/ti/osk5912.c | 1 -
> sound/soc/ti/rx51.c | 19 ++-------
> 8 files changed, 72 insertions(+), 85 deletions(-)
To whole set (for sound/soc/ti/):
Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
And to 2/5:
Tested-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/5] GPIO descriptors for TI ASoC codecs
2023-10-01 17:49 ` [PATCH 0/5] GPIO descriptors for TI ASoC codecs Jarkko Nikula
@ 2023-10-02 11:45 ` Mark Brown
0 siblings, 0 replies; 10+ messages in thread
From: Mark Brown @ 2023-10-02 11:45 UTC (permalink / raw)
To: Jarkko Nikula
Cc: Linus Walleij, Tony Lindgren, Peter Ujfalusi, Liam Girdwood,
Jaroslav Kysela, Takashi Iwai, linux-omap, linux-arm-kernel,
alsa-devel
[-- Attachment #1.1: Type: text/plain, Size: 322 bytes --]
On Sun, Oct 01, 2023 at 08:49:12PM +0300, Jarkko Nikula wrote:
> And to 2/5:
> Tested-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Sending this on the cover letter in addition to the patch itself (which
you also did) confuses tooling since it can't read the words you wrote
and think the tag applies to all the patches.
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
[-- Attachment #2: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/5] GPIO descriptors for TI ASoC codecs
2023-09-26 13:25 [PATCH 0/5] GPIO descriptors for TI ASoC codecs Linus Walleij
` (5 preceding siblings ...)
2023-10-01 17:49 ` [PATCH 0/5] GPIO descriptors for TI ASoC codecs Jarkko Nikula
@ 2023-10-02 16:04 ` Mark Brown
6 siblings, 0 replies; 10+ messages in thread
From: Mark Brown @ 2023-10-02 16:04 UTC (permalink / raw)
To: Tony Lindgren, Peter Ujfalusi, Jarkko Nikula, Liam Girdwood,
Jaroslav Kysela, Takashi Iwai, Linus Walleij
Cc: linux-omap, linux-arm-kernel, alsa-devel
On Tue, 26 Sep 2023 15:25:28 +0200, Linus Walleij wrote:
> This cleans up and rewrites the GPIO usage in the TI
> ASoC components to use GPIO descriptors exclusively.
>
>
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/5] ASoC: ti: Convert N810 ASoC to GPIO descriptors
commit: 22041ed154aaf89f31306014a305dde516c308ea
[2/5] ASoC: ti: Convert RX51 to use exclusively GPIO descriptors
commit: 5b12dd84499a74be9d133e020e424025359a244f
[3/5] ASoC: ti: Convert TWL4030 to use GPIO descriptors
commit: 1b8a62937e0b23c41956feec778ca7776a01df48
[4/5] ASoC: ti: Convert Pandora ASoC to GPIO descriptors
commit: 319e6ac143b9e9048e527ab9dd2aabb8fdf3d60f
[5/5] ASoC: ti: osk5912: Drop unused include
commit: 67ebde42034ec8d199ec7877efed4bd08eb0c5e0
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2023-10-02 16:04 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-26 13:25 [PATCH 0/5] GPIO descriptors for TI ASoC codecs Linus Walleij
2023-09-26 13:25 ` [PATCH 1/5] ASoC: ti: Convert N810 ASoC to GPIO descriptors Linus Walleij
2023-09-26 13:25 ` [PATCH 2/5] ASoC: ti: Convert RX51 to use exclusively " Linus Walleij
2023-10-01 17:48 ` Jarkko Nikula
2023-09-26 13:25 ` [PATCH 3/5] ASoC: ti: Convert TWL4030 to use " Linus Walleij
2023-09-26 13:25 ` [PATCH 4/5] ASoC: ti: Convert Pandora ASoC to " Linus Walleij
2023-09-26 13:25 ` [PATCH 5/5] ASoC: ti: osk5912: Drop unused include Linus Walleij
2023-10-01 17:49 ` [PATCH 0/5] GPIO descriptors for TI ASoC codecs Jarkko Nikula
2023-10-02 11:45 ` Mark Brown
2023-10-02 16:04 ` Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).