public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/3] gpio: Add EIO GPIO support
@ 2026-04-15 10:56 Shubhrajyoti Datta
  2026-04-15 10:56 ` [PATCH v2 1/3] dt-bindings: gpio: zynq: Sort compatible strings alphabetically Shubhrajyoti Datta
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Shubhrajyoti Datta @ 2026-04-15 10:56 UTC (permalink / raw)
  To: linux-kernel
  Cc: git, shubhrajyoti.datta, Shubhrajyoti Datta, Srinivas Neeli,
	Michal Simek, Linus Walleij, Bartosz Golaszewski, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, linux-gpio, devicetree,
	linux-arm-kernel

Add the EIO GPIO support.
Add the dt description and the compatible to the driver.

Changes in v2:
- Add new patch to sort the compatible strings alphabetically
- Add description of EIO block in the dt-bindings patch

Shubhrajyoti Datta (3):
  dt-bindings: gpio: zynq: Sort compatible strings alphabetically
  dt-bindings: gpio: Add EIO GPIO compatible to gpio-zynq
  gpio: zynq: Add eio gpio support

 .../devicetree/bindings/gpio/gpio-zynq.yaml    | 18 +++++++++++++++---
 drivers/gpio/gpio-zynq.c                       | 12 ++++++++++++
 2 files changed, 27 insertions(+), 3 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 1/3] dt-bindings: gpio: zynq: Sort compatible strings alphabetically
  2026-04-15 10:56 [PATCH v2 0/3] gpio: Add EIO GPIO support Shubhrajyoti Datta
@ 2026-04-15 10:56 ` Shubhrajyoti Datta
  2026-04-15 15:01   ` Conor Dooley
  2026-04-15 10:56 ` [PATCH v2 2/3] dt-bindings: gpio: Add EIO GPIO compatible to gpio-zynq Shubhrajyoti Datta
  2026-04-15 10:56 ` [PATCH v2 3/3] gpio: zynq: Add eio gpio support Shubhrajyoti Datta
  2 siblings, 1 reply; 8+ messages in thread
From: Shubhrajyoti Datta @ 2026-04-15 10:56 UTC (permalink / raw)
  To: linux-kernel
  Cc: git, shubhrajyoti.datta, Shubhrajyoti Datta, Srinivas Neeli,
	Michal Simek, Linus Walleij, Bartosz Golaszewski, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, linux-gpio, devicetree,
	linux-arm-kernel

Sort the compatible string alphabetically.

Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@amd.com>
---

Changes in v2:
- Add new patch to sort the compatible strings alphabetically

 Documentation/devicetree/bindings/gpio/gpio-zynq.yaml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/gpio/gpio-zynq.yaml b/Documentation/devicetree/bindings/gpio/gpio-zynq.yaml
index 5e2496379a3c..30a7f836c341 100644
--- a/Documentation/devicetree/bindings/gpio/gpio-zynq.yaml
+++ b/Documentation/devicetree/bindings/gpio/gpio-zynq.yaml
@@ -12,10 +12,10 @@ maintainers:
 properties:
   compatible:
     enum:
+      - xlnx,pmc-gpio-1.0
+      - xlnx,versal-gpio-1.0
       - xlnx,zynq-gpio-1.0
       - xlnx,zynqmp-gpio-1.0
-      - xlnx,versal-gpio-1.0
-      - xlnx,pmc-gpio-1.0
 
   reg:
     maxItems: 1
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 2/3] dt-bindings: gpio: Add EIO GPIO compatible to gpio-zynq
  2026-04-15 10:56 [PATCH v2 0/3] gpio: Add EIO GPIO support Shubhrajyoti Datta
  2026-04-15 10:56 ` [PATCH v2 1/3] dt-bindings: gpio: zynq: Sort compatible strings alphabetically Shubhrajyoti Datta
