drivers/gpio/gpio-regmap.c | 2 ++ 1 file changed, 2 insertions(+)
Set the gpiochip request and free ops to the generic implementations.
This way a user can provide a gpio-ranges property defined for a pinmux,
easing muxing of gpio functions. Provided that the pin controller
implementents the pinmux op .gpio_request_enable(), pins will
automatically be muxed to their GPIO function when requested.
Signed-off-by: Sander Vanheule <sander@svanheule.net>
---
Álvaro has submitted a similar patch today. My implementation's impact
is more limited, but I hadn't gotten around to submitting it yet.
For the original (short) discussion, see:
https://lore.kernel.org/linux-gpio/20250107102735.317446-1-noltari@gmail.com/T/#t
drivers/gpio/gpio-regmap.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpio/gpio-regmap.c b/drivers/gpio/gpio-regmap.c
index f716eb069b25..82da0f1d78c3 100644
--- a/drivers/gpio/gpio-regmap.c
+++ b/drivers/gpio/gpio-regmap.c
@@ -270,6 +270,8 @@ struct gpio_regmap *gpio_regmap_register(const struct gpio_regmap_config *config
chip->label = config->label ?: dev_name(config->parent);
chip->can_sleep = regmap_might_sleep(config->regmap);
+ chip->request = gpiochip_generic_request;
+ chip->free = gpiochip_generic_free;
chip->get = gpio_regmap_get;
if (gpio->reg_set_base && gpio->reg_clr_base)
chip->set = gpio_regmap_set_with_clear;
--
2.47.1
On Tue, Jan 7, 2025 at 9:17 PM Sander Vanheule <sander@svanheule.net> wrote: > Set the gpiochip request and free ops to the generic implementations. > This way a user can provide a gpio-ranges property defined for a pinmux, > easing muxing of gpio functions. Provided that the pin controller > implementents the pinmux op .gpio_request_enable(), pins will > automatically be muxed to their GPIO function when requested. > > Signed-off-by: Sander Vanheule <sander@svanheule.net> > --- > Álvaro has submitted a similar patch today. My implementation's impact > is more limited, but I hadn't gotten around to submitting it yet. This is fine, I'll check Álvaros two patches, if his patch is equivalent I can apply just the pinctrl patch. Yours, Linus Walleij
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
On Tue, 07 Jan 2025 21:16:20 +0100, Sander Vanheule wrote:
> Set the gpiochip request and free ops to the generic implementations.
> This way a user can provide a gpio-ranges property defined for a pinmux,
> easing muxing of gpio functions. Provided that the pin controller
> implementents the pinmux op .gpio_request_enable(), pins will
> automatically be muxed to their GPIO function when requested.
>
>
> [...]
Applied, thanks!
[1/1] gpio: regmap: Use generic request/free ops
commit: 5ab3b97ef9d4bff2513994ef9efc6d95722cb902
Best regards,
--
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Hi, On Tue Jan 7, 2025 at 9:16 PM CET, Sander Vanheule wrote: > Set the gpiochip request and free ops to the generic implementations. > This way a user can provide a gpio-ranges property defined for a pinmux, > easing muxing of gpio functions. Provided that the pin controller > implementents the pinmux op .gpio_request_enable(), pins will > automatically be muxed to their GPIO function when requested. > > Signed-off-by: Sander Vanheule <sander@svanheule.net> Sounds fine, although I don't have time to test it right now. I'd appreciate if Linus could give a short comment, too. Acked-by: Michael Walle <mwalle@kernel.org> -michael > --- > Álvaro has submitted a similar patch today. My implementation's impact > is more limited, but I hadn't gotten around to submitting it yet. > > For the original (short) discussion, see: > https://lore.kernel.org/linux-gpio/20250107102735.317446-1-noltari@gmail.com/T/#t > > drivers/gpio/gpio-regmap.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpio/gpio-regmap.c b/drivers/gpio/gpio-regmap.c > index f716eb069b25..82da0f1d78c3 100644 > --- a/drivers/gpio/gpio-regmap.c > +++ b/drivers/gpio/gpio-regmap.c > @@ -270,6 +270,8 @@ struct gpio_regmap *gpio_regmap_register(const struct gpio_regmap_config *config > chip->label = config->label ?: dev_name(config->parent); > chip->can_sleep = regmap_might_sleep(config->regmap); > > + chip->request = gpiochip_generic_request; > + chip->free = gpiochip_generic_free; > chip->get = gpio_regmap_get; > if (gpio->reg_set_base && gpio->reg_clr_base) > chip->set = gpio_regmap_set_with_clear;
© 2016 - 2025 Red Hat, Inc.