All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] gpio: mmio: Support IXP4xx expansion bus MMIO GPIO
@ 2025-08-20 10:59 Linus Walleij
  2025-08-20 10:59 ` [PATCH 1/4] dt-bindings: gpio-mmio: Support hogs Linus Walleij
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Linus Walleij @ 2025-08-20 10:59 UTC (permalink / raw)
  To: Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Linus Walleij, Imre Kaloz, Krzysztof Kozlowski
  Cc: linux-gpio, devicetree, Linus Walleij

After Florian reminded me to do things properly, here are
fixups and additions to the MMIO GPIO bindings and a
tie-in to the IXP4xx expansion bus memory controller.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
Linus Walleij (4):
      dt-bindings: gpio-mmio: Support hogs
      dt-bindings: Add bank width to Intel IXP4xx memory controller
      dt-bindings: gpio-mmio: Add MMIO for IXP4xx expansion bus
      gpio: mmio: Add compatible for the ixp4xx eb MMIO

 .../devicetree/bindings/gpio/gpio-mmio.yaml        | 37 +++++++++++++++++++++-
 .../intel,ixp4xx-expansion-peripheral-props.yaml   |  5 +++
 drivers/gpio/gpio-mmio.c                           |  1 +
 3 files changed, 42 insertions(+), 1 deletion(-)
---
base-commit: 8f5ae30d69d7543eee0d70083daf4de8fe15d585
change-id: 20250820-ixp4xx-eb-mmio-gpio-80884f67aa67

Best regards,
-- 
Linus Walleij <linus.walleij@linaro.org>


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

* [PATCH 1/4] dt-bindings: gpio-mmio: Support hogs
  2025-08-20 10:59 [PATCH 0/4] gpio: mmio: Support IXP4xx expansion bus MMIO GPIO Linus Walleij
@ 2025-08-20 10:59 ` Linus Walleij
  2025-08-22 14:24   ` Rob Herring (Arm)
  2025-08-20 10:59 ` [PATCH 2/4] dt-bindings: Add bank width to Intel IXP4xx memory controller Linus Walleij
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: Linus Walleij @ 2025-08-20 10:59 UTC (permalink / raw)
  To: Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Linus Walleij, Imre Kaloz, Krzysztof Kozlowski
  Cc: linux-gpio, devicetree, Linus Walleij

We use hogs on some MMIO GPIO controllers so make sure the
bindings support this using a pattern property.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 Documentation/devicetree/bindings/gpio/gpio-mmio.yaml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml b/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml
index 87e986386f32a4a8ba257d6a4d8da492b05d5bbf..ca32317dff85bc72aace6638dabbdd91de5e569b 100644
--- a/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml
+++ b/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml
@@ -89,6 +89,12 @@ properties:
     description:
       If this property is present, the controller cannot drive the GPIO lines.
 
+patternProperties:
+  "^.+-hog(-[0-9]+)?$":
+    type: object
+    required:
+      - gpio-hog
+
 required:
   - compatible
   - reg

-- 
2.50.1


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

