* [PATCH v2 0/2] gpio: realtek-otto: add pinctrl support @ 2026-08-19 15:51 misha.zavertkin 2026-08-19 15:51 ` [PATCH v2 1/2] dt-bindings: gpio: otto-gpio: Add gpio-ranges misha.zavertkin 2026-08-19 15:51 ` [PATCH v2 2/2] gpio: realtek-otto: add pinctrl support misha.zavertkin 0 siblings, 2 replies; 5+ messages in thread From: misha.zavertkin @ 2026-08-19 15:51 UTC (permalink / raw) To: linux-gpio Cc: Linus Walleij, Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Sander Vanheule, Bert Vermeulen, devicetree, linux-kernel, Michael Zavertkin This series adds pinctrl support for RTL9607C and marks it as required in documentation. --- Changes in v2: - Add 'required' property to dt-bindings - Dropped the ellipsis and added Reviewed-by - Link to v1: https://patch.msgid.link/amRpvtNAwIQak_9y@gamepc --- Michael Zavertkin (2): dt-bindings: gpio: otto-gpio: Add gpio-ranges gpio: realtek-otto: add pinctrl support .../bindings/gpio/realtek,otto-gpio.yaml | 14 ++++++++++++++ drivers/gpio/gpio-realtek-otto.c | 10 +++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) -- 2.54.0 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 1/2] dt-bindings: gpio: otto-gpio: Add gpio-ranges 2026-08-19 15:51 [PATCH v2 0/2] gpio: realtek-otto: add pinctrl support misha.zavertkin @ 2026-08-19 15:51 ` misha.zavertkin 2026-08-19 20:06 ` Sander Vanheule 2026-08-19 15:51 ` [PATCH v2 2/2] gpio: realtek-otto: add pinctrl support misha.zavertkin 1 sibling, 1 reply; 5+ messages in thread From: misha.zavertkin @ 2026-08-19 15:51 UTC (permalink / raw) To: linux-gpio Cc: Linus Walleij, Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Sander Vanheule, Bert Vermeulen, devicetree, linux-kernel, Michael Zavertkin Pinctrl is required for RTL9607C GPIOs to work, otherwise controller won't be routed to SoC pins. Add corresponding requirement to Documentation for realtek,rtl9607-gpio. Signed-off-by: Michael Zavertkin <misha.zavertkin@mail.ru> --- .../bindings/gpio/realtek,otto-gpio.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Documentation/devicetree/bindings/gpio/realtek,otto-gpio.yaml b/Documentation/devicetree/bindings/gpio/realtek,otto-gpio.yaml index b18f8f0ca0ae..96396f968e78 100644 --- a/Documentation/devicetree/bindings/gpio/realtek,otto-gpio.yaml +++ b/Documentation/devicetree/bindings/gpio/realtek,otto-gpio.yaml @@ -40,6 +40,8 @@ properties: gpio-controller: true + gpio-ranges: false + ngpios: minimum: 1 maximum: 32 @@ -75,6 +77,18 @@ required: - "#gpio-cells" - gpio-controller +allOf: + - if: + properties: + compatible: + contains: + const: realtek,rtl9607-gpio + then: + properties: + gpio-ranges: true + required: + - gpio-ranges + additionalProperties: false dependencies: -- 2.54.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: gpio: otto-gpio: Add gpio-ranges 2026-08-19 15:51 ` [PATCH v2 1/2] dt-bindings: gpio: otto-gpio: Add gpio-ranges misha.zavertkin @ 2026-08-19 20:06 ` Sander Vanheule 0 siblings, 0 replies; 5+ messages in thread From: Sander Vanheule @ 2026-08-19 20:06 UTC (permalink / raw) To: misha.zavertkin, linux-gpio Cc: Linus Walleij, Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bert Vermeulen, devicetree, linux-kernel Hi, On Wed, 2026-08-19 at 22:51 +0700, misha.zavertkin@mail.ru wrote: > Pinctrl is required for RTL9607C GPIOs to work, otherwise controller > won't be routed to SoC pins. Add corresponding requirement to > Documentation for realtek,rtl9607-gpio. > > Signed-off-by: Michael Zavertkin <misha.zavertkin@mail.ru> > --- > .../bindings/gpio/realtek,otto-gpio.yaml | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/Documentation/devicetree/bindings/gpio/realtek,otto-gpio.yaml > b/Documentation/devicetree/bindings/gpio/realtek,otto-gpio.yaml > index b18f8f0ca0ae..96396f968e78 100644 > --- a/Documentation/devicetree/bindings/gpio/realtek,otto-gpio.yaml > +++ b/Documentation/devicetree/bindings/gpio/realtek,otto-gpio.yaml > @@ -40,6 +40,8 @@ properties: > > gpio-controller: true > > + gpio-ranges: false > + > ngpios: > minimum: 1 > maximum: 32 > @@ -75,6 +77,18 @@ required: > - "#gpio-cells" > - gpio-controller > > +allOf: > + - if: > + properties: > + compatible: > + contains: > + const: realtek,rtl9607-gpio > + then: > + properties: > + gpio-ranges: true > + required: > + - gpio-ranges > + > additionalProperties: false > > dependencies: Same remark as for the driver: I would just allow gpio-ranges for all compatibles and keep it optional. Since realtek,rtl9607-gpio was already published, it needs to remain backwards compatible. Making the property required now would theoretically invalidate existing devicetrees. pinctrl-* properties already serve as an (actively used) alternative way to select GPIO functions e.g. on RTL8380, so that's another reason for me to leave this property optional. In any case, thanks for the update to the driver! Best, Sander ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 2/2] gpio: realtek-otto: add pinctrl support 2026-08-19 15:51 [PATCH v2 0/2] gpio: realtek-otto: add pinctrl support misha.zavertkin 2026-08-19 15:51 ` [PATCH v2 1/2] dt-bindings: gpio: otto-gpio: Add gpio-ranges misha.zavertkin @ 2026-08-19 15:51 ` misha.zavertkin 2026-08-19 19:58 ` Sander Vanheule 1 sibling, 1 reply; 5+ messages in thread From: misha.zavertkin @ 2026-08-19 15:51 UTC (permalink / raw) To: linux-gpio Cc: Linus Walleij, Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Sander Vanheule, Bert Vermeulen, devicetree, linux-kernel, Michael Zavertkin RTL9607C relies on pinctrl to mux SoC pins. Use pinctrl to request pins for GPIO Signed-off-by: Michael Zavertkin <misha.zavertkin@mail.ru> Reviewed-by: Linus Walleij <linusw@kernel.org> --- 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, -- 2.54.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 2/2] gpio: realtek-otto: add pinctrl support 2026-08-19 15:51 ` [PATCH v2 2/2] gpio: realtek-otto: add pinctrl support misha.zavertkin @ 2026-08-19 19:58 ` Sander Vanheule 0 siblings, 0 replies; 5+ messages in thread From: Sander Vanheule @ 2026-08-19 19:58 UTC (permalink / raw) To: misha.zavertkin, linux-gpio Cc: Linus Walleij, Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bert Vermeulen, devicetree, linux-kernel Hi, On Wed, 2026-08-19 at 22:51 +0700, misha.zavertkin@mail.ru wrote: > RTL9607C relies on pinctrl to mux SoC pins. Use pinctrl to request pins > for GPIO > > Signed-off-by: Michael Zavertkin <misha.zavertkin@mail.ru> > Reviewed-by: Linus Walleij <linusw@kernel.org> > --- > 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 ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-08-19 20:06 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-08-19 15:51 [PATCH v2 0/2] gpio: realtek-otto: add pinctrl support misha.zavertkin 2026-08-19 15:51 ` [PATCH v2 1/2] dt-bindings: gpio: otto-gpio: Add gpio-ranges misha.zavertkin 2026-08-19 20:06 ` Sander Vanheule 2026-08-19 15:51 ` [PATCH v2 2/2] gpio: realtek-otto: add pinctrl support misha.zavertkin 2026-08-19 19:58 ` Sander Vanheule
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox