blob: f5ee23c2df605de2797dcfb01090c3427c57fc8c [file] [log] [blame]
Krzysztof Kozlowskidd8efeb2020-09-16 17:57:01 +02001# 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
Krzysztof Kozlowski03999612020-09-16 17:57:02 +020012description: |+
13 Bindings for the family of I2C GPIO multiplexers/expanders: NXP PCA95xx,
14 Maxim MAX73xx
15
Krzysztof Kozlowskidd8efeb2020-09-16 17:57:01 +020016properties:
17 compatible:
18 enum:
19 - exar,xra1202
20 - maxim,max7310
21 - maxim,max7312
22 - maxim,max7313
23 - maxim,max7315
Krzysztof Kozlowski03999612020-09-16 17:57:02 +020024 - maxim,max7319
25 - maxim,max7320
26 - maxim,max7321
27 - maxim,max7322
28 - maxim,max7323
29 - maxim,max7324
30 - maxim,max7325
31 - maxim,max7326
32 - maxim,max7327
Krzysztof Kozlowskidd8efeb2020-09-16 17:57:01 +020033 - nxp,pca6416
34 - nxp,pca9505
35 - nxp,pca9534
36 - nxp,pca9535
37 - nxp,pca9536
38 - nxp,pca9537
39 - nxp,pca9538
40 - nxp,pca9539
41 - nxp,pca9554
42 - nxp,pca9555
43 - nxp,pca9556
44 - nxp,pca9557
45 - nxp,pca9574
46 - nxp,pca9575
47 - nxp,pca9698
48 - nxp,pcal6416
49 - nxp,pcal6524
50 - nxp,pcal9535
Mike Looijmans11b3de082020-10-26 17:32:43 +010051 - nxp,pcal9554b
Krzysztof Kozlowskidd8efeb2020-09-16 17:57:01 +020052 - nxp,pcal9555a
53 - onnn,cat9554
54 - onnn,pca9654
55 - ti,pca6107
56 - ti,pca9536
57 - ti,tca6408
58 - ti,tca6416
59 - ti,tca6424
60 - ti,tca9539
61 - ti,tca9554
62
63 reg:
64 maxItems: 1
65
66 gpio-controller: true
67
68 '#gpio-cells':
69 const: 2
70
71 gpio-line-names:
72 minItems: 1
73 maxItems: 32
74
75 interrupts:
76 maxItems: 1
77
78 interrupt-controller: true
79
80 '#interrupt-cells':
81 const: 2
82
83 reset-gpios:
84 description:
85 GPIO specification for the RESET input. This is an active low signal to
Krzysztof Kozlowski03999612020-09-16 17:57:02 +020086 the PCA953x. Not valid for Maxim MAX732x devices.
Krzysztof Kozlowskidd8efeb2020-09-16 17:57:01 +020087
88 vcc-supply:
89 description:
Krzysztof Kozlowski03999612020-09-16 17:57:02 +020090 Optional power supply. Not valid for Maxim MAX732x devices.
Krzysztof Kozlowskidd8efeb2020-09-16 17:57:01 +020091
92 wakeup-source:
93 $ref: /schemas/types.yaml#/definitions/flag
94
95patternProperties:
96 "^(hog-[0-9]+|.+-hog(-[0-9]+)?)$":
97 type: object
98 properties:
99 gpio-hog: true
100 gpios: true
101 input: true
102 output-high: true
103 output-low: true
104 line-name: true
105
106 required:
107 - gpio-hog
108 - gpios
109
110 additionalProperties: false
111
112required:
113 - compatible
114 - reg
115 - gpio-controller
116 - "#gpio-cells"
117
118additionalProperties: false
119
Krzysztof Kozlowski03999612020-09-16 17:57:02 +0200120allOf:
121 - if:
122 properties:
123 compatible:
124 contains:
125 enum:
126 - maxim,max7320
127 - maxim,max7321
128 - maxim,max7322
129 - maxim,max7323
130 - maxim,max7324
131 - maxim,max7325
132 - maxim,max7326
133 - maxim,max7327
134 then:
135 properties:
136 reset-gpios: false
137 vcc-supply: false
138
Krzysztof Kozlowskidd8efeb2020-09-16 17:57:01 +0200139examples:
140 - |
141 #include <dt-bindings/gpio/gpio.h>
142 #include <dt-bindings/interrupt-controller/irq.h>
143
144 i2c0 {
145 #address-cells = <1>;
146 #size-cells = <0>;
147
148 gpio@20 {
149 compatible = "nxp,pca9505";
150 reg = <0x20>;
151 pinctrl-names = "default";
152 pinctrl-0 = <&pinctrl_pca9505>;
153 gpio-controller;
154 #gpio-cells = <2>;
155 interrupt-parent = <&gpio3>;
156 interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
157
158 usb3-sata-sel-hog {
159 gpio-hog;
160 gpios = <4 GPIO_ACTIVE_HIGH>;
161 output-low;
162 line-name = "usb3_sata_sel";
163 };
164 };
165 };
166
167 - |
168 #include <dt-bindings/interrupt-controller/irq.h>
169
170 i2c1 {
171 #address-cells = <1>;
172 #size-cells = <0>;
173
174 gpio99: gpio@22 {
175 compatible = "nxp,pcal6524";
176 reg = <0x22>;
177 interrupt-parent = <&gpio6>;
178 interrupts = <1 IRQ_TYPE_EDGE_FALLING>; /* gpio6_161 */
179 interrupt-controller;
180 #interrupt-cells = <2>;
181 vcc-supply = <&vdds_1v8_main>;
182 gpio-controller;
183 #gpio-cells = <2>;
184 gpio-line-names = "hdmi-ct-hpd", "hdmi.ls-oe", "p02", "p03",
185 "vibra", "fault2", "p06", "p07", "en-usb",
186 "en-host1", "en-host2", "chg-int", "p14", "p15",
187 "mic-int", "en-modem", "shdn-hs-amp",
188 "chg-status+red", "green", "blue", "en-esata",
189 "fault1", "p26", "p27";
190 };
191
192 ts3a227@3b {
193 compatible = "ti,ts3a227e";
194 reg = <0x3b>;
195 interrupt-parent = <&gpio99>;
196 interrupts = <14 IRQ_TYPE_EDGE_RISING>;
197 ti,micbias = <0>; /* 2.1V */
198 };
199 };
Krzysztof Kozlowski03999612020-09-16 17:57:02 +0200200
201 - |
202 #include <dt-bindings/interrupt-controller/irq.h>
203
204 i2c2 {
205 #address-cells = <1>;
206 #size-cells = <0>;
207
208 /* MAX7325 with interrupt support enabled */
209 gpio@6d {
210 compatible = "maxim,max7325";
211 reg = <0x6d>;
212 gpio-controller;
213 #gpio-cells = <2>;
214 interrupt-controller;
215 #interrupt-cells = <2>;
216 interrupt-parent = <&gpio4>;
217 interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
218 };
219 };
220
221 - |
222 i2c3 {
223 #address-cells = <1>;
224 #size-cells = <0>;
225
226 /* MAX7325 with interrupt support disabled */
227 gpio@6e {
228 compatible = "maxim,max7325";
229 reg = <0x6e>;
230 gpio-controller;
231 #gpio-cells = <2>;
232 };
233 };