* [PATCH 2/4] dt-bindings: Add bank width to Intel IXP4xx memory controller
  2025-08-20 10:59 [PATCH 0/4] gpio: mmio: Support IXP4xx expansion bus MMIO GPIO Linus Walleij
  2025-08-20 10:59 ` [PATCH 1/4] dt-bindings: gpio-mmio: Support hogs Linus Walleij
@ 2025-08-20 10:59 ` Linus Walleij
  2025-08-22 14:26   ` Rob Herring
  2025-08-20 10:59 ` [PATCH 3/4] dt-bindings: gpio-mmio: Add MMIO for IXP4xx expansion bus Linus Walleij
  2025-08-20 10:59 ` [PATCH 4/4] gpio: mmio: Add compatible for the ixp4xx eb MMIO Linus Walleij
  3 siblings, 1 reply; 8+ messages in thread
From: Linus Walleij @ 2025-08-20 10:59 UTC (permalink / raw)
  To: Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Linus Walleij, Imre Kaloz, Krzysztof Kozlowski
  Cc: linux-gpio, devicetree, Linus Walleij

This bank width is necessary to set up the memory controller
properly unless the peripheral is using native bank width.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 .../memory-controllers/intel,ixp4xx-expansion-peripheral-props.yaml  | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Documentation/devicetree/bindings/memory-controllers/intel,ixp4xx-expansion-peripheral-props.yaml b/Documentation/devicetree/bindings/memory-controllers/intel,ixp4xx-expansion-peripheral-props.yaml
index d1479a7b9c8df4dbefc24a4706b1fecdda37bc6a..e306344373c5cd5c1bc6f4001d1252d8d0485f60 100644
--- a/Documentation/devicetree/bindings/memory-controllers/intel,ixp4xx-expansion-peripheral-props.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/intel,ixp4xx-expansion-peripheral-props.yaml
@@ -15,6 +15,11 @@ maintainers:
   - Linus Walleij <linus.walleij@linaro.org>
 
 properties:
+  bank-width:
+    description: Width (in bytes) of the device on the chip select bank.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [ 1, 2, 4 ]
+
   intel,ixp4xx-eb-t1:
     description: Address timing, extend address phase with n cycles.
     $ref: /schemas/types.yaml#/definitions/uint32

-- 
2.50.1


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

* [PATCH 3/4] dt-bindings: gpio-mmio: Add MMIO for IXP4xx expansion bus
  2025-08-20 10:59 [PATCH 0/4] gpio: mmio: Support IXP4xx expansion bus MMIO GPIO Linus Walleij
  2025-08-20 10:59 ` [PATCH 1/4] dt-bindings: gpio-mmio: Support hogs Linus Walleij
  2025-08-20 10:59 ` [PATCH 2/4] dt-bindings: Add bank width to Intel IXP4xx memory controller Linus Walleij
@ 2025-08-20 10:59 ` Linus Walleij
  2025-08-22 14:27   ` Rob Herring (Arm)
  2025-08-20 10:59 ` [PATCH 4/4] gpio: mmio: Add compatible for the ixp4xx eb MMIO Linus Walleij
  3 siblings, 1 reply; 8+ messages in thread
From: Linus Walleij @ 2025-08-20 10:59 UTC (permalink / raw)
  To: Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Linus Walleij, Imre Kaloz, Krzysztof Kozlowski
  Cc: linux-gpio, devicetree, Linus Walleij

This expansion is a simple MMIO-mapped GPIO device but the bus has a
number of additional properties that we need to bring in using
a reference to the bus child node schema.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 .../devicetree/bindings/gpio/gpio-mmio.yaml        | 31 +++++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml b/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml
index ca32317dff85bc72aace6638dabbdd91de5e569b..487efab2710e02402ef8ca3e407b6ebc24e3f399 100644
--- a/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml
+++ b/Documentation/devicetree/bindings/gpio/gpio-mmio.yaml
@@ -22,6 +22,7 @@ properties:
       - brcm,bcm6345-gpio
       - ni,169445-nand-gpio
       - wd,mbl-gpio # Western Digital MyBook Live memory-mapped GPIO controller
+      - intel,ixp4xx-expansion-bus-mmio-gpio
 
   big-endian: true
 
@@ -89,6 +90,14 @@ properties:
     description:
       If this property is present, the controller cannot drive the GPIO lines.
 
+if:
+  properties:
+    compatible:
+      contains:
+        const: intel,ixp4xx-expansion-bus-mmio-gpio
+then:
+  $ref: /schemas/memory-controllers/intel,ixp4xx-expansion-peripheral-props.yaml#
+
 patternProperties:
   "^.+-hog(-[0-9]+)?$":
     type: object
@@ -102,7 +111,7 @@ required:
   - '#gpio-cells'
   - gpio-controller
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
@@ -132,3 +141,23 @@ examples:
       gpio-controller;
       #gpio-cells = <2>;
     };
