1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/gpio/gpio-zynq.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Xilinx Zynq GPIO controller
8
9maintainers:
10  - Michal Simek <michal.simek@amd.com>
11
12properties:
13  compatible:
14    enum:
15      - xlnx,zynq-gpio-1.0
16      - xlnx,zynqmp-gpio-1.0
17      - xlnx,versal-gpio-1.0
18      - xlnx,pmc-gpio-1.0
19
20  reg:
21    maxItems: 1
22
23  "#gpio-cells":
24    const: 2
25
26  interrupts:
27    maxItems: 1
28
29  gpio-controller: true
30
31  gpio-line-names:
32    description: strings describing the names of each gpio line
33    minItems: 58
34    maxItems: 174
35
36  interrupt-controller: true
37
38  "#interrupt-cells":
39    const: 2
40
41  clocks:
42    maxItems: 1
43
44  power-domains:
45    maxItems: 1
46
47allOf:
48  - if:
49      properties:
50        compatible:
51          enum:
52            - xlnx,zynqmp-gpio-1.0
53    then:
54      properties:
55        gpio-line-names:
56          minItems: 174
57          maxItems: 174
58
59  - if:
60      properties:
61        compatible:
62          enum:
63            - xlnx,zynq-gpio-1.0
64    then:
65      properties:
66        gpio-line-names:
67          minItems: 118
68          maxItems: 118
69
70  - if:
71      properties:
72        compatible:
73          enum:
74            - xlnx,versal-gpio-1.0
75    then:
76      properties:
77        gpio-line-names:
78          minItems: 58
79          maxItems: 58
80
81  - if:
82      properties:
83        compatible:
84          enum:
85            - xlnx,pmc-gpio-1.0
86    then:
87      properties:
88        gpio-line-names:
89          minItems: 116
90          maxItems: 116
91
92required:
93  - compatible
94  - reg
95  - "#gpio-cells"
96  - interrupts
97  - gpio-controller
98  - interrupt-controller
99  - "#interrupt-cells"
100  - clocks
101
102additionalProperties: false
103
104examples:
105  - |
106    gpio@e000a000 {
107      #gpio-cells = <2>;
108      compatible = "xlnx,zynq-gpio-1.0";
109      clocks = <&clkc 42>;
110      gpio-controller;
111      interrupt-parent = <&intc>;
112      interrupts = <0 20 4>;
113      interrupt-controller;
114      #interrupt-cells = <2>;
115      reg = <0xe000a000 0x1000>;
116    };
117