@ 2026-04-15 10:56 ` Shubhrajyoti Datta
  2026-04-15 15:01   ` Conor Dooley
  2026-04-15 10:56 ` [PATCH v2 3/3] gpio: zynq: Add eio gpio support Shubhrajyoti Datta
  2 siblings, 1 reply; 8+ messages in thread
From: Shubhrajyoti Datta @ 2026-04-15 10:56 UTC (permalink / raw)
  To: linux-kernel
  Cc: git, shubhrajyoti.datta, Shubhrajyoti Datta, Srinivas Neeli,
	Michal Simek, Linus Walleij, Bartosz Golaszewski, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, linux-gpio, devicetree,
	linux-arm-kernel

EIO (Extended IO) is a GPIO block found on xa2ve3288 silicon..

Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@amd.com>
---

Changes in v2:
- Add description of EIO block in the dt-bindings patch

 .../devicetree/bindings/gpio/gpio-zynq.yaml        | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/gpio/gpio-zynq.yaml b/Documentation/devicetree/bindings/gpio/gpio-zynq.yaml
index 30a7f836c341..1ca067217509 100644
--- a/Documentation/devicetree/bindings/gpio/gpio-zynq.yaml
+++ b/Documentation/devicetree/bindings/gpio/gpio-zynq.yaml
@@ -12,6 +12,7 @@ maintainers:
 properties:
   compatible:
     enum:
+      - xlnx,eio-gpio-1.0
       - xlnx,pmc-gpio-1.0
       - xlnx,versal-gpio-1.0
       - xlnx,zynq-gpio-1.0
@@ -30,7 +31,7 @@ properties:
 
   gpio-line-names:
     description: strings describing the names of each gpio line
-    minItems: 58
+    minItems: 52
     maxItems: 174
 
   interrupt-controller: true
@@ -89,6 +90,17 @@ allOf:
           minItems: 116
           maxItems: 116
 
+  - if:
+      properties:
+        compatible:
+          enum:
+            - xlnx,eio-gpio-1.0
+    then:
+      properties:
+        gpio-line-names:
+          minItems: 52
+          maxItems: 52
+
 required:
   - compatible
   - reg
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 3/3] gpio: zynq: Add eio gpio support
  2026-04-15 10:56 [PATCH v2 0/3] gpio: Add EIO GPIO support Shubhrajyoti Datta
  2026-04-15 10:56 ` [PATCH v2 1/3] dt-bindings: gpio: zynq: Sort compatible strings alphabetically Shubhrajyoti Datta
  2026-04-15 10:56 ` [PATCH v2 2/3] dt-bindings: gpio: Add EIO GPIO compatible to gpio-zynq Shubhrajyoti Datta
@ 2026-04-15 10:56 ` Shubhrajyoti Datta
  2 siblings, 0 replies; 8+ messages in thread
From: Shubhrajyoti Datta @ 2026-04-15 10:56 UTC (permalink / raw)
  To: linux-kernel
  Cc: git, shubhrajyoti.datta, Shubhrajyoti Datta, Srinivas Neeli,
	Michal Simek, Linus Walleij, Bartosz Golaszewski, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, linux-gpio, devicetree,
	linux-arm-kernel

Add support for the EIO GPIO controller found on
xa2ve3288 silicon.

The EIO GPIO block provides access to multiplexed I/O pins exposed
through the EIO interface. Only bank 0 and bank 1 are connected to
external MIO pins, with 26 GPIOs per bank (52 GPIOs total). This
change extends the Zynq GPIO driver to support the EIO GPIO
variant.

Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@amd.com>
---

(no changes since v1)

 drivers/gpio/gpio-zynq.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/gpio/gpio-zynq.c b/drivers/gpio/gpio-zynq.c
index 571e366624d2..8118ae3412c2 100644
--- a/drivers/gpio/gpio-zynq.c
+++ b/drivers/gpio/gpio-zynq.c
@@ -25,6 +25,7 @@
 #define VERSAL_GPIO_MAX_BANK	4
 #define PMC_GPIO_MAX_BANK	5
 #define VERSAL_UNUSED_BANKS	2
+#define EIO_GPIO_MAX_BANK	2
 
 #define ZYNQ_GPIO_BANK0_NGPIO	32
 #define ZYNQ_GPIO_BANK1_NGPIO	22
@@ -818,6 +819,16 @@ static const struct dev_pm_ops zynq_gpio_dev_pm_ops = {
 	RUNTIME_PM_OPS(zynq_gpio_runtime_suspend, zynq_gpio_runtime_resume, NULL)
 };
 
