All of lore.kernel.org
 help / color / mirror / Atom feed
* [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; 6+ 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] 6+ 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 16:12   ` sashiko-bot
  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, 2 replies; 6+ 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] 6+ 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; 6+ 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] 6+ 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 16:12   ` sashiko-bot
  2026-08-19 20:06   ` Sander Vanheule
  1 sibling, 0 replies; 6+ messages in thread
From: sashiko-bot @ 2026-08-19 16:12 UTC (permalink / raw)
  To: misha.zavertkin; +Cc: robh, conor+dt, devicetree

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Logical contradiction in JSON schema makes the `realtek,rtl9607-gpio` binding un-satisfiable.
--

--- Patch [1]: [PATCH v2 1/2] dt-bindings: gpio: otto-gpio: Add gpio-ranges ---
commit dc172e5a62e85037c013247864994cd4ea3bc026
Author: misha.zavertkin@mail.ru <misha.zavertkin@mail.ru>

dt-bindings: gpio: otto-gpio: Add gpio-ranges

This commit updates the realtek,otto-gpio binding documentation to add
support for the gpio-ranges property. It specifically requires this
property to be present when the realtek,rtl9607-gpio compatible string is
used to ensure proper pinctrl routing.

> diff --git a/Documentation/devicetree/bindings/gpio/realtek,otto-gpio.yaml b/Documentation/devicetree/bindings/gpio/realtek,otto-gpio.yaml
> index b18f8f0ca0ae4..96396f968e788 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
> +

[ ... ]

> @@ -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

[Severity: Medium]
Does this create a logical contradiction that makes the schema unsatisfiable
for the realtek,rtl9607-gpio compatible string?

Because gpio-ranges is defined as false in the top-level properties list,
it unconditionally forbids the property. However, the new allOf conditional
block requires the exact same gpio-ranges property to be present.

Will this cause device tree validation to fail every time? If the property
is present, it would fail the top-level false constraint, and if it is
omitted, it would fail the required constraint in the conditional block.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/cover.1787130560.git.misha.zavertkin@mail.ru?part=1

^ permalink raw reply	[flat|nested] 6+ 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; 6+ 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] 6+ 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 16:12   ` sashiko-bot
@ 2026-08-19 20:06   ` Sander Vanheule
  1 sibling, 0 replies; 6+ 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] 6+ messages in thread

end of thread, other threads:[~2026-08-19 20:06 UTC | newest]

Thread overview: 6+ 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 16:12   ` sashiko-bot
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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.