blob: fc095646adeae0ef37ef92a19f88af651b44abd3 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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
7title: SiFive GPIO controller
8
9maintainers:
10 - Paul Walmsley <paul.walmsley@sifive.com>
11
12properties:
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
55required:
56 - compatible
57 - reg
58 - interrupts
59 - interrupt-controller
60 - "#interrupt-cells"
61 - "#gpio-cells"
62 - gpio-controller
63
64if:
65 properties:
66 compatible:
67 contains:
68 enum:
69 - sifive,fu540-c000-gpio
70 - sifive,fu740-c000-gpio
71then:
72 required:
73 - clocks
74
75additionalProperties: false
76
77examples:
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...