+
+    bus@c4000000 {
+        compatible = "intel,ixp42x-expansion-bus-controller", "syscon";
+        reg = <0xc4000000 0x30>;
+        native-endian;
+        #address-cells = <2>;
+        #size-cells = <1>;
+        ranges = <0 0x0 0x50000000 0x01000000>;
+        dma-ranges = <0 0x0 0x50000000 0x01000000>;
+        gpio@1,0 {
+            compatible = "intel,ixp4xx-expansion-bus-mmio-gpio";
+            gpio-controller;
+            #gpio-cells = <2>;
+            bank-width = <2>;
+            big-endian;
+            reg = <1 0x00000000 0x2>;
+            reg-names = "dat";
+            intel,ixp4xx-eb-write-enable = <1>;
+        };
+    };

-- 
2.50.1


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

* [PATCH 4/4] gpio: mmio: Add compatible for the ixp4xx eb MMIO
  2025-08-20 10:59 [PATCH 0/4] gpio: mmio: Support IXP4xx expansion bus MMIO GPIO Linus Walleij
                   ` (2 preceding siblings ...)
  2025-08-20 10:59 ` [PATCH 3/4] dt-bindings: gpio-mmio: Add MMIO for IXP4xx expansion bus Linus Walleij
@ 2025-08-20 10:59 ` Linus Walleij
  3 siblings, 0 replies; 8+ messages in thread
From: Linus Walleij @ 2025-08-20 10:59 UTC (permalink / raw)
  To: Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Linus Walleij, Imre Kaloz, Krzysztof Kozlowski
  Cc: linux-gpio, devicetree, Linus Walleij

The IXP4xx expansion bus can have simple memory-mapped GPIO
on it. Using the proper device tree bindings, support probing
this directly from the device tree.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/gpio/gpio-mmio.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpio/gpio-mmio.c b/drivers/gpio/gpio-mmio.c
index 021ad62778c2f49f0819b767a60112945999f572..79e1be149c94842cb6fa6b657343b11e78701220 100644
--- a/drivers/gpio/gpio-mmio.c
+++ b/drivers/gpio/gpio-mmio.c
@@ -730,6 +730,7 @@ static const struct of_device_id bgpio_of_match[] = {
 	{ .compatible = "brcm,bcm6345-gpio" },
 	{ .compatible = "wd,mbl-gpio" },
 	{ .compatible = "ni,169445-nand-gpio" },
+	{ .compatible = "intel,ixp4xx-expansion-bus-mmio-gpio" },
 	{ }
 };
 MODULE_DEVICE_TABLE(of, bgpio_of_match);

-- 
2.50.1


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

* Re: [PATCH 1/4] dt-bindings: gpio-mmio: Support hogs
  2025-08-20 10:59 ` [PATCH 1/4] dt-bindings: gpio-mmio: Support hogs Linus Walleij
@ 2025-08-22 14:24   ` Rob Herring (Arm)
  0 siblings, 0 replies; 8+ messages in thread
From: Rob Herring (Arm) @ 2025-08-22 14:24 UTC (permalink / raw)
  To: Linus Walleij
  Cc: linux-gpio, Krzysztof Kozlowski, Linus Walleij, devicetree,
	Bartosz Golaszewski, Conor Dooley, Imre Kaloz,
	Krzysztof Kozlowski


On Wed, 20 Aug 2025 12:59:43 +0200, Linus Walleij wrote:
> We use hogs on some MMIO GPIO controllers so make sure the
> bindings support this using a pattern property.
> 
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
>  Documentation/devicetree/bindings/gpio/gpio-mmio.yaml | 6 ++++++
>  1 file changed, 6 insertions(+)
> 

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>


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

* Re: [PATCH 2/4] dt-bindings: Add bank width to Intel IXP4xx memory controller
  2025-08-20 10:59 ` [PATCH 2/4] dt-bindings: Add bank width to Intel IXP4xx memory controller Linus Walleij
