Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf
[linux-2.6-block.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   - Paul Walmsley <paul.walmsley@sifive.com>
11
12 properties:
13   compatible:
14     items:
15       - enum:
16           - sifive,fu540-c000-gpio
17           - sifive,fu740-c000-gpio
18           - canaan,k210-gpiohs
19       - const: sifive,gpio0
20
21   reg:
22     maxItems: 1
23
24   interrupts:
25     description:
26       Interrupt mapping, one per GPIO. Maximum 32 GPIOs.
27     minItems: 1
28     maxItems: 32
29
30   interrupt-controller: true
31
32   "#interrupt-cells":
33     const: 2
34
35   clocks:
36     maxItems: 1
37
38   "#gpio-cells":
39     const: 2
40
41   ngpios:
42     description:
43       The number of GPIOs available on the controller implementation.
44       It is 16 for the SiFive SoCs and 32 for the Canaan K210.
45     minimum: 1
46     maximum: 32
47     default: 16
48
49   gpio-line-names:
50     minItems: 1
51     maxItems: 32
52
53   gpio-controller: true
54
55 required:
56   - compatible
57   - reg
58   - interrupts
59   - interrupt-controller
60   - "#interrupt-cells"
61   - "#gpio-cells"
62   - gpio-controller
63
64 if:
65   properties:
66     compatible:
67       contains:
68         enum:
69           - sifive,fu540-c000-gpio
70           - sifive,fu740-c000-gpio
71 then:
72   required:
73     - clocks
74
75 additionalProperties: false
76
77 examples:
78   - |
79       #include <dt-bindings/clock/sifive-fu540-prci.h>
80       gpio@10060000 {
81         compatible = "sifive,fu540-c000-gpio", "sifive,gpio0";
82         interrupt-parent = <&plic>;
83         interrupts = <7>, <8>, <9>, <10>, <11>, <12>, <13>, <14>, <15>, <16>,
84                      <17>, <18>, <19>, <20>, <21>, <22>;
85         reg = <0x10060000 0x1000>;
86         clocks = <&tlclk FU540_PRCI_CLK_TLCLK>;
87         gpio-controller;
88         #gpio-cells = <2>;
89         interrupt-controller;
90         #interrupt-cells = <2>;
91       };
92
93 ...