diff mbox series

dt-bindings: gpio: Convert Arm PL061 to json-schema

Message ID 20190514005033.15593-1-robh@kernel.org
State Accepted
Commit 910f38bed9439e765f7e240edfe32b5f04ad92f5
Headers show
Series dt-bindings: gpio: Convert Arm PL061 to json-schema | expand

Commit Message

Rob Herring (Arm) May 14, 2019, 12:50 a.m. UTC
Convert the Arm PL061 GPIO controller binding to json-schema format.

As I'm the author for all but the gpio-ranges line, make the schema dual
GPL/BSD license.

Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Cc: linux-gpio@vger.kernel.org
Signed-off-by: Rob Herring <robh@kernel.org>

---
This warns on a few platforms missing clocks, interrupt-controller 
and/or #interrupt-cells. We could not make those required, but really 
they should be IMO. OTOH, it's platforms like Spear and Calxeda which 
aren't too active, so I don't know that we want to fix them.

 .../devicetree/bindings/gpio/pl061-gpio.txt   | 10 ---
 .../devicetree/bindings/gpio/pl061-gpio.yaml  | 69 +++++++++++++++++++
 2 files changed, 69 insertions(+), 10 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/gpio/pl061-gpio.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/pl061-gpio.yaml

-- 
2.20.1

Comments

Viresh Kumar May 27, 2019, 6:41 a.m. UTC | #1
On 24-05-19, 13:38, Linus Walleij wrote:
> On Tue, May 14, 2019 at 2:50 AM Rob Herring <robh@kernel.org> wrote:

> 

> > Convert the Arm PL061 GPIO controller binding to json-schema format.

> >

> > As I'm the author for all but the gpio-ranges line, make the schema dual

> > GPL/BSD license.

> >

> > Cc: Linus Walleij <linus.walleij@linaro.org>

> > Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>

> > Cc: linux-gpio@vger.kernel.org

> > Signed-off-by: Rob Herring <robh@kernel.org>

> 

> Patch applied. As you know I am already a big fan of this scheme.

> 

> > This warns on a few platforms missing clocks, interrupt-controller

> > and/or #interrupt-cells. We could not make those required, but really

> > they should be IMO. OTOH, it's platforms like Spear and Calxeda which

> > aren't too active, so I don't know that we want to fix them.

> 

> What works for you works for me.

> 

> We could add dummy fixed clocks in the DTS files if

> we wanted I suppose. The #interrupt-cells and interrupt-controller

> things we can just fix, but I wonder what the maintainers of these

> platforms are up to? Isn't Calxeda yours, and could Viresh fix

> up the SPEAr?


I checked SPEAr and it is missing interrupt-controller at few places and clocks
everywhere. Missing clocks should be fine as SPEAr doesn't get clocks from DT.

And interrupt-controller can be just added, I don't think there would be any
platform dependent side-affects ?

-- 
viresh
Rob Herring (Arm) June 11, 2019, 7:54 p.m. UTC | #2
On Mon, May 27, 2019 at 12:41 AM Viresh Kumar <viresh.kumar@linaro.org> wrote:
>

> On 24-05-19, 13:38, Linus Walleij wrote:

> > On Tue, May 14, 2019 at 2:50 AM Rob Herring <robh@kernel.org> wrote:

> >

> > > Convert the Arm PL061 GPIO controller binding to json-schema format.

> > >

> > > As I'm the author for all but the gpio-ranges line, make the schema dual

> > > GPL/BSD license.

> > >

> > > Cc: Linus Walleij <linus.walleij@linaro.org>

> > > Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>

> > > Cc: linux-gpio@vger.kernel.org

> > > Signed-off-by: Rob Herring <robh@kernel.org>

> >

> > Patch applied. As you know I am already a big fan of this scheme.

> >

> > > This warns on a few platforms missing clocks, interrupt-controller

> > > and/or #interrupt-cells. We could not make those required, but really

> > > they should be IMO. OTOH, it's platforms like Spear and Calxeda which

> > > aren't too active, so I don't know that we want to fix them.

> >

> > What works for you works for me.

> >

> > We could add dummy fixed clocks in the DTS files if

> > we wanted I suppose. The #interrupt-cells and interrupt-controller

> > things we can just fix, but I wonder what the maintainers of these

> > platforms are up to? Isn't Calxeda yours, and could Viresh fix

> > up the SPEAr?


I was hoping to delete Calxeda rather than fix. I'm pretty sure none
of the distros are using the systems anymore and they were the main
users for a while. Otherwise, I would have converted all the bindings
it uses.

> I checked SPEAr and it is missing interrupt-controller at few places and clocks

> everywhere. Missing clocks should be fine as SPEAr doesn't get clocks from DT.


Clocks not from DT was supposed to be a transitional thing...

>

> And interrupt-controller can be just added, I don't think there would be any

> platform dependent side-affects ?


There shouldn't be.

Rob
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/gpio/pl061-gpio.txt b/Documentation/devicetree/bindings/gpio/pl061-gpio.txt
deleted file mode 100644
index 89058d375b7c..000000000000
--- a/Documentation/devicetree/bindings/gpio/pl061-gpio.txt
+++ /dev/null
@@ -1,10 +0,0 @@ 
-ARM PL061 GPIO controller
-
-Required properties:
-- compatible : "arm,pl061", "arm,primecell"
-- #gpio-cells : Should be two. The first cell is the pin number and the
-  second cell is used to specify optional parameters:
-  - bit 0 specifies polarity (0 for normal, 1 for inverted)
-- gpio-controller : Marks the device node as a GPIO controller.
-- interrupts : Interrupt mapping for GPIO IRQ.
-- gpio-ranges : Interaction with the PINCTRL subsystem.
diff --git a/Documentation/devicetree/bindings/gpio/pl061-gpio.yaml b/Documentation/devicetree/bindings/gpio/pl061-gpio.yaml
new file mode 100644
index 000000000000..313b17229247
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/pl061-gpio.yaml
@@ -0,0 +1,69 @@ 
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/pl061-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ARM PL061 GPIO controller
+
+maintainers:
+  - Linus Walleij <linus.walleij@linaro.org>
+  - Rob Herring <robh@kernel.org>
+
+# We need a select here so we don't match all nodes with 'arm,primecell'
+select:
+  properties:
+    compatible:
+      contains:
+        const: arm,pl061
+  required:
+    - compatible
+
+properties:
+  $nodename:
+    pattern: "^gpio@[0-9a-f]+$"
+
+  compatible:
+    items:
+      - const: arm,pl061
+      - const: arm,primecell
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    oneOf:
+      - maxItems: 1
+      - maxItems: 8
+
+  interrupt-controller: true
+
+  "#interrupt-cells":
+    const: 2
+
+  clocks:
+    maxItems: 1
+
+  clock-names: true
+
+  "#gpio-cells":
+    const: 2
+
+  gpio-controller: true
+
+  gpio-ranges:
+    maxItems: 8
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - interrupt-controller
+  - "#interrupt-cells"
+  - clocks
+  - "#gpio-cells"
+  - gpio-controller
+
+additionalProperties: false
+
+...