* [PATCH v2 0/4] Convert Rockchip ASoC drivers to GPIO descriptors
@ 2023-09-28 22:12 Linus Walleij
2023-09-28 22:12 ` [PATCH v2 1/4] ASoC: rockchip: Convert RK3288 HDMI " Linus Walleij
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Linus Walleij @ 2023-09-28 22:12 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
Heiko Stuebner
Cc: alsa-devel, linux-gpio, linux-rockchip, Linus Walleij
The Rockchip drivers are pretty straight-forward to convert
over to using GPIO descriptors.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
Changes in v2:
- Make the GPIOs properly optional in the first patch, preserving the
old semantics of the driver.
- Link to v1: https://lore.kernel.org/r/20230928-descriptors-asoc-rockchip-v1-0-a142a42d4787@linaro.org
---
Linus Walleij (4):
ASoC: rockchip: Convert RK3288 HDMI to GPIO descriptors
ASoC: rockchip: Drop includes from RK3399
ASoC: rockchip: Drop includes from Rockchip MAX98090
ASoC: rockchip: Drop includes from Rockchip RT5645
sound/soc/rockchip/rk3288_hdmi_analog.c | 46 ++++++++++-----------------------
sound/soc/rockchip/rk3399_gru_sound.c | 2 --
sound/soc/rockchip/rockchip_max98090.c | 2 --
sound/soc/rockchip/rockchip_rt5645.c | 2 --
4 files changed, 14 insertions(+), 38 deletions(-)
---
base-commit: 0bb80ecc33a8fb5a682236443c1e740d5c917d1d
change-id: 20230926-descriptors-asoc-rockchip-833a4fbc7c1f
Best regards,
--
Linus Walleij <linus.walleij@linaro.org>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 1/4] ASoC: rockchip: Convert RK3288 HDMI to GPIO descriptors
2023-09-28 22:12 [PATCH v2 0/4] Convert Rockchip ASoC drivers to GPIO descriptors Linus Walleij
@ 2023-09-28 22:12 ` Linus Walleij
2023-09-28 22:12 ` [PATCH v2 2/4] ASoC: rockchip: Drop includes from RK3399 Linus Walleij
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Linus Walleij @ 2023-09-28 22:12 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
Heiko Stuebner
Cc: alsa-devel, linux-gpio, linux-rockchip, Linus Walleij
This converts the Rockchip RK3288 HDMI driver to use GPIO
descriptors:
- Look up the HP EN GPIO as an optional descriptor and handle
it directly, the gpiod API is NULL-tolerant so no special
guards are needed.
- Let the Jack detection core obtain and handle the HP detection
GPIO, just pass the right name and gpiod_dev and it will
do the job. Make sure to check that the GPIO property
is there first, so it becomes optional.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
sound/soc/rockchip/rk3288_hdmi_analog.c | 46 ++++++++++-----------------------
1 file changed, 14 insertions(+), 32 deletions(-)
diff --git a/sound/soc/rockchip/rk3288_hdmi_analog.c b/sound/soc/rockchip/rk3288_hdmi_analog.c
index 0c6bd9a019db..cdb5dfd0d1d4 100644
--- a/sound/soc/rockchip/rk3288_hdmi_analog.c
+++ b/sound/soc/rockchip/rk3288_hdmi_analog.c
@@ -12,8 +12,7 @@
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
-#include <linux/gpio.h>
-#include <linux/of_gpio.h>
+#include <linux/gpio/consumer.h>
#include <sound/core.h>
#include <sound/jack.h>
#include <sound/pcm.h>
@@ -26,8 +25,7 @@
#define DRV_NAME "rk3288-snd-hdmi-analog"
struct rk_drvdata {
- int gpio_hp_en;
- int gpio_hp_det;
+ struct gpio_desc *gpio_hp_en;
};
static int rk_hp_power(struct snd_soc_dapm_widget *w,
@@ -35,11 +33,8 @@ static int rk_hp_power(struct snd_soc_dapm_widget *w,
{
struct rk_drvdata *machine = snd_soc_card_get_drvdata(w->dapm->card);
- if (!gpio_is_valid(machine->gpio_hp_en))
- return 0;
-
- gpio_set_value_cansleep(machine->gpio_hp_en,
- SND_SOC_DAPM_EVENT_ON(event));
+ gpiod_set_value_cansleep(machine->gpio_hp_en,
+ SND_SOC_DAPM_EVENT_ON(event));
return 0;
}
@@ -113,22 +108,23 @@ static int rk_hw_params(struct snd_pcm_substream *substream,
}
static struct snd_soc_jack_gpio rk_hp_jack_gpio = {
- .name = "Headphone detection",
+ .name = "rockchip,hp-det",
.report = SND_JACK_HEADPHONE,
.debounce_time = 150
};
static int rk_init(struct snd_soc_pcm_runtime *runtime)
{
- struct rk_drvdata *machine = snd_soc_card_get_drvdata(runtime->card);
+ struct snd_soc_card *card = runtime->card;
+ struct device *dev = card->dev;
- /* Enable Headset Jack detection */
- if (gpio_is_valid(machine->gpio_hp_det)) {
+ /* Enable optional Headset Jack detection */
+ if (of_property_present(dev->of_node, "rockchip,hp-det-gpios")) {
+ rk_hp_jack_gpio.gpiod_dev = dev;
snd_soc_card_jack_new_pins(runtime->card, "Headphone Jack",
SND_JACK_HEADPHONE, &headphone_jack,
headphone_jack_pins,
ARRAY_SIZE(headphone_jack_pins));
- rk_hp_jack_gpio.gpio = machine->gpio_hp_det;
snd_soc_jack_add_gpios(&headphone_jack, 1, &rk_hp_jack_gpio);
}
@@ -182,24 +178,10 @@ static int snd_rk_mc_probe(struct platform_device *pdev)
card->dev = &pdev->dev;
- machine->gpio_hp_det = of_get_named_gpio(np,
- "rockchip,hp-det-gpios", 0);
- if (!gpio_is_valid(machine->gpio_hp_det) && machine->gpio_hp_det != -ENODEV)
- return machine->gpio_hp_det;
-
- machine->gpio_hp_en = of_get_named_gpio(np,
- "rockchip,hp-en-gpios", 0);
- if (!gpio_is_valid(machine->gpio_hp_en) && machine->gpio_hp_en != -ENODEV)
- return machine->gpio_hp_en;
-
- if (gpio_is_valid(machine->gpio_hp_en)) {
- ret = devm_gpio_request_one(&pdev->dev, machine->gpio_hp_en,
- GPIOF_OUT_INIT_LOW, "hp_en");
- if (ret) {
- dev_err(card->dev, "cannot get hp_en gpio\n");
- return ret;
- }
- }
+ machine->gpio_hp_en = devm_gpiod_get_optional(&pdev->dev, "rockchip,hp-en", GPIOD_OUT_LOW);
+ if (IS_ERR(machine->gpio_hp_en))
+ return PTR_ERR(machine->gpio_hp_en);
+ gpiod_set_consumer_name(machine->gpio_hp_en, "hp_en");
ret = snd_soc_of_parse_card_name(card, "rockchip,model");
if (ret) {
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 2/4] ASoC: rockchip: Drop includes from RK3399
2023-09-28 22:12 [PATCH v2 0/4] Convert Rockchip ASoC drivers to GPIO descriptors Linus Walleij
2023-09-28 22:12 ` [PATCH v2 1/4] ASoC: rockchip: Convert RK3288 HDMI " Linus Walleij
@ 2023-09-28 22:12 ` Linus Walleij
2023-09-28 22:12 ` [PATCH v2 3/4] ASoC: rockchip: Drop includes from Rockchip MAX98090 Linus Walleij
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Linus Walleij @ 2023-09-28 22:12 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
Heiko Stuebner
Cc: alsa-devel, linux-gpio, linux-rockchip, Linus Walleij
The RK3399 ASoC driver includes two legacy GPIO headers but
doesn't use symbols from any of them. Delete the includes.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
sound/soc/rockchip/rk3399_gru_sound.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/sound/soc/rockchip/rk3399_gru_sound.c b/sound/soc/rockchip/rk3399_gru_sound.c
index 0f704d22d21b..a178fcd94d88 100644
--- a/sound/soc/rockchip/rk3399_gru_sound.c
+++ b/sound/soc/rockchip/rk3399_gru_sound.c
@@ -8,8 +8,6 @@
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
-#include <linux/gpio.h>
-#include <linux/of_gpio.h>
#include <linux/delay.h>
#include <linux/spi/spi.h>
#include <linux/i2c.h>
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 3/4] ASoC: rockchip: Drop includes from Rockchip MAX98090
2023-09-28 22:12 [PATCH v2 0/4] Convert Rockchip ASoC drivers to GPIO descriptors Linus Walleij
2023-09-28 22:12 ` [PATCH v2 1/4] ASoC: rockchip: Convert RK3288 HDMI " Linus Walleij
2023-09-28 22:12 ` [PATCH v2 2/4] ASoC: rockchip: Drop includes from RK3399 Linus Walleij
@ 2023-09-28 22:12 ` Linus Walleij
2023-09-28 22:12 ` [PATCH v2 4/4] ASoC: rockchip: Drop includes from Rockchip RT5645 Linus Walleij
2023-10-09 18:36 ` [PATCH v2 0/4] Convert Rockchip ASoC drivers to GPIO descriptors Mark Brown
4 siblings, 0 replies; 6+ messages in thread
From: Linus Walleij @ 2023-09-28 22:12 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
Heiko Stuebner
Cc: alsa-devel, linux-gpio, linux-rockchip, Linus Walleij
The Rockchip MAX98090 ASoC driver includes two legacy GPIO
headers but doesn't use symbols from any of them. Delete
the includes.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
sound/soc/rockchip/rockchip_max98090.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/sound/soc/rockchip/rockchip_max98090.c b/sound/soc/rockchip/rockchip_max98090.c
index 150ac524a590..8e48eb8aa7ad 100644
--- a/sound/soc/rockchip/rockchip_max98090.c
+++ b/sound/soc/rockchip/rockchip_max98090.c
@@ -9,8 +9,6 @@
#include <linux/of_device.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
-#include <linux/gpio.h>
-#include <linux/of_gpio.h>
#include <sound/core.h>
#include <sound/jack.h>
#include <sound/pcm.h>
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 4/4] ASoC: rockchip: Drop includes from Rockchip RT5645
2023-09-28 22:12 [PATCH v2 0/4] Convert Rockchip ASoC drivers to GPIO descriptors Linus Walleij
` (2 preceding siblings ...)
2023-09-28 22:12 ` [PATCH v2 3/4] ASoC: rockchip: Drop includes from Rockchip MAX98090 Linus Walleij
@ 2023-09-28 22:12 ` Linus Walleij
2023-10-09 18:36 ` [PATCH v2 0/4] Convert Rockchip ASoC drivers to GPIO descriptors Mark Brown
4 siblings, 0 replies; 6+ messages in thread
From: Linus Walleij @ 2023-09-28 22:12 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
Heiko Stuebner
Cc: alsa-devel, linux-gpio, linux-rockchip, Linus Walleij
The Rockchip RT5645 ASoC driver includes two legacy GPIO
headers but doesn't use symbols from any of them. Delete
the includes.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
sound/soc/rockchip/rockchip_rt5645.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/sound/soc/rockchip/rockchip_rt5645.c b/sound/soc/rockchip/rockchip_rt5645.c
index ef9fdf0386cb..7d4d3a0ac5fd 100644
--- a/sound/soc/rockchip/rockchip_rt5645.c
+++ b/sound/soc/rockchip/rockchip_rt5645.c
@@ -8,8 +8,6 @@
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
-#include <linux/gpio.h>
-#include <linux/of_gpio.h>
#include <linux/delay.h>
#include <sound/core.h>
#include <sound/jack.h>
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 0/4] Convert Rockchip ASoC drivers to GPIO descriptors
2023-09-28 22:12 [PATCH v2 0/4] Convert Rockchip ASoC drivers to GPIO descriptors Linus Walleij
` (3 preceding siblings ...)
2023-09-28 22:12 ` [PATCH v2 4/4] ASoC: rockchip: Drop includes from Rockchip RT5645 Linus Walleij
@ 2023-10-09 18:36 ` Mark Brown
4 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2023-10-09 18:36 UTC (permalink / raw)
To: Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Heiko Stuebner,
Linus Walleij
Cc: alsa-devel, linux-gpio, linux-rockchip
On Fri, 29 Sep 2023 00:12:53 +0200, Linus Walleij wrote:
> The Rockchip drivers are pretty straight-forward to convert
> over to using GPIO descriptors.
>
>
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/4] ASoC: rockchip: Convert RK3288 HDMI to GPIO descriptors
commit: 15b26d8165b39a07f038fb4d2b67a04c50463eb9
[2/4] ASoC: rockchip: Drop includes from RK3399
commit: 3116dc2e16542d56bd173e90ce1893bed697a830
[3/4] ASoC: rockchip: Drop includes from Rockchip MAX98090
commit: 7214141067922836b48157e8266335096a0ea4ea
[4/4] ASoC: rockchip: Drop includes from Rockchip RT5645
commit: 329b017ccdf80cdcc3550f6caecbf2bc80a67432
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
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-10-09 18:36 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-28 22:12 [PATCH v2 0/4] Convert Rockchip ASoC drivers to GPIO descriptors Linus Walleij
2023-09-28 22:12 ` [PATCH v2 1/4] ASoC: rockchip: Convert RK3288 HDMI " Linus Walleij
2023-09-28 22:12 ` [PATCH v2 2/4] ASoC: rockchip: Drop includes from RK3399 Linus Walleij
2023-09-28 22:12 ` [PATCH v2 3/4] ASoC: rockchip: Drop includes from Rockchip MAX98090 Linus Walleij
2023-09-28 22:12 ` [PATCH v2 4/4] ASoC: rockchip: Drop includes from Rockchip RT5645 Linus Walleij
2023-10-09 18:36 ` [PATCH v2 0/4] Convert Rockchip ASoC drivers to GPIO descriptors 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).