blob: daadfb4926c319636e84a62099bac3b7c845bade [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/gpio-ep9301.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: EP93xx GPIO controller
8
9maintainers:
10 - Linus Walleij <linus.walleij@linaro.org>
11 - Bartosz Golaszewski <brgl@bgdev.pl>
12 - Nikita Shubin <nikita.shubin@maquefel.me>
13
14properties:
15 compatible:
16 oneOf:
17 - const: cirrus,ep9301-gpio
18 - items:
19 - enum:
20 - cirrus,ep9302-gpio
21 - cirrus,ep9307-gpio
22 - cirrus,ep9312-gpio
23 - cirrus,ep9315-gpio
24 - const: cirrus,ep9301-gpio
25
26 reg:
27 minItems: 2
28 items:
29 - description: data register
30 - description: direction register
31 - description: interrupt registers base
32
33 reg-names:
34 minItems: 2
35 items:
36 - const: data
37 - const: dir
38 - const: intr
39
40 gpio-controller: true
41
42 gpio-ranges: true
43
44 "#gpio-cells":
45 const: 2
46
47 interrupt-controller: true
48
49 "#interrupt-cells":
50 const: 2
51
52 interrupts:
53 oneOf:
54 - maxItems: 1
55 - description: port F has dedicated irq line for each gpio line
56 maxItems: 8
57
58required:
59 - compatible
60 - reg
61 - gpio-controller
62 - "#gpio-cells"
63
64additionalProperties: false
65
66examples:
67 - |
68 gpio@80840000 {
69 compatible = "cirrus,ep9301-gpio";
70 reg = <0x80840000 0x04>,
71 <0x80840010 0x04>,
72 <0x80840090 0x1c>;
73 reg-names = "data", "dir", "intr";
74 gpio-controller;
75 #gpio-cells = <2>;
76 interrupt-controller;
77 interrupt-parent = <&vic1>;
78 interrupts = <27>;
79 };
80
81 gpio@80840004 {
82 compatible = "cirrus,ep9301-gpio";
83 reg = <0x80840004 0x04>,
84 <0x80840014 0x04>,
85 <0x808400ac 0x1c>;
86 reg-names = "data", "dir", "intr";
87 gpio-controller;
88 #gpio-cells = <2>;
89 interrupt-controller;
90 interrupt-parent = <&vic1>;
91 interrupts = <27>;
92 };
93
94 gpio@80840008 {
95 compatible = "cirrus,ep9301-gpio";
96 reg = <0x80840008 0x04>,
97 <0x80840018 0x04>;
98 reg-names = "data", "dir";
99 gpio-controller;
100 #gpio-cells = <2>;
101 };
102
103 gpio@8084000c {
104 compatible = "cirrus,ep9301-gpio";
105 reg = <0x8084000c 0x04>,
106 <0x8084001c 0x04>;
107 reg-names = "data", "dir";
108 gpio-controller;
109 #gpio-cells = <2>;
110 };
111
112 gpio@80840020 {
113 compatible = "cirrus,ep9301-gpio";
114 reg = <0x80840020 0x04>,
115 <0x80840024 0x04>;
116 reg-names = "data", "dir";
117 gpio-controller;
118 #gpio-cells = <2>;
119 };
120
121 gpio@80840030 {
122 compatible = "cirrus,ep9301-gpio";
123 reg = <0x80840030 0x04>,
124 <0x80840034 0x04>,
125 <0x8084004c 0x1c>;
126 reg-names = "data", "dir", "intr";
127 gpio-controller;
128 #gpio-cells = <2>;
129 interrupt-controller;
130 interrupts-extended = <&vic0 19>, <&vic0 20>,
131 <&vic0 21>, <&vic0 22>,
132 <&vic1 15>, <&vic1 16>,
133 <&vic1 17>, <&vic1 18>;
134 };
135
136 gpio@80840038 {
137 compatible = "cirrus,ep9301-gpio";
138 reg = <0x80840038 0x04>,
139 <0x8084003c 0x04>;
140 reg-names = "data", "dir";
141 gpio-controller;
142 #gpio-cells = <2>;
143 };
144
145 gpio@80840040 {
146 compatible = "cirrus,ep9301-gpio";
147 reg = <0x80840040 0x04>,
148 <0x80840044 0x04>;
149 reg-names = "data", "dir";
150 gpio-controller;
151 #gpio-cells = <2>;
152 };
153
154...