Merge tag 'docs-5.11-2' of git://git.lwn.net/linux
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / gpio / gpio-pca95xx.yaml
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
7 title: NXP PCA95xx I2C GPIO multiplexer
8
9 maintainers:
10   - Krzysztof Kozlowski <krzk@kernel.org>
11
12 description: |+
13   Bindings for the family of I2C GPIO multiplexers/expanders: NXP PCA95xx,
14   Maxim MAX73xx
15
16 properties:
17   compatible:
18     enum:
19       - exar,xra1202
20       - maxim,max7310
21       - maxim,max7312
22       - maxim,max7313
23       - maxim,max7315
24       - 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
33       - 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
51       - nxp,pcal9554b
52       - 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
86       the PCA953x.  Not valid for Maxim MAX732x devices.
87
88   vcc-supply:
89     description:
90       Optional power supply.  Not valid for Maxim MAX732x devices.
91
92   wakeup-source:
93     $ref: /schemas/types.yaml#/definitions/flag
94
95 patternProperties:
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
112 required:
113   - compatible
114   - reg
115   - gpio-controller
116   - "#gpio-cells"
117
118 additionalProperties: false
119
120 allOf:
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
139 examples:
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     };
200
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     };