linux-spi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Lubomir Rintel <lkundrak@v3.sk>
To: Rob Herring <robh+dt@kernel.org>
Cc: Linus Walleij <linus.walleij@linaro.org>,
	Bartosz Golaszewski <bgolaszewski@baylibre.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Jason Cooper <jason@lakedaemon.net>,
	Marc Zyngier <maz@kernel.org>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Kishon Vijay Abraham I <kishon@ti.com>,
	Alessandro Zummo <a.zummo@towertech.it>,
	Alexandre Belloni <alexandre.belloni@bootlin.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mark Brown <broonie@kernel.org>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Andrew Lunn <andrew@lunn.ch>,
	Gregory Clement <gregory.clement@bootlin.com>,
	Daniel Mack <daniel@zonque.org>,
	Haojian Zhuang <haojian.zhuang@gmail.com>,
	Robert Jarzmik <robert.jarzmik@free.fr>,
	devicetree@vger.kerne
Subject: [PATCH 21/28] dt-bindings: gpio: Convert mrvl-gpio to json-schema
Date: Tue, 17 Mar 2020 10:39:15 +0100	[thread overview]
Message-ID: <20200317093922.20785-22-lkundrak@v3.sk> (raw)
In-Reply-To: <20200317093922.20785-1-lkundrak@v3.sk>

This converts the mrvl-gpio binding to DT schema format using json-schema.

Various fixes were done during the conversion, such as adding more
properties that are in fact mandatory or extending the examples to
include child nodes with extra GPIO blocks.

The compatible strings are a mess. It is not clear why so many of them
are needed; the driver doesn't really seem to differentiate between the
models. Some of them, like marvell,pxa93x-gpio and marvell,pxa1928-gpio
are not used at all, so it's not known how many interrupts they utilize.
On the other hand, mrvl,pxa-gpio has been seen in the tree, but it
doesn't end up in any actual DTB file.

In any case -- the schema merely copies whatever was in the original
binding document, so it's hopefully no more wrong that the original.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
---
 .../devicetree/bindings/gpio/mrvl-gpio.txt    |  48 -----
 .../devicetree/bindings/gpio/mrvl-gpio.yaml   | 173 ++++++++++++++++++
 2 files changed, 173 insertions(+), 48 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/gpio/mrvl-gpio.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/mrvl-gpio.yaml

