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
7title: SiFive GPIO controller
8
9maintainers:
10  - Yash Shah <yash.shah@sifive.com>
11  - Paul Walmsley <paul.walmsley@sifive.com>
12
13properties:
14  compatible:
15    items:
16      - enum:
17          - sifive,fu540-c000-gpio
18          - sifive,fu740-c000-gpio
19      - const: sifive,gpio0
20
21  reg:
22    maxItems: 1
23
24  interrupts:
25    description:
26      interrupt mapping one per GPIO. Maximum 16 GPIOs.
27    minItems: 1
28    maxItems: 16
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  gpio-controller: true
42
43required:
44  - compatible
45  - reg
46  - interrupts
47  - interrupt-controller
48  - "#interrupt-cells"
49  - clocks
50  - "#gpio-cells"
51  - gpio-controller
52
53additionalProperties: false
54
55examples:
56  - |
57      #include <dt-bindings/clock/sifive-fu540-prci.h>
58      gpio@10060000 {
59        compatible = "sifive,fu540-c000-gpio", "sifive,gpio0";
60        interrupt-parent = <&plic>;
61        interrupts = <7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22>;
62        reg = <0x10060000 0x1000>;
63        clocks = <&tlclk PRCI_CLK_TLCLK>;
64        gpio-controller;
65        #gpio-cells = <2>;
66        interrupt-controller;
67        #interrupt-cells = <2>;
68      };
69
70...
71