On Mon, Nov 25, 2019 at 05:58:03AM +0000, Yash Shah wrote: > DT json-schema for GPIO controller added. > > Signed-off-by: Wesley W. Terpstra <wesley@xxxxxxxxxx> > [Atish: Compatible string update] > Signed-off-by: Atish Patra <atish.patra@xxxxxxx> > Signed-off-by: Yash Shah <yash.shah@xxxxxxxxxx> > --- > .../devicetree/bindings/gpio/gpio-sifive.yaml | 69 ++++++++++++++++++++++ > 1 file changed, 69 insertions(+) > create mode 100644 Documentation/devicetree/bindings/gpio/gpio-sifive.yaml > > diff --git a/Documentation/devicetree/bindings/gpio/gpio-sifive.yaml b/Documentation/devicetree/bindings/gpio/gpio-sifive.yaml > new file mode 100644 > index 0000000..49214bb > --- /dev/null > +++ b/Documentation/devicetree/bindings/gpio/gpio-sifive.yaml sifive,gpio.yaml would be the more standard naming. > @@ -0,0 +1,69 @@ > +# SPDX-License-Identifier: GPL-2.0 Dual license new bindings: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/gpio/gpio-sifive.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: SiFive GPIO controller > + > +maintainers: > + - Yash Shah <yash.shah@xxxxxxxxxx> > + - Paul Walmsley <paul.walmsley@xxxxxxxxxx> > + > +properties: > + compatible: > + items: > + - const: sifive,fu540-c000-gpio > + - const: sifive,gpio0 > + > + reg: > + maxItems: 1 > + > + interrupts: > + description: > + interrupt mapping one per GPIO. Maximum 16 GPIOs. What's the minimum? If not 16, you need 'minItems'. > + maxItems: 1 > + > + interrupt-controller: true > + > + "#interrupt-cells": > + const: 2 > + > + clocks: > + maxItems: 1 > + > + clock-names: true Need to define the strings. Or drop because you don't need it when there's only 1. > + > + "#gpio-cells": > + const: 2 > + > + gpio-controller: true > + > +required: > + - compatible > + - reg > + - interrupts > + - interrupt-controller > + - "#interrupt-cells" > + - clocks > + - "#gpio-cells" > + - gpio-controller > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/clock/sifive-fu540-prci.h> > + gpio@10060000 { > + compatible = "sifive,fu540-c000-gpio", "sifive,gpio0"; > + interrupt-parent = <&plic>; > + interrupts = <7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22>; > + reg = <0x0 0x10060000 0x0 0x1000>; > + clocks = <&tlclk PRCI_CLK_TLCLK>; > + gpio-controller; > + #gpio-cells = <2>; > + interrupt-controller; > + #interrupt-cells = <2>; > + }; > + > +... > -- > 2.7.4 >