diff --git a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt b/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt
deleted file mode 100644
index 30fd2201b3d4c..0000000000000
--- a/Documentation/devicetree/bindings/gpio/mrvl-gpio.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-* Marvell PXA GPIO controller
-
-Required properties:
-- compatible : Should be "intel,pxa25x-gpio", "intel,pxa26x-gpio",
-		"intel,pxa27x-gpio", "intel,pxa3xx-gpio",
-		"marvell,pxa93x-gpio", "marvell,mmp-gpio",
-		"marvell,mmp2-gpio" or marvell,pxa1928-gpio.
-- reg : Address and length of the register set for the device
-- interrupts : Should be the port interrupt shared by all gpio pins.
-  There're three gpio interrupts in arch-pxa, and they're gpio0,
-  gpio1 and gpio_mux. There're only one gpio interrupt in arch-mmp,
-  gpio_mux.
-- interrupt-names : Should be the names of irq resources. Each interrupt
-  uses its own interrupt name, so there should be as many interrupt names
-  as referenced interrupts.
-- interrupt-controller : Identifies the node as an interrupt controller.
-- #interrupt-cells: Specifies the number of cells needed to encode an
-  interrupt source.
-- gpio-controller : Marks the device node as a gpio controller.
-- #gpio-cells : Should be two.  The first cell is the pin number and
-  the second cell is used to specify flags. See gpio.txt for possible
-  values.
-
-Example for a MMP platform:
-
-	gpio: gpio@d4019000 {
-		compatible = "marvell,mmp-gpio";
-		reg = <0xd4019000 0x1000>;
-		interrupts = <49>;
-		interrupt-names = "gpio_mux";
-		gpio-controller;
-		#gpio-cells = <2>;
-		interrupt-controller;
-		#interrupt-cells = <1>;
-      };
-
-Example for a PXA3xx platform:
-
-	gpio: gpio@40e00000 {
-		compatible = "intel,pxa3xx-gpio";
-		reg = <0x40e00000 0x10000>;
-		interrupt-names = "gpio0", "gpio1", "gpio_mux";
-		interrupts = <8 9 10>;
-		gpio-controller;
-		#gpio-cells = <0x2>;
-		interrupt-controller;
-		#interrupt-cells = <0x2>;
-	};
diff --git a/Documentation/devicetree/bindings/gpio/mrvl-gpio.yaml b/Documentation/devicetree/bindings/gpio/mrvl-gpio.yaml
new file mode 100644
index 0000000000000..5c713bf59b06d
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/mrvl-gpio.yaml
@@ -0,0 +1,173 @@
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/mrvl-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Marvell PXA GPIO controller
+
+maintainers:
+  - devicetree@vger.kernel.org
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - intel,pxa25x-gpio
+              - intel,pxa26x-gpio
+              - intel,pxa27x-gpio
+              - intel,pxa3xx-gpio
+    then:
+      properties:
+        interrupts:
+          minItems: 3
+          maxItems: 3
+        interrupt-names:
+          items:
+            - const: gpio0
+            - const: gpio1
+            - const: gpio_mux
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - marvell,mmp-gpio
+              - marvell,mmp2-gpio
+    then:
+      properties:
+        interrupts:
+          maxItems: 1
+        interrupt-names:
+          items:
+            - const: gpio_mux
+
+properties:
+  $nodename:
+    pattern: '^gpio@[0-9a-f]+$'
+
+  compatible:
+    enum:
+      - intel,pxa25x-gpio
+      - intel,pxa26x-gpio
+      - intel,pxa27x-gpio
+      - intel,pxa3xx-gpio
+      - marvell,mmp-gpio
+      - marvell,mmp2-gpio
+      - marvell,pxa93x-gpio
+      - marvell,pxa1928-gpio
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+  ranges: true
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 1
+
+  gpio-controller: true
+
+  '#gpio-cells':
+    const: 2
+
+  gpio-ranges:
+    maxItems: 1
+
+  interrupts: true
+
+  interrupt-names: true
+
+  interrupt-controller: true
+
+  '#interrupt-cells':
+    const: 2
+
+patternProperties:
+  '^gpio@[0-9a-f]*$':
+    type: object
+    properties:
+      reg:
+        maxItems: 1
+
+    required:
+      - reg
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - '#address-cells'
+  - '#size-cells'
+  - reg
+  - gpio-controller
+  - '#gpio-cells'
+  - interrupts
+  - interrupt-names
+  - interrupt-controller
+  - '#interrupt-cells'
+  - ranges
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/pxa-clock.h>
+    gpio@40e00000 {
+        compatible = "intel,pxa3xx-gpio";
+        #address-cells = <1>;
+        #size-cells = <1>;
+        reg = <0x40e00000 0x10000>;
+        gpio-controller;
+        #gpio-cells = <2>;
+        interrupts = <8>, <9>, <10>;
+        interrupt-names = "gpio0", "gpio1", "gpio_mux";
+        clocks = <&clks CLK_GPIO>;
+        interrupt-controller;
+        #interrupt-cells = <2>;
+        ranges;
+    };
+  - |
+    #include <dt-bindings/clock/marvell,pxa910.h>
+    gpio@d4019000 {
+        compatible = "marvell,mmp-gpio";
+        #address-cells = <1>;
+        #size-cells = <1>;
+        reg = <0xd4019000 0x1000>;
+        gpio-controller;
+        #gpio-cells = <2>;
+        interrupts = <49>;
+        interrupt-names = "gpio_mux";
+        clocks = <&soc_clocks PXA910_CLK_GPIO>;
+        resets = <&soc_clocks PXA910_CLK_GPIO>;
+        interrupt-controller;
+        #interrupt-cells = <2>;
+        ranges;
+
+        gpio@d4019000 {
+            reg = <0xd4019000 0x4>;
+        };
+
+        gpio@d4019004 {
+            reg = <0xd4019004 0x4>;
+        };
+
+        gpio@d4019008 {
+            reg = <0xd4019008 0x4>;
+        };
+
+        gpio@d4019100 {
+            reg = <0xd4019100 0x4>;
+        };
+     };
+
+...
-- 
2.25.1

  parent reply	other threads:[~2020-03-17  9:39 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-17  9:38 [PATCH 00/28] DT: Improve validation for Marvell SoCs Lubomir Rintel
2020-03-17  9:38 ` [PATCH 01/28] ARM: dts: kirkwood: Fix interrupt controller node name Lubomir Rintel
     [not found]   ` <20200317093922.20785-2-lkundrak-NGH9Lh4a5iE@public.gmane.org>
2020-03-17 13:20     ` Andrew Lunn
2020-03-17  9:39 ` [PATCH 08/28] ARM: dts: mmp*: Fix up encoding of the /rtc interrupts property Lubomir Rintel
     [not found]   ` <20200317093922.20785-9-lkundrak-NGH9Lh4a5iE@public.gmane.org>
2020-03-17 13:30     ` Andrew Lunn
2020-03-17 13:30     ` Andrew Lunn
2020-03-17  9:39 ` [PATCH 10/28] ARM: dts: mmp3: fix USB & USB PHY node names Lubomir Rintel
2020-03-17 13:32   ` Andrew Lunn
2020-03-17  9:39 ` [PATCH 11/28] ARM: dts: berlin*: Fix up the SDHCI " Lubomir Rintel
2020-03-17 13:34   ` Andrew Lunn
2020-03-17  9:39 ` [PATCH 12/28] spi: dt-bindings: spi-controller: Slaves have no address cells Lubomir Rintel
     [not found]   ` <20200317093922.20785-13-lkundrak-NGH9Lh4a5iE@public.gmane.org>
2020-03-19 16:51     ` Rob Herring
2020-03-17  9:39 ` [PATCH 13/28] dt-bindings: serial: move Marvell compatible string to 8250 binding doc Lubomir Rintel
2020-03-17 13:48   ` Andrew Lunn
2020-03-17 19:09     ` Lubomir Rintel
2020-03-19 16:09     ` Rob Herring
     [not found]   ` <20200317093922.20785-14-lkundrak-NGH9Lh4a5iE@public.gmane.org>
2020-03-19 16:11     ` Rob Herring
2020-03-20  9:24       ` Lubomir Rintel
2020-03-17  9:39 ` [PATCH 14/28] dt-bindings: arm: l2x0: Tauros 3 is PL310 compatible Lubomir Rintel
2020-03-27 19:03   ` Rob Herring
2020-03-27 19:04   ` Rob Herring
2020-03-17  9:39 ` [PATCH 15/28] dt-bindings: arm: mrvl: Add missing compatible strings Lubomir Rintel
2020-03-17 13:54   ` Andrew Lunn
2020-03-27 19:06   ` Rob Herring
2020-03-17  9:39 ` [PATCH 16/28] dt-bindings: Add "mrvl", a legacy vendor prefix for Marvell Lubomir Rintel
2020-03-27 19:06   ` Rob Herring
     [not found] ` <20200317093922.20785-1-lkundrak-NGH9Lh4a5iE@public.gmane.org>
2020-03-17  9:38   ` [PATCH 02/28] ARM: dts: dove: Fix interrupt controller node name Lubomir Rintel
2020-03-17 13:20     ` Andrew Lunn
2020-03-17  9:38   ` [PATCH 03/28] ARM: dts: pxa168: Add missing address/size cells to i2c nodes Lubomir Rintel
     [not found]     ` <20200317093922.20785-4-lkundrak-NGH9Lh4a5iE@public.gmane.org>
2020-03-17 13:21       ` Andrew Lunn
2020-03-17  9:38   ` [PATCH 04/28] ARM: dts: pxa168: Fix the gpio interrupt cell number Lubomir Rintel
2020-03-17 13:27     ` Andrew Lunn
2020-03-17  9:38   ` [PATCH 05/28] ARM: dts: pxa3xx: Fix up encoding of the /gpio interrupts property Lubomir Rintel
     [not found]     ` <20200317093922.20785-6-lkundrak-NGH9Lh4a5iE@public.gmane.org>
2020-03-17 13:28       ` Andrew Lunn
2020-03-21  7:36         ` Robert Jarzmik
2020-03-17  9:39   ` [PATCH 06/28] ARM: dts: pxa910: Fix the gpio interrupt cell number Lubomir Rintel
2020-03-17 13:29     ` Andrew Lunn
2020-03-17  9:39   ` [PATCH 07/28] ARM: dts: pxa*: Fix up encoding of the /rtc interrupts property Lubomir Rintel
2020-03-17 13:29     ` Andrew Lunn
2020-03-17  9:39   ` [PATCH 09/28] ARM: dts: mmp3: fix L2 cache controller node name Lubomir Rintel
2020-03-17 13:31     ` Andrew Lunn
2020-03-17  9:39   ` [PATCH 17/28] dt-bindings: mmc: Fix up clk-phase-sd-hs in an example Lubomir Rintel
2020-03-17 10:04     ` Sergei Shtylyov
2020-03-27 19:08     ` Rob Herring
2020-03-17  9:39   ` [PATCH 20/28] dt-bindings: phy: Convert phy-mmp3-usb to json-schema Lubomir Rintel
2020-03-27 19:09     ` Rob Herring
2020-03-17  9:39   ` [PATCH 22/28] dt-bindings: i2c: Convert i2c-pxa " Lubomir Rintel
2020-06-03 20:41     ` Wolfram Sang
2020-03-17 13:19   ` [PATCH 00/28] DT: Improve validation for Marvell SoCs Mark Brown
2020-03-17  9:39 ` [PATCH 18/28] dt-bindings: mmc: Fix node name in an example Lubomir Rintel
2020-03-26 14:28   ` Ulf Hansson
2020-03-17  9:39 ` [PATCH 19/28] dt-bindings: mmc: Convert sdhci-pxa to json-schema Lubomir Rintel
2020-03-18 22:14   ` Rob Herring
2020-03-18 22:37   ` Rob Herring
2020-05-17 18:35     ` Lubomir Rintel
2020-03-17  9:39 ` Lubomir Rintel [this message]
2020-03-27 10:04   ` [PATCH 21/28] dt-bindings: gpio: Convert mrvl-gpio " Linus Walleij
2020-03-27 19:29     ` Rob Herring
2020-03-27 19:28   ` Rob Herring
2020-05-17 19:00     ` Lubomir Rintel
2020-03-17  9:39 ` [PATCH 23/28] dt-bindings: interrupt-controller: Convert mrvl,intc " Lubomir Rintel
2020-03-27 19:42   ` Rob Herring
2020-05-17 19:11     ` Lubomir Rintel
2020-03-17  9:39 ` [PATCH 24/28] dt-bindings: media: Convert marvell,mmp2-ccic " Lubomir Rintel
2020-03-27 19:46   ` Rob Herring
2020-05-17 19:21     ` Lubomir Rintel
2020-03-17  9:39 ` [PATCH 25/28] dt-bindings: rtc: Convert sa1100-rtc " Lubomir Rintel
2020-03-27 19:49   ` Rob Herring
2020-05-17 19:25     ` Lubomir Rintel
2020-05-18 15:12       ` Rob Herring
2020-03-17  9:39 ` [PATCH 26/28] dt-bindings: spi: Convert spi-pxa2xx " Lubomir Rintel
2020-03-27 19:52   ` Rob Herring
2020-05-17 19:30     ` Lubomir Rintel
2020-03-17  9:39 ` [PATCH 27/28] dt-bindings: timer: Convert mrvl,mmp-timer " Lubomir Rintel
2020-03-27 19:53   ` Rob Herring
2020-03-17  9:39 ` [PATCH 28/28] dt-bindings: usb: Convert ehci-mv " Lubomir Rintel
2020-03-27 19:55   ` Rob Herring
2020-05-17 19:34     ` Lubomir Rintel
2020-05-18 15:20       ` Rob Herring
2020-03-17 13:46 ` [PATCH 00/28] DT: Improve validation for Marvell SoCs Andrew Lunn
     [not found]   ` <20200317134609.GN24270-g2DYL2Zd6BY@public.gmane.org>
2020-03-17 13:55     ` Alexandre Belloni
     [not found]       ` <20200317135551.GE3448-m++hUPXGwpdeoWH0uzbU5w@public.gmane.org>
2020-03-17 13:59         ` Andrew Lunn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200317093922.20785-22-lkundrak@v3.sk \
    --to=lkundrak@v3.sk \
    --cc=a.zummo@towertech.it \
    --cc=alexandre.belloni@bootlin.com \
    --cc=andrew@lunn.ch \
    --cc=bgolaszewski@baylibre.com \
    --cc=broonie@kernel.org \
    --cc=daniel.lezcano@linaro.org \
    --cc=daniel@zonque.org \
    --cc=devicetree@vger.kerne \
    --cc=gregkh@linuxfoundation.org \
    --cc=gregory.clement@bootlin.com \
    --cc=haojian.zhuang@gmail.com \
    --cc=jason@lakedaemon.net \
    --cc=kishon@ti.com \
    --cc=linus.walleij@linaro.org \
    --cc=maz@kernel.org \
    --cc=mchehab@kernel.org \
    --cc=robert.jarzmik@free.fr \
    --cc=robh+dt@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=ulf.hansson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).