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