linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/3] dt-bindings: gpio: gpio-mvebu: Convert to DT schema format
@ 2022-05-26  1:29 Chris Packham
  2022-05-26  1:29 ` [PATCH v4 1/3] dt-bindings: gpio: gpio-mvebu: convert txt binding " Chris Packham
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Chris Packham @ 2022-05-26  1:29 UTC (permalink / raw)
  To: robh+dt, krzysztof.kozlowski+dt, linus.walleij, brgl,
	thierry.reding, u.kleine-koenig, lee.jones, andrew,
	thomas.petazzoni
  Cc: devicetree, linux-kernel, linux-gpio, linux-pwm, Chris Packham

The 1st patch converts the old binding mostly 1:1.
The 2nd patch deprecates the unused marvell,armadaxp compatible.
The 3rd patch documents the existing usage of the offset/marvell,pwm-offset
properties.

Chris Packham (3):
  dt-bindings: gpio: gpio-mvebu: convert txt binding to DT schema format
  dt-bindings: gpio: gpio-mvebu: deprecate armadaxp-gpio
  dt-bindings: gpio: gpio-mvebu: document offset and marvell,pwm-offset

 .../arm/marvell/ap80x-system-controller.txt   |   2 +-
 .../arm/marvell/cp110-system-controller.txt   |   2 +-
 .../devicetree/bindings/gpio/gpio-mvebu.txt   |  93 -----------
 .../devicetree/bindings/gpio/gpio-mvebu.yaml  | 146 ++++++++++++++++++
 MAINTAINERS                                   |   2 +-
 5 files changed, 149 insertions(+), 96 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-mvebu.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml

-- 
2.36.1


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

* [PATCH v4 1/3] dt-bindings: gpio: gpio-mvebu: convert txt binding to DT schema format
  2022-05-26  1:29 [PATCH v4 0/3] dt-bindings: gpio: gpio-mvebu: Convert to DT schema format Chris Packham
@ 2022-05-26  1:29 ` Chris Packham
  2022-05-26 12:26   ` Krzysztof Kozlowski
  2022-05-26  1:29 ` [PATCH v4 2/3] dt-bindings: gpio: gpio-mvebu: deprecate armadaxp-gpio Chris Packham
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 11+ messages in thread
From: Chris Packham @ 2022-05-26  1:29 UTC (permalink / raw)
  To: robh+dt, krzysztof.kozlowski+dt, linus.walleij, brgl,
	thierry.reding, u.kleine-koenig, lee.jones, andrew,
	thomas.petazzoni
  Cc: devicetree, linux-kernel, linux-gpio, linux-pwm, Chris Packham

Convert the existing device tree binding to DT schema format.

The old binding listed the interrupt-controller and related properties
as required but there are sufficiently many existing usages without it
that the YAML binding does not make the interrupt properties required.

Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
---

Notes:
    Changes in v4:
    - Set Thomas and Andrew as maintainers based on lines-authored in the
      gpio-mvebu.c driver
    - Use "DT schema format" instead of YAML in subject
    - Add regNames.minItems constraint for armadaxp
    Changes in v3:
    - Correct indent in example
    - Move offset and marvell,pwm-offset to separate patch
    - Correct some documentation cross references
    Changes in v2:
    - Collect review from Andrew
    - Remove unnecessary/obvious property descriptions
    - Clarify reg property requirements for armadaxp vs the rest. Enforce
      these with a variant specific constraint.
    - Update compatible property requirements. marvell,orion-gpio and
      marvell,armada-8k-gpio can be used on their own. Everything else needs
      marvell,orion-gpio as a fallback.
    - Correct example to include marvell,orion-gpio fallback

 .../arm/marvell/ap80x-system-controller.txt   |   2 +-
 .../arm/marvell/cp110-system-controller.txt   |   2 +-
 .../devicetree/bindings/gpio/gpio-mvebu.txt   |  93 -----------
 .../devicetree/bindings/gpio/gpio-mvebu.yaml  | 146 ++++++++++++++++++
 MAINTAINERS                                   |   2 +-
 5 files changed, 149 insertions(+), 96 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-mvebu.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml

diff --git a/Documentation/devicetree/bindings/arm/marvell/ap80x-system-controller.txt b/Documentation/devicetree/bindings/arm/marvell/ap80x-system-controller.txt
index 052a967c1f28..c83245065d44 100644
--- a/Documentation/devicetree/bindings/arm/marvell/ap80x-system-controller.txt
+++ b/Documentation/devicetree/bindings/arm/marvell/ap80x-system-controller.txt
@@ -72,7 +72,7 @@ mpp19	19	gpio, uart0(rxd), sdio(pw_off)
 GPIO:
 -----
 For common binding part and usage, refer to