+static const struct zynq_platform_data eio_gpio_def = {
+	.label = "eio_gpio",
+	.ngpio = 52,
+	.max_bank = EIO_GPIO_MAX_BANK,
+	.bank_min[0] = 0,
+	.bank_max[0] = 25, /* 0 to 25 are connected to MIOs (26 pins) */
+	.bank_min[1] = 26,
+	.bank_max[1] = 51, /* Bank 1 are connected to MIOs (26 pins) */
+};
+
 static const struct zynq_platform_data versal_gpio_def = {
 	.label = "versal_gpio",
 	.quirks = GPIO_QUIRK_VERSAL,
@@ -882,6 +893,7 @@ static const struct of_device_id zynq_gpio_of_match[] = {
 	{ .compatible = "xlnx,zynqmp-gpio-1.0", .data = &zynqmp_gpio_def },
 	{ .compatible = "xlnx,versal-gpio-1.0", .data = &versal_gpio_def },
 	{ .compatible = "xlnx,pmc-gpio-1.0", .data = &pmc_gpio_def },
+	{ .compatible = "xlnx,eio-gpio-1.0", .data = &eio_gpio_def },
 	{ /* end of table */ }
 };
 MODULE_DEVICE_TABLE(of, zynq_gpio_of_match);
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 2/3] dt-bindings: gpio: Add EIO GPIO compatible to gpio-zynq
  2026-04-15 10:56 ` [PATCH v2 2/3] dt-bindings: gpio: Add EIO GPIO compatible to gpio-zynq Shubhrajyoti Datta
@ 2026-04-15 15:01   ` Conor Dooley
  2026-04-16  5:58     ` Michal Simek
  0 siblings, 1 reply; 8+ messages in thread
From: Conor Dooley @ 2026-04-15 15:01 UTC (permalink / raw)
  To: Shubhrajyoti Datta
  Cc: linux-kernel, git, shubhrajyoti.datta, Srinivas Neeli,
	Michal Simek, Linus Walleij, Bartosz Golaszewski, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, linux-gpio, devicetree,
	linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 1784 bytes --]

On Wed, Apr 15, 2026 at 04:26:27PM +0530, Shubhrajyoti Datta wrote:
> EIO (Extended IO) is a GPIO block found on xa2ve3288 silicon..


Why does the compatible have a "1.0" when it is in silicon?
Why doesn't the compatible contain "xa2ve3288"?
Why is this device not compatible with existing ones, since
gpio-lines-names appears to be the sole difference?

> 
> Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@amd.com>
> ---
> 
> Changes in v2:
> - Add description of EIO block in the dt-bindings patch
> 
>  .../devicetree/bindings/gpio/gpio-zynq.yaml        | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/gpio/gpio-zynq.yaml b/Documentation/devicetree/bindings/gpio/gpio-zynq.yaml
> index 30a7f836c341..1ca067217509 100644
> --- a/Documentation/devicetree/bindings/gpio/gpio-zynq.yaml
> +++ b/Documentation/devicetree/bindings/gpio/gpio-zynq.yaml
> @@ -12,6 +12,7 @@ maintainers:
>  properties:
>    compatible:
>      enum:
> +      - xlnx,eio-gpio-1.0
>        - xlnx,pmc-gpio-1.0
>        - xlnx,versal-gpio-1.0
>        - xlnx,zynq-gpio-1.0
> @@ -30,7 +31,7 @@ properties:
>  
>    gpio-line-names:
>      description: strings describing the names of each gpio line
> -    minItems: 58
> +    minItems: 52
>      maxItems: 174
>  
>    interrupt-controller: true
> @@ -89,6 +90,17 @@ allOf:
>            minItems: 116
>            maxItems: 116
>  
> +  - if:
> +      properties:
> +        compatible:
> +          enum:
> +            - xlnx,eio-gpio-1.0
> +    then:
> +      properties:
> +        gpio-line-names:
> +          minItems: 52
> +          maxItems: 52
> +
>  required:
>    - compatible
>    - reg
> -- 
> 2.34.1
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 1/3] dt-bindings: gpio: zynq: Sort compatible strings alphabetically
  2026-04-15 10:56 ` [PATCH v2 1/3] dt-bindings: gpio: zynq: Sort compatible strings alphabetically Shubhrajyoti Datta
@ 2026-04-15 15:01   ` Conor Dooley
  0 siblings, 0 replies; 8+ messages in thread
From: Conor Dooley @ 2026-04-15 15:01 UTC (permalink / raw)
  To: Shubhrajyoti Datta
  Cc: linux-kernel, git, shubhrajyoti.datta, Srinivas Neeli,
	Michal Simek, Linus Walleij, Bartosz Golaszewski, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, linux-gpio, devicetree,
	linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 264 bytes --]

On Wed, Apr 15, 2026 at 04:26:26PM +0530, Shubhrajyoti Datta wrote:
> Sort the compatible string alphabetically.
> 
> Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@amd.com>

Acked-by: Conor Dooley <conor.dooley@microchip.com>
pw-bot: not-applicable

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 2/3] dt-bindings: gpio: Add EIO GPIO compatible to gpio-zynq
  2026-04-15 15:01   ` Conor Dooley
