GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / gpio / gpio-zynq.yaml
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
7 title: Xilinx Zynq GPIO controller
8
9 maintainers:
10   - Michal Simek <michal.simek@xilinx.com>
11
12 properties:
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
47 allOf:
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
92 required:
93   - compatible
94   - reg
95   - "#gpio-cells"
96   - interrupts
97   - gpio-controller
98   - interrupt-controller
99   - "#interrupt-cells"
100   - clocks
101
102 additionalProperties: false
103
104 examples:
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     };