-Documentation/devicetree/bindings/gpio/gpio-mvebu.txt.
+Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml.
 
 Required properties:
 
diff --git a/Documentation/devicetree/bindings/arm/marvell/cp110-system-controller.txt b/Documentation/devicetree/bindings/arm/marvell/cp110-system-controller.txt
index 0705e765f432..d84105c7c935 100644
--- a/Documentation/devicetree/bindings/arm/marvell/cp110-system-controller.txt
+++ b/Documentation/devicetree/bindings/arm/marvell/cp110-system-controller.txt
@@ -156,7 +156,7 @@ GPIO:
 -----
 
 For common binding part and usage, refer to
-Documentation/devicetree/bindings/gpio/gpio-mvebu.txt.
+Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml.
 
 Required properties:
 
diff --git a/Documentation/devicetree/bindings/gpio/gpio-mvebu.txt b/Documentation/devicetree/bindings/gpio/gpio-mvebu.txt
deleted file mode 100644
index 0fc6700ed800..000000000000
--- a/Documentation/devicetree/bindings/gpio/gpio-mvebu.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-* Marvell EBU GPIO controller
-
-Required properties:
-
-- compatible : Should be "marvell,orion-gpio", "marvell,mv78200-gpio",
-  "marvell,armadaxp-gpio" or "marvell,armada-8k-gpio".
-
-    "marvell,orion-gpio" should be used for Orion, Kirkwood, Dove,
-    Discovery (except MV78200) and Armada 370. "marvell,mv78200-gpio"
-    should be used for the Discovery MV78200.
-
-    "marvel,armadaxp-gpio" should be used for all Armada XP SoCs
-    (MV78230, MV78260, MV78460).
-
-    "marvell,armada-8k-gpio" should be used for the Armada 7K and 8K
-    SoCs (either from AP or CP), see
-    Documentation/devicetree/bindings/arm/marvell/ap80x-system-controller.txt
-    for specific details about the offset property.
-
-- reg: Address and length of the register set for the device. Only one
-  entry is expected, except for the "marvell,armadaxp-gpio" variant
-  for which two entries are expected: one for the general registers,
-  one for the per-cpu registers. Not used for marvell,armada-8k-gpio.
-
-- interrupts: The list of interrupts that are used for all the pins
-  managed by this GPIO bank. There can be more than one interrupt
-  (example: 1 interrupt per 8 pins on Armada XP, which means 4
-  interrupts per bank of 32 GPIOs).
-
-- interrupt-controller: identifies the node as an interrupt controller
-
-- #interrupt-cells: specifies the number of cells needed to encode an
-  interrupt source. Should be two.
-  The first cell is the GPIO number.
-  The second cell is used to specify flags:
-    bits[3:0] trigger type and level flags:
-      1 = low-to-high edge triggered.
-      2 = high-to-low edge triggered.
-      4 = active high level-sensitive.
-      8 = active low level-sensitive.
-
-- gpio-controller: marks the device node as a gpio controller
-
-- ngpios: number of GPIOs this controller has
-
-- #gpio-cells: Should be two. The first cell is the pin number. The
-  second cell is reserved for flags, unused at the moment.
-
-Optional properties:
-
-In order to use the GPIO lines in PWM mode, some additional optional
-properties are required.
-
-- compatible: Must contain "marvell,armada-370-gpio"
-
-- reg: an additional register set is needed, for the GPIO Blink
-  Counter on/off registers.
-
-- reg-names: Must contain an entry "pwm" corresponding to the
-  additional register range needed for PWM operation.
-
-- #pwm-cells: Should be two. The first cell is the GPIO line number. The
-  second cell is the period in nanoseconds.
-
-- clocks: Must be a phandle to the clock for the GPIO controller.
-
-Example:
-
-		gpio0: gpio@d0018100 {
-			compatible = "marvell,armadaxp-gpio";
-			reg = <0xd0018100 0x40>,
-			    <0xd0018800 0x30>;
-			ngpios = <32>;
-			gpio-controller;
-			#gpio-cells = <2>;
-			interrupt-controller;
-			#interrupt-cells = <2>;
-			interrupts = <16>, <17>, <18>, <19>;
-		};
-
-		gpio1: gpio@18140 {
-			compatible = "marvell,armada-370-gpio";
-			reg = <0x18140 0x40>, <0x181c8 0x08>;
-			reg-names = "gpio", "pwm";
-			ngpios = <17>;
-			gpio-controller;
-			#gpio-cells = <2>;
-			#pwm-cells = <2>;
-			interrupt-controller;
-			#interrupt-cells = <2>;
-			interrupts = <87>, <88>, <89>;
-			clocks = <&coreclk 0>;
-		};
diff --git a/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml b/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
new file mode 100644
index 000000000000..d1695e7bd825
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
@@ -0,0 +1,146 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/gpio-mvebu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Marvell EBU GPIO controller
+
+maintainers:
+  - Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+  - Andrew Lunn <andrew@lunn.ch>
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - marvell,armada-8k-gpio
+          - marvell,orion-gpio
+
+      - items:
+          - enum:
+              - marvell,mv78200-gpio
+              - marvell,armada-370-gpio
+              - marvell,armadaxp-gpio
+          - const: marvell,orion-gpio
+
+  reg:
+    description: |
+      Address and length of the register set for the device. Not used for
+      marvell,armada-8k-gpio.
+
+      For the "marvell,armadaxp-gpio" variant a second entry is expected for
+      the per-cpu registers. For other variants second entry can be provided,
+      for the PWM function using the GPIO Blink Counter on/off registers.
+    minItems: 1
+    maxItems: 2
+
+  reg-names:
+    items:
+      - const: gpio
+      - const: pwm
+    minItems: 1
+
+  interrupts:
+    description: |
+      The list of interrupts that are used for all the pins managed by this
+      GPIO bank. There can be more than one interrupt (example: 1 interrupt
+      per 8 pins on Armada XP, which means 4 interrupts per bank of 32
+      GPIOs).
+    minItems: 1
+    maxItems: 4
+
+  interrupt-controller: true
+
+  "#interrupt-cells":
+    const: 2
+
+  gpio-controller: true
+
+  ngpios:
+    minimum: 1
+    maximum: 32
+
+  "#gpio-cells":
+    const: 2
+
+  "#pwm-cells":
+    description:
+      The first cell is the GPIO line number. The second cell is the period
+      in nanoseconds.
+    const: 2
+
+  clocks:
+    description:
+      Clock(s) used for PWM function.
+    items:
+      - description: Core clock
+      - description: AXI bus clock
+    minItems: 1
+
+  clock-names:
+    items:
+      - const: core
+      - const: axi
+    minItems: 1
+
+required:
+  - compatible
+  - gpio-controller
+  - ngpios
+  - "#gpio-cells"
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: marvell,armada-8k-gpio
+    then:
+      required:
+        - offset
+    else:
+      required:
+        - reg
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: marvell,armadaxp-gpio
+    then:
+      properties:
+        reg:
+          minItems: 2
+        reg-names:
+          minItems: 2
+
+unevaluatedProperties: true
+
+examples:
+  - |
+    gpio@d0018100 {
+      compatible = "marvell,armadaxp-gpio", "marvell,orion-gpio";
+      reg = <0xd0018100 0x40>, <0xd0018800 0x30>;
+      ngpios = <32>;
+      gpio-controller;
+      #gpio-cells = <2>;
+      interrupt-controller;
+      #interrupt-cells = <2>;
+      interrupts = <16>, <17>, <18>, <19>;
+    };
+
+  - |
+    gpio@18140 {
+      compatible = "marvell,armada-370-gpio", "marvell,orion-gpio";
+      reg = <0x18140 0x40>, <0x181c8 0x08>;
+      reg-names = "gpio", "pwm";
+      ngpios = <17>;
+      gpio-controller;
+      #gpio-cells = <2>;
+      #pwm-cells = <2>;
+      interrupt-controller;
+      #interrupt-cells = <2>;
+      interrupts = <87>, <88>, <89>;
+      clocks = <&coreclk 0>;
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index 55114e73de26..e15a4d574a32 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -16134,7 +16134,7 @@ L:	linux-pwm@vger.kernel.org
 S:	Maintained
 Q:	https://patchwork.ozlabs.org/project/linux-pwm/list/
 T:	git git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm.git
-F:	Documentation/devicetree/bindings/gpio/gpio-mvebu.txt
+F:	Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
 F:	Documentation/devicetree/bindings/pwm/
 F:	Documentation/driver-api/pwm.rst
 F:	drivers/gpio/gpio-mvebu.c
-- 
2.36.1


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

* [PATCH v4 2/3] dt-bindings: gpio: gpio-mvebu: deprecate armadaxp-gpio
  2022-05-26  1:29 [PATCH v4 0/3] dt-bindings: gpio: gpio-mvebu: Convert to DT schema format Chris Packham
  2022-05-26  1:29 ` [PATCH v4 1/3] dt-bindings: gpio: gpio-mvebu: convert txt binding " Chris Packham
@ 2022-05-26  1:29 ` Chris Packham
  2022-05-26 12:27   ` Krzysztof Kozlowski
  2022-11-28  7:59   ` Pali Rohár
  2022-05-26  1:29 ` [PATCH v4 3/3] dt-bindings: gpio: gpio-mvebu: document offset and marvell,pwm-offset Chris Packham
  2022-06-23 20:25 ` [PATCH v4 0/3] dt-bindings: gpio: gpio-mvebu: Convert to DT schema format Bartosz Golaszewski
  3 siblings, 2 replies; 11+ messages in thread
From: Chris Packham @ 2022-05-26  1:29 UTC (permalink / raw)
  To: robh+dt, krzysztof.kozlowski+dt, linus.walleij, brgl,
	thierry.reding, u.kleine-koenig, lee.jones, andrew,
	thomas.petazzoni
  Cc: devicetree, linux-kernel, linux-gpio, linux-pwm, Chris Packham

Commit 5f79c651e81e ("arm: mvebu: use global interrupts for GPIOs on
Armada XP") the marvell,armadaxp-gpio compatible obsolete.

The driver code still exists to handle the armadaxp behaviour but all
the in-tree boards use the marvell,armada-370-gpio.  Document the
marvell,armadaxp-gpio compatible as deprecated.

Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
---

Notes:
    This could potentially be squashed into the first commit but it seemed
    more proper to do a straight 1:1 conversion of the old binding then
    clean things up to match reality.
    
    Changes in v4:
    - New

 .../devicetree/bindings/gpio/gpio-mvebu.yaml  | 24 +++++++------------
 1 file changed, 8 insertions(+), 16 deletions(-)

diff --git a/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml b/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
index d1695e7bd825..459ec35864fe 100644
--- a/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
+++ b/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
@@ -21,17 +21,21 @@ properties:
           - enum:
               - marvell,mv78200-gpio
               - marvell,armada-370-gpio
-              - marvell,armadaxp-gpio
           - const: marvell,orion-gpio
 
+      - description: Deprecated binding
+        items:
+          - const: marvell,armadaxp-gpio
+          - const: marvell,orion-gpio
+        deprecated: true
+
   reg:
     description: |
       Address and length of the register set for the device. Not used for
       marvell,armada-8k-gpio.
 
-      For the "marvell,armadaxp-gpio" variant a second entry is expected for
-      the per-cpu registers. For other variants second entry can be provided,
-      for the PWM function using the GPIO Blink Counter on/off registers.
+      A second entry can be provided, for the PWM function using the GPIO Blink
+      Counter on/off registers.
     minItems: 1
     maxItems: 2
 
@@ -103,18 +107,6 @@ allOf:
       required:
         - reg
 
-  - if:
-      properties:
-        compatible:
-          contains:
-            const: marvell,armadaxp-gpio
-    then:
-      properties:
-        reg:
-          minItems: 2
-        reg-names:
-          minItems: 2
-
 unevaluatedProperties: true
 
 examples:
-- 
2.36.1


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

* [PATCH v4 3/3] dt-bindings: gpio: gpio-mvebu: document offset and marvell,pwm-offset
  2022-05-26  1:29 [PATCH v4 0/3] dt-bindings: gpio: gpio-mvebu: Convert to DT schema format Chris Packham
  2022-05-26  1:29 ` [PATCH v4 1/3] dt-bindings: gpio: gpio-mvebu: convert txt binding " Chris Packham
  2022-05-26  1:29 ` [PATCH v4 2/3] dt-bindings: gpio: gpio-mvebu: deprecate armadaxp-gpio Chris Packham
@ 2022-05-26  1:29 ` Chris Packham
  2022-06-19 20:13   ` Uwe Kleine-König
  2022-06-22 13:54   ` Thierry Reding
  2022-06-23 20:25 ` [PATCH v4 0/3] dt-bindings: gpio: gpio-mvebu: Convert to DT schema format Bartosz Golaszewski
  3 siblings, 2 replies; 11+ messages in thread
From: Chris Packham @ 2022-05-26  1:29 UTC (permalink / raw)
  To: robh+dt, krzysztof.kozlowski+dt, linus.walleij, brgl,
	thierry.reding, u.kleine-koenig, lee.jones, andrew,
	thomas.petazzoni
  Cc: devicetree, linux-kernel, linux-gpio, linux-pwm, Chris Packham

The offset and marvell,pwm-offset properties weren't in the old binding.
Add them based on the existing usage in the driver and board DTS when
the marvell,armada-8k-gpio compatible is used.

Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---

Notes:
    Changes in v4:
    - Reword commit message slightly
    - Add review from Krzysztof
    Changes in v3:
    - Split off from 1:1 conversion patch

 Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml b/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
index 459ec35864fe..f1bd1e6b2e1f 100644
--- a/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
+++ b/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
@@ -45,6 +45,10 @@ properties:
       - const: pwm
     minItems: 1
 
+  offset:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Offset in the register map for the gpio registers (in bytes)
+
   interrupts:
     description: |
       The list of interrupts that are used for all the pins managed by this
@@ -68,6 +72,10 @@ properties:
   "#gpio-cells":
     const: 2
 
+  marvell,pwm-offset:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Offset in the register map for the pwm registers (in bytes)
+
   "#pwm-cells":
     description:
       The first cell is the GPIO line number. The second cell is the period
-- 
2.36.1


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

* Re: [PATCH v4 1/3] dt-bindings: gpio: gpio-mvebu: convert txt binding to DT schema format
  2022-05-26  1:29 ` [PATCH v4 1/3] dt-bindings: gpio: gpio-mvebu: convert txt binding " Chris Packham
@ 2022-05-26 12:26   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2022-05-26 12:26 UTC (permalink / raw)
  To: Chris Packham, robh+dt, krzysztof.kozlowski+dt, linus.walleij,
	brgl, thierry.reding, u.kleine-koenig, lee.jones, andrew,
	thomas.petazzoni
  Cc: devicetree, linux-kernel, linux-gpio, linux-pwm

On 26/05/2022 03:29, Chris Packham wrote:
> Convert the existing device tree binding to DT schema format.
> 
> The old binding listed the interrupt-controller and related properties
> as required but there are sufficiently many existing usages without it
> that the YAML binding does not make the interrupt properties required.
> 
> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> Reviewed-by: Andrew Lunn <andrew@lunn.ch>


Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>


Best regards,
Krzysztof

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

* Re: [PATCH v4 2/3] dt-bindings: gpio: gpio-mvebu: deprecate armadaxp-gpio
  2022-05-26  1:29 ` [PATCH v4 2/3] dt-bindings: gpio: gpio-mvebu: deprecate armadaxp-gpio Chris Packham
@ 2022-05-26 12:27   ` Krzysztof Kozlowski
  2022-11-28  7:59   ` Pali Rohár
  1 sibling, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2022-05-26 12:27 UTC (permalink / raw)
  To: Chris Packham, robh+dt, krzysztof.kozlowski+dt, linus.walleij,
	brgl, thierry.reding, u.kleine-koenig, lee.jones, andrew,
	thomas.petazzoni
  Cc: devicetree, linux-kernel, linux-gpio, linux-pwm

On 26/05/2022 03:29, Chris Packham wrote:
> Commit 5f79c651e81e ("arm: mvebu: use global interrupts for GPIOs on
> Armada XP") the marvell,armadaxp-gpio compatible obsolete.
> 
> The driver code still exists to handle the armadaxp behaviour but all
> the in-tree boards use the marvell,armada-370-gpio.  Document the
> marvell,armadaxp-gpio compatible as deprecated.
> 
> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>


Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>


Best regards,
Krzysztof

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

* Re: [PATCH v4 3/3] dt-bindings: gpio: gpio-mvebu: document offset and marvell,pwm-offset
  2022-05-26  1:29 ` [PATCH v4 3/3] dt-bindings: gpio: gpio-mvebu: document offset and marvell,pwm-offset Chris Packham
@ 2022-06-19 20:13   ` Uwe Kleine-König
  2022-06-22 13:54   ` Thierry Reding
  1 sibling, 0 replies; 11+ messages in thread
From: Uwe Kleine-König @ 2022-06-19 20:13 UTC (permalink / raw)
  To: Chris Packham
  Cc: robh+dt, krzysztof.kozlowski+dt, linus.walleij, brgl,
	thierry.reding, lee.jones, andrew, thomas.petazzoni, devicetree,
	linux-kernel, linux-gpio, linux-pwm

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

On Thu, May 26, 2022 at 01:29:46PM +1200, Chris Packham wrote:
> The offset and marvell,pwm-offset properties weren't in the old binding.
> Add them based on the existing usage in the driver and board DTS when
> the marvell,armada-8k-gpio compatible is used.
> 
> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
> 
> Notes:
>     Changes in v4:
>     - Reword commit message slightly
>     - Add review from Krzysztof
>     Changes in v3:
>     - Split off from 1:1 conversion patch
> 
>  Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml b/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
> index 459ec35864fe..f1bd1e6b2e1f 100644
> --- a/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
> +++ b/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
> @@ -45,6 +45,10 @@ properties:
>        - const: pwm
>      minItems: 1
>  
> +  offset:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: Offset in the register map for the gpio registers (in bytes)
> +
>    interrupts:
>      description: |
>        The list of interrupts that are used for all the pins managed by this
> @@ -68,6 +72,10 @@ properties:
>    "#gpio-cells":
>      const: 2
>  
> +  marvell,pwm-offset:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: Offset in the register map for the pwm registers (in bytes)
> +

Seems to match reality (in the driver and some dtsi files).

Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

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

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

* Re: [PATCH v4 3/3] dt-bindings: gpio: gpio-mvebu: document offset and marvell,pwm-offset
  2022-05-26  1:29 ` [PATCH v4 3/3] dt-bindings: gpio: gpio-mvebu: document offset and marvell,pwm-offset Chris Packham
  2022-06-19 20:13   ` Uwe Kleine-König
@ 2022-06-22 13:54   ` Thierry Reding
  1 sibling, 0 replies; 11+ messages in thread
From: Thierry Reding @ 2022-06-22 13:54 UTC (permalink / raw)
  To: Chris Packham, linus.walleij, brgl
  Cc: robh+dt, krzysztof.kozlowski+dt, u.kleine-koenig, lee.jones,
	andrew, thomas.petazzoni, devicetree, linux-kernel, linux-gpio,
	linux-pwm

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

On Thu, May 26, 2022 at 01:29:46PM +1200, Chris Packham wrote:
> The offset and marvell,pwm-offset properties weren't in the old binding.
> Add them based on the existing usage in the driver and board DTS when
> the marvell,armada-8k-gpio compatible is used.
> 
> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
> 
> Notes:
>     Changes in v4:
>     - Reword commit message slightly
>     - Add review from Krzysztof
>     Changes in v3:
>     - Split off from 1:1 conversion patch
> 
>  Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml b/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
> index 459ec35864fe..f1bd1e6b2e1f 100644
> --- a/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
> +++ b/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
> @@ -45,6 +45,10 @@ properties:
>        - const: pwm
>      minItems: 1
>  
> +  offset:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: Offset in the register map for the gpio registers (in bytes)
> +
>    interrupts:
>      description: |
>        The list of interrupts that are used for all the pins managed by this
> @@ -68,6 +72,10 @@ properties:
>    "#gpio-cells":
>      const: 2
>  
> +  marvell,pwm-offset:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: Offset in the register map for the pwm registers (in bytes)
> +

It would probably have been better to add multiple compatible strings to
hide parameters like this, but given that this has been in the DTS files
for more than a year at this point, it's probably too late now.

Acked-by: Thierry Reding <thierry.reding@gmail.com>

Linus, Bartosz, will you pick up the series into the GPIO tree?

Thierry

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

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

* Re: [PATCH v4 0/3] dt-bindings: gpio: gpio-mvebu: Convert to DT schema format
  2022-05-26  1:29 [PATCH v4 0/3] dt-bindings: gpio: gpio-mvebu: Convert to DT schema format Chris Packham
                   ` (2 preceding siblings ...)
  2022-05-26  1:29 ` [PATCH v4 3/3] dt-bindings: gpio: gpio-mvebu: document offset and marvell,pwm-offset Chris Packham
@ 2022-06-23 20:25 ` Bartosz Golaszewski
  3 siblings, 0 replies; 11+ messages in thread
From: Bartosz Golaszewski @ 2022-06-23 20:25 UTC (permalink / raw)
  To: Chris Packham
  Cc: Rob Herring, Krzysztof Kozlowski, Linus Walleij, Thierry Reding,
	Uwe Kleine-König, Lee Jones, Andrew Lunn, Thomas Petazzoni,
	devicetree, Linux Kernel Mailing List, open list:GPIO SUBSYSTEM,
	open list:PWM SUBSYSTEM

On Thu, May 26, 2022 at 3:29 AM Chris Packham
<chris.packham@alliedtelesis.co.nz> wrote:
>
> The 1st patch converts the old binding mostly 1:1.
> The 2nd patch deprecates the unused marvell,armadaxp compatible.
> The 3rd patch documents the existing usage of the offset/marvell,pwm-offset
> properties.
>
> Chris Packham (3):
>   dt-bindings: gpio: gpio-mvebu: convert txt binding to DT schema format
>   dt-bindings: gpio: gpio-mvebu: deprecate armadaxp-gpio
>   dt-bindings: gpio: gpio-mvebu: document offset and marvell,pwm-offset
>
>  .../arm/marvell/ap80x-system-controller.txt   |   2 +-
>  .../arm/marvell/cp110-system-controller.txt   |   2 +-
>  .../devicetree/bindings/gpio/gpio-mvebu.txt   |  93 -----------
>  .../devicetree/bindings/gpio/gpio-mvebu.yaml  | 146 ++++++++++++++++++
>  MAINTAINERS                                   |   2 +-
>  5 files changed, 149 insertions(+), 96 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-mvebu.txt
>  create mode 100644 Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
>
> --
> 2.36.1
>

Applied the series, thanks!

Bart

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

* Re: [PATCH v4 2/3] dt-bindings: gpio: gpio-mvebu: deprecate armadaxp-gpio
  2022-05-26  1:29 ` [PATCH v4 2/3] dt-bindings: gpio: gpio-mvebu: deprecate armadaxp-gpio Chris Packham
  2022-05-26 12:27   ` Krzysztof Kozlowski
@ 2022-11-28  7:59   ` Pali Rohár
  2022-11-28 20:16     ` Chris Packham
  1 sibling, 1 reply; 11+ messages in thread
From: Pali Rohár @ 2022-11-28  7:59 UTC (permalink / raw)
  To: Chris Packham
  Cc: robh+dt, krzysztof.kozlowski+dt, linus.walleij, brgl,
	thierry.reding, u.kleine-koenig, lee.jones, andrew,
	thomas.petazzoni, devicetree, linux-kernel, linux-gpio,
	linux-pwm

On Thursday 26 May 2022 13:29:45 Chris Packham wrote:
> Commit 5f79c651e81e ("arm: mvebu: use global interrupts for GPIOs on
> Armada XP") the marvell,armadaxp-gpio compatible obsolete.

No, marvell,armadaxp-gpio is required for per-cpu interrupt support. I fixed it recently:
https://lore.kernel.org/linux-devicetree/20220714115515.5748-2-pali@kernel.org/
https://lore.kernel.org/linux-devicetree/20220714183328.4137-3-pali@kernel.org/

> The driver code still exists to handle the armadaxp behaviour but all
> the in-tree boards use the marvell,armada-370-gpio.  Document the
> marvell,armadaxp-gpio compatible as deprecated.

For per-cpu interrupt support is marvell,armadaxp-gpio needed and
therefore it cannot be deprecated.

What can be deprecated is marvell,armada-370-gpio and it can be replaced
by marvell,orion-gpio, which covers _all_ SoCs starting from the oldest
one = Orion. See discussion for more details:
https://lore.kernel.org/linux-devicetree/20220725200417.nwthxzvdv2bzd5ej@pengutronix.de/

> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> ---
> 
> Notes:
>     This could potentially be squashed into the first commit but it seemed
>     more proper to do a straight 1:1 conversion of the old binding then
>     clean things up to match reality.
>     
>     Changes in v4:
>     - New
> 
>  .../devicetree/bindings/gpio/gpio-mvebu.yaml  | 24 +++++++------------
>  1 file changed, 8 insertions(+), 16 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml b/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
> index d1695e7bd825..459ec35864fe 100644
> --- a/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
> +++ b/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
> @@ -21,17 +21,21 @@ properties:
>            - enum:
>                - marvell,mv78200-gpio
>                - marvell,armada-370-gpio
> -              - marvell,armadaxp-gpio
>            - const: marvell,orion-gpio
>  
> +      - description: Deprecated binding
> +        items:
> +          - const: marvell,armadaxp-gpio
> +          - const: marvell,orion-gpio
> +        deprecated: true
> +
>    reg:
>      description: |
>        Address and length of the register set for the device. Not used for
>        marvell,armada-8k-gpio.
>  
> -      For the "marvell,armadaxp-gpio" variant a second entry is expected for
> -      the per-cpu registers. For other variants second entry can be provided,
> -      for the PWM function using the GPIO Blink Counter on/off registers.
> +      A second entry can be provided, for the PWM function using the GPIO Blink
> +      Counter on/off registers.
>      minItems: 1
>      maxItems: 2
>  
> @@ -103,18 +107,6 @@ allOf:
>        required:
>          - reg
>  
> -  - if:
> -      properties:
> -        compatible:
> -          contains:
> -            const: marvell,armadaxp-gpio
> -    then:
> -      properties:
> -        reg:
> -          minItems: 2
> -        reg-names:
> -          minItems: 2
> -
>  unevaluatedProperties: true
>  
>  examples:
> -- 
> 2.36.1
> 

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

* Re: [PATCH v4 2/3] dt-bindings: gpio: gpio-mvebu: deprecate armadaxp-gpio
  2022-11-28  7:59   ` Pali Rohár
@ 2022-11-28 20:16     ` Chris Packham
  0 siblings, 0 replies; 11+ messages in thread
From: Chris Packham @ 2022-11-28 20:16 UTC (permalink / raw)
  To: Pali Rohár
  Cc: robh+dt, krzysztof.kozlowski+dt, linus.walleij, brgl,
	thierry.reding, u.kleine-koenig, lee.jones, andrew,
	thomas.petazzoni, devicetree, linux-kernel, linux-gpio,
	linux-pwm

Hi Pali,

On 28/11/22 20:59, Pali Rohár wrote:
> On Thursday 26 May 2022 13:29:45 Chris Packham wrote:
>> Commit 5f79c651e81e ("arm: mvebu: use global interrupts for GPIOs on
>> Armada XP") the marvell,armadaxp-gpio compatible obsolete.
> No, marvell,armadaxp-gpio is required for per-cpu interrupt support. I fixed it recently:
> https://lore.kernel.org/linux-devicetree/20220714115515.5748-2-pali@kernel.org/
> https://lore.kernel.org/linux-devicetree/20220714183328.4137-3-pali@kernel.org/

I'll reply to these directly but when you changed the compatible to 
armadaxp you changed the meaning of the 2nd reg property.

>
>> The driver code still exists to handle the armadaxp behaviour but all
>> the in-tree boards use the marvell,armada-370-gpio.  Document the
>> marvell,armadaxp-gpio compatible as deprecated.
> For per-cpu interrupt support is marvell,armadaxp-gpio needed and
> therefore it cannot be deprecated.
OK. We can make it un-deprecated (as you say the code exists, just no 
board uses it currently).
>
> What can be deprecated is marvell,armada-370-gpio and it can be replaced
> by marvell,orion-gpio, which covers _all_ SoCs starting from the oldest
> one = Orion. See discussion for more details:
> https://lore.kernel.org/linux-devicetree/20220725200417.nwthxzvdv2bzd5ej@pengutronix.de/

Yes I can see that they're treated the same internally. There had been a 
trend of adding specialization compatible strings just in case they were 
needed in the future even if there was currently no difference between 
the base variant and the newer version. That argument falls a bit flat 
since we never added armada-38x-gpio.

So what path forward would you like to see? I'd happily send a patch 
un-deprecating the armadaxp compatible. I'm a little hesitant to mark 
the armada-370 as deprecated given it's current usage with the in-tree 
dtses.

>
>> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
>> ---
>>
>> Notes:
>>      This could potentially be squashed into the first commit but it seemed
>>      more proper to do a straight 1:1 conversion of the old binding then
>>      clean things up to match reality.
>>      
>>      Changes in v4:
>>      - New
>>
>>   .../devicetree/bindings/gpio/gpio-mvebu.yaml  | 24 +++++++------------
>>   1 file changed, 8 insertions(+), 16 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml b/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
>> index d1695e7bd825..459ec35864fe 100644
>> --- a/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
>> +++ b/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
>> @@ -21,17 +21,21 @@ properties:
>>             - enum:
>>                 - marvell,mv78200-gpio
>>                 - marvell,armada-370-gpio
>> -              - marvell,armadaxp-gpio
>>             - const: marvell,orion-gpio
>>   
>> +      - description: Deprecated binding
>> +        items:
>> +          - const: marvell,armadaxp-gpio
>> +          - const: marvell,orion-gpio
>> +        deprecated: true
>> +
>>     reg:
>>       description: |
>>         Address and length of the register set for the device. Not used for
>>         marvell,armada-8k-gpio.
>>   
>> -      For the "marvell,armadaxp-gpio" variant a second entry is expected for
>> -      the per-cpu registers. For other variants second entry can be provided,
>> -      for the PWM function using the GPIO Blink Counter on/off registers.
>> +      A second entry can be provided, for the PWM function using the GPIO Blink
>> +      Counter on/off registers.
>>       minItems: 1
>>       maxItems: 2
>>   
>> @@ -103,18 +107,6 @@ allOf:
>>         required:
>>           - reg
>>   
>> -  - if:
>> -      properties:
>> -        compatible:
>> -          contains:
>> -            const: marvell,armadaxp-gpio
>> -    then:
>> -      properties:
>> -        reg:
>> -          minItems: 2
>> -        reg-names:
>> -          minItems: 2
>> -
>>   unevaluatedProperties: true
>>   
>>   examples:
>> -- 
>> 2.36.1
>>

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

end of thread, other threads:[~2022-11-28 20:17 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-26  1:29 [PATCH v4 0/3] dt-bindings: gpio: gpio-mvebu: Convert to DT schema format Chris Packham
2022-05-26  1:29 ` [PATCH v4 1/3] dt-bindings: gpio: gpio-mvebu: convert txt binding " Chris Packham
2022-05-26 12:26   ` Krzysztof Kozlowski
2022-05-26  1:29 ` [PATCH v4 2/3] dt-bindings: gpio: gpio-mvebu: deprecate armadaxp-gpio Chris Packham
2022-05-26 12:27   ` Krzysztof Kozlowski
2022-11-28  7:59   ` Pali Rohár
2022-11-28 20:16     ` Chris Packham
2022-05-26  1:29 ` [PATCH v4 3/3] dt-bindings: gpio: gpio-mvebu: document offset and marvell,pwm-offset Chris Packham
2022-06-19 20:13   ` Uwe Kleine-König
2022-06-22 13:54   ` Thierry Reding
2022-06-23 20:25 ` [PATCH v4 0/3] dt-bindings: gpio: gpio-mvebu: Convert to DT schema format Bartosz Golaszewski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).