Re: [PATCH v2 2/2] gpio: realtek-otto: add pinctrl support

Sander Vanheule <[email protected]>
Newsgroups org.kernel.vger.linux-gpio,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Hi,

On Wed, 2026-08-19 at 22:51 +0700, [email protected] wrote:
> RTL9607C relies on pinctrl to mux SoC pins. Use pinctrl to request pins
> for GPIO
> 
> Signed-off-by: Michael Zavertkin <[email protected]>
> Reviewed-by: Linus Walleij <[email protected]>
> ---
>  drivers/gpio/gpio-realtek-otto.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpio/gpio-realtek-otto.c b/drivers/gpio/gpio-realtek-
> otto.c
> index 4a606bad5848..86948da8adec 100644
> --- a/drivers/gpio/gpio-realtek-otto.c
> +++ b/drivers/gpio/gpio-realtek-otto.c
> @@ -97,6 +97,11 @@ enum realtek_gpio_flags {
>  	 * range, where the per-cpu enable masks are located.
>  	 */
>  	GPIO_INTERRUPTS_PER_CPU = BIT(2),
> +	/*
> +	 * Request GPIOs from pinctrl using gpiochip_generic_request()
> +	 * and gpiochip_generic_free().
> +	 */
> +	GPIO_PINCTRL = BIT(3),
>  };
>  
>  static struct realtek_gpio_ctrl *irq_data_to_ctrl(struct irq_data *data)
> @@ -354,7 +359,7 @@ static const struct of_device_id realtek_gpio_of_match[] =
> {
>  	},
>  	{
>  		.compatible = "realtek,rtl9607-gpio",
> -		.data = (void *)GPIO_PORTS_REVERSED,
> +		.data = (void *)(GPIO_PORTS_REVERSED | GPIO_PINCTRL),
>  	},
>  	{}
>  };
> @@ -405,6 +410,9 @@ static int realtek_gpio_probe(struct platform_device
> *pdev)
>  		ctrl->line_imr_pos = realtek_gpio_line_imr_pos_swapped;
>  	}
>  
> +	if (dev_flags & GPIO_PINCTRL)
> +		gen_gc_flags |= GPIO_GENERIC_PINCTRL_BACKEND;
> +
>  	config = (struct gpio_generic_chip_config) {
>  		.dev = dev,
>  		.sz = 4,

Any reason to not just always add GPI_GENERIC_PINCTRL_BACKEND, regardless of the
compatible? If there are no gpio_ranges, gpio_generic_request() is a no-op, so
there's no harm in enabling this without having that property defined.

The other SoCs use explicit pinctrl properties on the GPIO consumers in their
devicetrees for now. If you enable this feature for all instances of this GPIO
driver, then only the devicetree needs to be updated later to enable gpio_ranges
for them.

Best,
Sander
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.