Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/gpio/gpio-pca95xx.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: NXP PCA95xx I2C GPIO multiplexer
8
9maintainers:
10 - Krzysztof Kozlowski <krzk@kernel.org>
11
12description: |+
13 Bindings for the family of I2C GPIO multiplexers/expanders: NXP PCA95xx,
14 Maxim MAX73xx
15
16properties:
17 compatible:
18 oneOf:
19 - items:
20 - const: toradex,ecgpiol16
21 - const: nxp,pcal6416
22 - items:
23 - const: diodes,pi4ioe5v6534q
24 - const: nxp,pcal6534
25 - items:
26 - enum:
27 - exar,xra1202
28 - maxim,max7310
29 - maxim,max7312
30 - maxim,max7313
31 - maxim,max7315
32 - maxim,max7319
33 - maxim,max7320
34 - maxim,max7321
35 - maxim,max7322
36 - maxim,max7323
37 - maxim,max7324
38 - maxim,max7325
39 - maxim,max7326
40 - maxim,max7327
41 - nxp,pca6408
42 - nxp,pca6416
43 - nxp,pca9505
44 - nxp,pca9506
45 - nxp,pca9534
46 - nxp,pca9535
47 - nxp,pca9536
48 - nxp,pca9537
49 - nxp,pca9538
50 - nxp,pca9539
51 - nxp,pca9554
52 - nxp,pca9555
53 - nxp,pca9556
54 - nxp,pca9557
55 - nxp,pca9574
56 - nxp,pca9575
57 - nxp,pca9698
58 - nxp,pcal6408
59 - nxp,pcal6416
60 - nxp,pcal6524
61 - nxp,pcal6534
62 - nxp,pcal9535
63 - nxp,pcal9554b
64 - nxp,pcal9555a
65 - onnn,cat9554
66 - onnn,pca9654
67 - ti,pca6107
68 - ti,pca9536
69 - ti,tca6408
70 - ti,tca6416
71 - ti,tca6418
72 - ti,tca6424
73 - ti,tca9535
74 - ti,tca9538
75 - ti,tca9539
76 - ti,tca9554
77
78 reg:
79 maxItems: 1
80
81 gpio-controller: true
82
83 '#gpio-cells':
84 const: 2
85
86 gpio-line-names:
87 minItems: 1
88 maxItems: 40
89
90 interrupts:
91 maxItems: 1
92
93 interrupt-controller: true
94
95 '#interrupt-cells':
96 const: 2
97
98 reset-gpios:
99 maxItems: 1
100 description:
101 GPIO specification for the RESET input. This is an active low signal to
102 the PCA953x. Not valid for Maxim MAX732x devices.
103
104 vcc-supply:
105 description:
106 Optional power supply. Not valid for Maxim MAX732x devices.
107
108 wakeup-source:
109 $ref: /schemas/types.yaml#/definitions/flag
110
111patternProperties:
112 "^(hog-[0-9]+|.+-hog(-[0-9]+)?)$":
113 type: object
114 required:
115 - gpio-hog
116
117required:
118 - compatible
119 - reg
120 - gpio-controller
121 - "#gpio-cells"
122
123additionalProperties: false
124
125allOf:
126 - if:
127 properties:
128 compatible:
129 contains:
130 enum:
131 - maxim,max7320
132 - maxim,max7321
133 - maxim,max7322
134 - maxim,max7323
135 - maxim,max7324
136 - maxim,max7325
137 - maxim,max7326
138 - maxim,max7327
139 - toradex,ecgpiol16
140 then:
141 properties:
142 reset-gpios: false
143 vcc-supply: false
144
145examples:
146 - |
147 #include <dt-bindings/gpio/gpio.h>
148 #include <dt-bindings/interrupt-controller/irq.h>
149
150 i2c {
151 #address-cells = <1>;
152 #size-cells = <0>;
153
154 gpio@20 {
155 compatible = "nxp,pca9505";
156 reg = <0x20>;
157 pinctrl-names = "default";
158 pinctrl-0 = <&pinctrl_pca9505>;
159 gpio-controller;
160 #gpio-cells = <2>;
161 interrupt-parent = <&gpio3>;
162 interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
163
164 usb3-sata-sel-hog {
165 gpio-hog;
166 gpios = <4 GPIO_ACTIVE_HIGH>;
167 output-low;
168 line-name = "usb3_sata_sel";
169 };
170 };
171 };
172
173 - |
174 #include <dt-bindings/interrupt-controller/irq.h>
175
176 i2c {
177 #address-cells = <1>;
178 #size-cells = <0>;
179
180 gpio99: gpio@22 {
181 compatible = "nxp,pcal6524";
182 reg = <0x22>;
183 interrupt-parent = <&gpio6>;
184 interrupts = <1 IRQ_TYPE_EDGE_FALLING>; /* gpio6_161 */
185 interrupt-controller;
186 #interrupt-cells = <2>;
187 vcc-supply = <&vdds_1v8_main>;
188 gpio-controller;
189 #gpio-cells = <2>;
190 gpio-line-names = "hdmi-ct-hpd", "hdmi.ls-oe", "p02", "p03",
191 "vibra", "fault2", "p06", "p07", "en-usb",
192 "en-host1", "en-host2", "chg-int", "p14", "p15",
193 "mic-int", "en-modem", "shdn-hs-amp",
194 "chg-status+red", "green", "blue", "en-esata",
195 "fault1", "p26", "p27";
196 };
197 };
198
199 - |
200 #include <dt-bindings/interrupt-controller/irq.h>
201
202 i2c {
203 #address-cells = <1>;
204 #size-cells = <0>;
205
206 /* MAX7325 with interrupt support enabled */
207 gpio@6d {
208 compatible = "maxim,max7325";
209 reg = <0x6d>;
210 gpio-controller;
211 #gpio-cells = <2>;
212 interrupt-controller;
213 #interrupt-cells = <2>;
214 interrupt-parent = <&gpio4>;
215 interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
216 };
217 };
218
219 - |
220 i2c {
221 #address-cells = <1>;
222 #size-cells = <0>;
223
224 /* MAX7325 with interrupt support disabled */
225 gpio@6e {
226 compatible = "maxim,max7325";
227 reg = <0x6e>;
228 gpio-controller;
229 #gpio-cells = <2>;
230 };
231 };