@ 2025-08-22 14:26   ` Rob Herring
  0 siblings, 0 replies; 8+ messages in thread
From: Rob Herring @ 2025-08-22 14:26 UTC (permalink / raw)
  To: Linus Walleij
  Cc: Bartosz Golaszewski, Krzysztof Kozlowski, Conor Dooley,
	Linus Walleij, Imre Kaloz, Krzysztof Kozlowski, linux-gpio,
	devicetree

On Wed, Aug 20, 2025 at 12:59:44PM +0200, Linus Walleij wrote:
> This bank width is necessary to set up the memory controller
> properly unless the peripheral is using native bank width.

What's the native width?

> 
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
>  .../memory-controllers/intel,ixp4xx-expansion-peripheral-props.yaml  | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/memory-controllers/intel,ixp4xx-expansion-peripheral-props.yaml b/Documentation/devicetree/bindings/memory-controllers/intel,ixp4xx-expansion-peripheral-props.yaml
> index d1479a7b9c8df4dbefc24a4706b1fecdda37bc6a..e306344373c5cd5c1bc6f4001d1252d8d0485f60 100644
> --- a/Documentation/devicetree/bindings/memory-controllers/intel,ixp4xx-expansion-peripheral-props.yaml
> +++ b/Documentation/devicetree/bindings/memory-controllers/intel,ixp4xx-expansion-peripheral-props.yaml
> @@ -15,6 +15,11 @@ maintainers:
>    - Linus Walleij <linus.walleij@linaro.org>
>  
>  properties:
> +  bank-width:
> +    description: Width (in bytes) of the device on the chip select bank.
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [ 1, 2, 4 ]
> +

Is there a default? If so, we should be able to omit that width.

>    intel,ixp4xx-eb-t1:
>      description: Address timing, extend address phase with n cycles.
>      $ref: /schemas/types.yaml#/definitions/uint32
> 
> -- 
> 2.50.1
> 

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

* Re: [PATCH 3/4] dt-bindings: gpio-mmio: Add MMIO for IXP4xx expansion bus
  2025-08-20 10:59 ` [PATCH 3/4] dt-bindings: gpio-mmio: Add MMIO for IXP4xx expansion bus Linus Walleij
@ 2025-08-22 14:27   ` Rob Herring (Arm)
  0 siblings, 0 replies; 8+ messages in thread
From: Rob Herring (Arm) @ 2025-08-22 14:27 UTC (permalink / raw)
  To: Linus Walleij
  Cc: Conor Dooley, Linus Walleij, devicetree, Imre Kaloz, linux-gpio,
	Bartosz Golaszewski, Krzysztof Kozlowski, Krzysztof Kozlowski


On Wed, 20 Aug 2025 12:59:45 +0200, Linus Walleij wrote:
> This expansion is a simple MMIO-mapped GPIO device but the bus has a
> number of additional properties that we need to bring in using
> a reference to the bus child node schema.
> 
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
>  .../devicetree/bindings/gpio/gpio-mmio.yaml        | 31 +++++++++++++++++++++-
>  1 file changed, 30 insertions(+), 1 deletion(-)
> 

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>


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

end of thread, other threads:[~2025-08-22 14:27 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-20 10:59 [PATCH 0/4] gpio: mmio: Support IXP4xx expansion bus MMIO GPIO Linus Walleij
2025-08-20 10:59 ` [PATCH 1/4] dt-bindings: gpio-mmio: Support hogs Linus Walleij
2025-08-22 14:24   ` Rob Herring (Arm)
2025-08-20 10:59 ` [PATCH 2/4] dt-bindings: Add bank width to Intel IXP4xx memory controller Linus Walleij
2025-08-22 14:26   ` Rob Herring
2025-08-20 10:59 ` [PATCH 3/4] dt-bindings: gpio-mmio: Add MMIO for IXP4xx expansion bus Linus Walleij
2025-08-22 14:27   ` Rob Herring (Arm)
2025-08-20 10:59 ` [PATCH 4/4] gpio: mmio: Add compatible for the ixp4xx eb MMIO Linus Walleij

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.