@ 2026-04-16  5:58     ` Michal Simek
  2026-04-16  9:06       ` Krzysztof Kozlowski
  0 siblings, 1 reply; 8+ messages in thread
From: Michal Simek @ 2026-04-16  5:58 UTC (permalink / raw)
  To: Conor Dooley, Shubhrajyoti Datta
  Cc: linux-kernel, git, shubhrajyoti.datta, Srinivas Neeli,
	Linus Walleij, Bartosz Golaszewski, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, linux-gpio, devicetree,
	linux-arm-kernel



On 4/15/26 17:01, Conor Dooley wrote:
> On Wed, Apr 15, 2026 at 04:26:27PM +0530, Shubhrajyoti Datta wrote:
>> EIO (Extended IO) is a GPIO block found on xa2ve3288 silicon..
> 
> 
> Why does the compatible have a "1.0" when it is in silicon?

Sorry not following what the problem is. Yes this is hard block in silicon
and it is silicon v1.

> Why doesn't the compatible contain "xa2ve3288"?

This unit can be used on different silicons too.

> Why is this device not compatible with existing ones, since
> gpio-lines-names appears to be the sole difference?

There is no way how to detect gpio width.
Pretty much soc_device_match() to some extend could be use to detect which 
silicon it runs but on this particular one you have 3 gpio controllers described 
by this binding (pmc, versal and eio).

Thanks,
Michal


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 2/3] dt-bindings: gpio: Add EIO GPIO compatible to gpio-zynq
  2026-04-16  5:58     ` Michal Simek
@ 2026-04-16  9:06       ` Krzysztof Kozlowski
  0 siblings, 0 replies; 8+ messages in thread
From: Krzysztof Kozlowski @ 2026-04-16  9:06 UTC (permalink / raw)
  To: Michal Simek
  Cc: Conor Dooley, Shubhrajyoti Datta, linux-kernel, git,
	shubhrajyoti.datta, Srinivas Neeli, Linus Walleij,
	Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, linux-gpio, devicetree, linux-arm-kernel

On Thu, Apr 16, 2026 at 07:58:27AM +0200, Michal Simek wrote:
> 
> 
> On 4/15/26 17:01, Conor Dooley wrote:
> > On Wed, Apr 15, 2026 at 04:26:27PM +0530, Shubhrajyoti Datta wrote:
> > > EIO (Extended IO) is a GPIO block found on xa2ve3288 silicon..
> > 
> > 
> > Why does the compatible have a "1.0" when it is in silicon?
> 
> Sorry not following what the problem is. Yes this is hard block in silicon
> and it is silicon v1.

Writing bindings: compatibles should be specific to device, not some
arbitrary versioning.

OR explain in commit msg. That commit msg clealy suggests code is wrong.


> 
> > Why doesn't the compatible contain "xa2ve3288"?
> 
> This unit can be used on different silicons too.

That's not what the commit said.

> 
> > Why is this device not compatible with existing ones, since
> > gpio-lines-names appears to be the sole difference?
> 
> There is no way how to detect gpio width.

Where in the commit msg are the differences explained?

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-04-16  9:06 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-15 10:56 [PATCH v2 0/3] gpio: Add EIO GPIO support Shubhrajyoti Datta
2026-04-15 10:56 ` [PATCH v2 1/3] dt-bindings: gpio: zynq: Sort compatible strings alphabetically Shubhrajyoti Datta
2026-04-15 15:01   ` Conor Dooley
2026-04-15 10:56 ` [PATCH v2 2/3] dt-bindings: gpio: Add EIO GPIO compatible to gpio-zynq Shubhrajyoti Datta
2026-04-15 15:01   ` Conor Dooley
2026-04-16  5:58     ` Michal Simek
2026-04-16  9:06       ` Krzysztof Kozlowski
2026-04-15 10:56 ` [PATCH v2 3/3] gpio: zynq: Add eio gpio support Shubhrajyoti Datta

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox