[1/8] gpiolib: of: Add quirk for mt2701-cs42448 ASoC sound

Message ID 20231006-descriptors-asoc-mediatek-v1-1-07fe79f337f5@linaro.org
State New
Headers
Series Convert Mediatek ASoC codecs to use GPIO descriptors |

Commit Message

Linus Walleij Oct. 6, 2023, 1:46 p.m. UTC
  These gpio names are due to old DT bindings not following the
"-gpio"/"-gpios" conventions. Handle it using a quirk so the
driver can just look up the GPIOs.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/gpio/gpiolib-of.c | 4 ++++
 1 file changed, 4 insertions(+)
  

Comments

Bartosz Golaszewski Oct. 9, 2023, 7:09 a.m. UTC | #1
On Fri, Oct 6, 2023 at 3:46 PM Linus Walleij <linus.walleij@linaro.org> wrote:
>
> These gpio names are due to old DT bindings not following the
> "-gpio"/"-gpios" conventions. Handle it using a quirk so the
> driver can just look up the GPIOs.
>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
>  drivers/gpio/gpiolib-of.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c
> index 531faabead0f..d9525d95e818 100644
> --- a/drivers/gpio/gpiolib-of.c
> +++ b/drivers/gpio/gpiolib-of.c
> @@ -512,6 +512,10 @@ static struct gpio_desc *of_find_gpio_rename(struct device_node *np,
>  #if IS_ENABLED(CONFIG_SND_SOC_CS42L56)
>                 { "reset",      "cirrus,gpio-nreset",   "cirrus,cs42l56" },
>  #endif
> +#if IS_ENABLED(CONFIG_SND_SOC_MT2701_CS42448)
> +               { "i2s1-in-sel-gpio1",  NULL,   "mediatek,mt2701-cs42448-machine" },
> +               { "i2s1-in-sel-gpio2",  NULL,   "mediatek,mt2701-cs42448-machine" },
> +#endif
>  #if IS_ENABLED(CONFIG_SND_SOC_TLV320AIC3X)
>                 { "reset",      "gpio-reset",   "ti,tlv320aic3x" },
>                 { "reset",      "gpio-reset",   "ti,tlv320aic33" },
>
> --
> 2.34.1
>

I suppose this is a run-time dependency only for the other patches?
Can I just pick it up into my tree?

Bart
  
Linus Walleij Oct. 9, 2023, 7:33 a.m. UTC | #2
On Mon, Oct 9, 2023 at 9:09 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:

> > +#if IS_ENABLED(CONFIG_SND_SOC_MT2701_CS42448)
> > +               { "i2s1-in-sel-gpio1",  NULL,   "mediatek,mt2701-cs42448-machine" },
> > +               { "i2s1-in-sel-gpio2",  NULL,   "mediatek,mt2701-cs42448-machine" },
> > +#endif
>
> I suppose this is a run-time dependency only for the other patches?
> Can I just pick it up into my tree?

You can, I was just thinking about bisectability and the low risk of collisions
with other patches. (Actually no-one gets hurt if it's applied to both trees
either, which IMO is perfectly fine in cases like this.)

Yours,
Linus Walleij
  
AngeloGioacchino Del Regno Oct. 9, 2023, 8:51 a.m. UTC | #3
Il 06/10/23 15:46, Linus Walleij ha scritto:
> These gpio names are due to old DT bindings not following the
> "-gpio"/"-gpios" conventions. Handle it using a quirk so the
> driver can just look up the GPIOs.
> 
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
  
Bartosz Golaszewski Oct. 9, 2023, 12:57 p.m. UTC | #4
On Mon, Oct 9, 2023 at 9:33 AM Linus Walleij <linus.walleij@linaro.org> wrote:
>
> On Mon, Oct 9, 2023 at 9:09 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>
> > > +#if IS_ENABLED(CONFIG_SND_SOC_MT2701_CS42448)
> > > +               { "i2s1-in-sel-gpio1",  NULL,   "mediatek,mt2701-cs42448-machine" },
> > > +               { "i2s1-in-sel-gpio2",  NULL,   "mediatek,mt2701-cs42448-machine" },
> > > +#endif
> >
> > I suppose this is a run-time dependency only for the other patches?
> > Can I just pick it up into my tree?
>
> You can, I was just thinking about bisectability and the low risk of collisions
> with other patches. (Actually no-one gets hurt if it's applied to both trees
> either, which IMO is perfectly fine in cases like this.)
>

Nah, Stephen Rothwell will auto-yell at you for that. I'm fine either way.

Acked-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

If we get any conflicts in next, then we'll deal with it with immutable tags.

Bart
  

Patch

diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c
index 531faabead0f..d9525d95e818 100644
--- a/drivers/gpio/gpiolib-of.c
+++ b/drivers/gpio/gpiolib-of.c
@@ -512,6 +512,10 @@  static struct gpio_desc *of_find_gpio_rename(struct device_node *np,
 #if IS_ENABLED(CONFIG_SND_SOC_CS42L56)
 		{ "reset",	"cirrus,gpio-nreset",	"cirrus,cs42l56" },
 #endif
+#if IS_ENABLED(CONFIG_SND_SOC_MT2701_CS42448)
+		{ "i2s1-in-sel-gpio1",	NULL,	"mediatek,mt2701-cs42448-machine" },
+		{ "i2s1-in-sel-gpio2",	NULL,	"mediatek,mt2701-cs42448-machine" },
+#endif
 #if IS_ENABLED(CONFIG_SND_SOC_TLV320AIC3X)
 		{ "reset",	"gpio-reset",	"ti,tlv320aic3x" },
 		{ "reset",	"gpio-reset",	"ti,tlv320aic33" },