Merge remote-tracking branch 'torvalds/master' into perf/core
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / gpio / sifive,gpio.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/gpio/sifive,gpio.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: SiFive GPIO controller
8
9 maintainers:
10   - Yash Shah <yash.shah@sifive.com>
11   - Paul Walmsley <paul.walmsley@sifive.com>
12
13 properties:
14   compatible:
15     items:
16       - enum:
17           - sifive,fu540-c000-gpio
18           - sifive,fu740-c000-gpio
19           - canaan,k210-gpiohs
20       - const: sifive,gpio0
21
22   reg:
23     maxItems: 1
24
25   interrupts:
26     description:
27       Interrupt mapping, one per GPIO. Maximum 32 GPIOs.
28     minItems: 1
29     maxItems: 32
30
31   interrupt-controller: true
32
33   "#interrupt-cells":
34     const: 2
35
36   clocks:
37     maxItems: 1
38
39   "#gpio-cells":
40     const: 2
41
42   ngpios:
43     description:
44       The number of GPIOs available on the controller implementation.
45       It is 16 for the SiFive SoCs and 32 for the Canaan K210.
46     minimum: 1
47     maximum: 32
48     default: 16
49
50   gpio-controller: true
51
52 required:
53   - compatible
54   - reg
55   - interrupts
56   - interrupt-controller
57   - "#interrupt-cells"
58   - "#gpio-cells"
59   - gpio-controller
60
61 if:
62   properties:
63     compatible:
64       contains:
65         enum:
66           - sifive,fu540-c000-gpio
67           - sifive,fu740-c000-gpio
68 then:
69   required:
70     - clocks
71
72 additionalProperties: false
73
74 examples:
75   - |
76       #include <dt-bindings/clock/sifive-fu540-prci.h>
77       gpio@10060000 {
78         compatible = "sifive,fu540-c000-gpio", "sifive,gpio0";
79         interrupt-parent = <&plic>;
80         interrupts = <7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22>;
81         reg = <0x10060000 0x1000>;
82         clocks = <&tlclk PRCI_CLK_TLCLK>;
83         gpio-controller;
84         #gpio-cells = <2>;
85         interrupt-controller;
86         #interrupt-cells = <2>;
87       };
88
89 ...