Merge tag 'kvmarm-fixes-5.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git...
[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,pcal9555a
52       - onnn,cat9554
53       - onnn,pca9654
54       - ti,pca6107
55       - ti,pca9536
56       - ti,tca6408
57       - ti,tca6416
58       - ti,tca6424
59       - ti,tca9539
60       - ti,tca9554
61
62   reg:
63     maxItems: 1
64
65   gpio-controller: true
66
67   '#gpio-cells':
68     const: 2
69
70   gpio-line-names:
71     minItems: 1
72     maxItems: 32
73
74   interrupts:
75     maxItems: 1
76
77   interrupt-controller: true
78
79   '#interrupt-cells':
80     const: 2
81
82   reset-gpios:
83     description:
84       GPIO specification for the RESET input. This is an active low signal to
85       the PCA953x.  Not valid for Maxim MAX732x devices.
86
87   vcc-supply:
88     description:
89       Optional power supply.  Not valid for Maxim MAX732x devices.
90
91   wakeup-source:
92     $ref: /schemas/types.yaml#/definitions/flag
93
94 patternProperties:
95   "^(hog-[0-9]+|.+-hog(-[0-9]+)?)$":
96     type: object
97     properties:
98       gpio-hog: true
99       gpios: true
100       input: true
101       output-high: true
102       output-low: true
103       line-name: true
104
105     required:
106       - gpio-hog
107       - gpios
108
109     additionalProperties: false
110
111 required:
112   - compatible
113   - reg
114   - gpio-controller
115   - "#gpio-cells"
116
117 additionalProperties: false
118
119 allOf:
120   - if:
121       properties:
122         compatible:
123           contains:
124             enum:
125               - maxim,max7320
126               - maxim,max7321
127               - maxim,max7322
128               - maxim,max7323
129               - maxim,max7324
130               - maxim,max7325
131               - maxim,max7326
132               - maxim,max7327
133     then:
134       properties:
135         reset-gpios: false
136         vcc-supply: false
137
138 examples:
139   - |
140     #include <dt-bindings/gpio/gpio.h>
141     #include <dt-bindings/interrupt-controller/irq.h>
142
143     i2c0 {
144         #address-cells = <1>;
145         #size-cells = <0>;
146
147         gpio@20 {
148             compatible = "nxp,pca9505";
149             reg = <0x20>;
150             pinctrl-names = "default";
151             pinctrl-0 = <&pinctrl_pca9505>;
152             gpio-controller;
153             #gpio-cells = <2>;
154             interrupt-parent = <&gpio3>;
155             interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
156
157             usb3-sata-sel-hog {
158                 gpio-hog;
159                 gpios = <4 GPIO_ACTIVE_HIGH>;
160                 output-low;
161                 line-name = "usb3_sata_sel";
162             };
163         };
164     };
165
166   - |
167     #include <dt-bindings/interrupt-controller/irq.h>
168
169     i2c1 {
170         #address-cells = <1>;
171         #size-cells = <0>;
172
173         gpio99: gpio@22 {
174             compatible = "nxp,pcal6524";
175             reg = <0x22>;
176             interrupt-parent = <&gpio6>;
177             interrupts = <1 IRQ_TYPE_EDGE_FALLING>; /* gpio6_161 */
178             interrupt-controller;
179             #interrupt-cells = <2>;
180             vcc-supply = <&vdds_1v8_main>;
181             gpio-controller;
182             #gpio-cells = <2>;
183             gpio-line-names = "hdmi-ct-hpd", "hdmi.ls-oe", "p02", "p03",
184                               "vibra", "fault2", "p06", "p07", "en-usb",
185                               "en-host1", "en-host2", "chg-int", "p14", "p15",
186                               "mic-int", "en-modem", "shdn-hs-amp",
187                               "chg-status+red", "green", "blue", "en-esata",
188                               "fault1", "p26", "p27";
189         };
190
191         ts3a227@3b {
192             compatible = "ti,ts3a227e";
193             reg = <0x3b>;
194             interrupt-parent = <&gpio99>;
195             interrupts = <14 IRQ_TYPE_EDGE_RISING>;
196             ti,micbias = <0>; /* 2.1V */
197         };
198     };
199
200   - |
201     #include <dt-bindings/interrupt-controller/irq.h>
202
203     i2c2 {
204         #address-cells = <1>;
205         #size-cells = <0>;
206
207         /* MAX7325 with interrupt support enabled */
208         gpio@6d {
209             compatible = "maxim,max7325";
210             reg = <0x6d>;
211             gpio-controller;
212             #gpio-cells = <2>;
213             interrupt-controller;
214             #interrupt-cells = <2>;
215             interrupt-parent = <&gpio4>;
216             interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
217         };
218     };
219
220   - |
221     i2c3 {
222         #address-cells = <1>;
223         #size-cells = <0>;
224
225         /* MAX7325 with interrupt support disabled */
226         gpio@6e {
227             compatible = "maxim,max7325";
228             reg = <0x6e>;
229             gpio-controller;
230             #gpio-cells = <2>;
231         };
232     };