xref: /openbmc/linux/Documentation/devicetree/bindings/gpio/gpio-pca95xx.yaml (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1dd8efeb7SKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2dd8efeb7SKrzysztof Kozlowski%YAML 1.2
3dd8efeb7SKrzysztof Kozlowski---
4dd8efeb7SKrzysztof Kozlowski$id: http://devicetree.org/schemas/gpio/gpio-pca95xx.yaml#
5dd8efeb7SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6dd8efeb7SKrzysztof Kozlowski
7dd8efeb7SKrzysztof Kozlowskititle: NXP PCA95xx I2C GPIO multiplexer
8dd8efeb7SKrzysztof Kozlowski
9dd8efeb7SKrzysztof Kozlowskimaintainers:
10dd8efeb7SKrzysztof Kozlowski  - Krzysztof Kozlowski <krzk@kernel.org>
11dd8efeb7SKrzysztof Kozlowski
1203999612SKrzysztof Kozlowskidescription: |+
1303999612SKrzysztof Kozlowski  Bindings for the family of I2C GPIO multiplexers/expanders: NXP PCA95xx,
1403999612SKrzysztof Kozlowski  Maxim MAX73xx
1503999612SKrzysztof Kozlowski
16dd8efeb7SKrzysztof Kozlowskiproperties:
17dd8efeb7SKrzysztof Kozlowski  compatible:
189f7fed73SMartyn Welch    oneOf:
199f7fed73SMartyn Welch      - items:
209f7fed73SMartyn Welch          - const: diodes,pi4ioe5v6534q
219f7fed73SMartyn Welch          - const: nxp,pcal6534
229f7fed73SMartyn Welch      - items:
239f7fed73SMartyn Welch          - enum:
24dd8efeb7SKrzysztof Kozlowski              - exar,xra1202
25dd8efeb7SKrzysztof Kozlowski              - maxim,max7310
26dd8efeb7SKrzysztof Kozlowski              - maxim,max7312
27dd8efeb7SKrzysztof Kozlowski              - maxim,max7313
28dd8efeb7SKrzysztof Kozlowski              - maxim,max7315
2903999612SKrzysztof Kozlowski              - maxim,max7319
3003999612SKrzysztof Kozlowski              - maxim,max7320
3103999612SKrzysztof Kozlowski              - maxim,max7321
3203999612SKrzysztof Kozlowski              - maxim,max7322
3303999612SKrzysztof Kozlowski              - maxim,max7323
3403999612SKrzysztof Kozlowski              - maxim,max7324
3503999612SKrzysztof Kozlowski              - maxim,max7325
3603999612SKrzysztof Kozlowski              - maxim,max7326
3703999612SKrzysztof Kozlowski              - maxim,max7327
382d4fdc15SJustin Chen              - nxp,pca6408
39dd8efeb7SKrzysztof Kozlowski              - nxp,pca6416
40dd8efeb7SKrzysztof Kozlowski              - nxp,pca9505
41600be652SUwe Kleine-König              - nxp,pca9506
42dd8efeb7SKrzysztof Kozlowski              - nxp,pca9534
43dd8efeb7SKrzysztof Kozlowski              - nxp,pca9535
44dd8efeb7SKrzysztof Kozlowski              - nxp,pca9536
45dd8efeb7SKrzysztof Kozlowski              - nxp,pca9537
46dd8efeb7SKrzysztof Kozlowski              - nxp,pca9538
47dd8efeb7SKrzysztof Kozlowski              - nxp,pca9539
48dd8efeb7SKrzysztof Kozlowski              - nxp,pca9554
49dd8efeb7SKrzysztof Kozlowski              - nxp,pca9555
50dd8efeb7SKrzysztof Kozlowski              - nxp,pca9556
51dd8efeb7SKrzysztof Kozlowski              - nxp,pca9557
52dd8efeb7SKrzysztof Kozlowski              - nxp,pca9574
53dd8efeb7SKrzysztof Kozlowski              - nxp,pca9575
54dd8efeb7SKrzysztof Kozlowski              - nxp,pca9698
557bbf66e1SNate Drude              - nxp,pcal6408
56dd8efeb7SKrzysztof Kozlowski              - nxp,pcal6416
57dd8efeb7SKrzysztof Kozlowski              - nxp,pcal6524
589f7fed73SMartyn Welch              - nxp,pcal6534
59dd8efeb7SKrzysztof Kozlowski              - nxp,pcal9535
6011b3de08SMike Looijmans              - nxp,pcal9554b
61dd8efeb7SKrzysztof Kozlowski              - nxp,pcal9555a
62dd8efeb7SKrzysztof Kozlowski              - onnn,cat9554
63dd8efeb7SKrzysztof Kozlowski              - onnn,pca9654
64dd8efeb7SKrzysztof Kozlowski              - ti,pca6107
65dd8efeb7SKrzysztof Kozlowski              - ti,pca9536
66dd8efeb7SKrzysztof Kozlowski              - ti,tca6408
67dd8efeb7SKrzysztof Kozlowski              - ti,tca6416
68dd8efeb7SKrzysztof Kozlowski              - ti,tca6424
69*1b961a75SLiam Beguin              - ti,tca9538
70dd8efeb7SKrzysztof Kozlowski              - ti,tca9539
71dd8efeb7SKrzysztof Kozlowski              - ti,tca9554
72dd8efeb7SKrzysztof Kozlowski
73dd8efeb7SKrzysztof Kozlowski  reg:
74dd8efeb7SKrzysztof Kozlowski    maxItems: 1
75dd8efeb7SKrzysztof Kozlowski
76dd8efeb7SKrzysztof Kozlowski  gpio-controller: true
77dd8efeb7SKrzysztof Kozlowski
78dd8efeb7SKrzysztof Kozlowski  '#gpio-cells':
79dd8efeb7SKrzysztof Kozlowski    const: 2
80dd8efeb7SKrzysztof Kozlowski
81dd8efeb7SKrzysztof Kozlowski  gpio-line-names:
82dd8efeb7SKrzysztof Kozlowski    minItems: 1
839067b301SUwe Kleine-König    maxItems: 40
84dd8efeb7SKrzysztof Kozlowski
85dd8efeb7SKrzysztof Kozlowski  interrupts:
86dd8efeb7SKrzysztof Kozlowski    maxItems: 1
87dd8efeb7SKrzysztof Kozlowski
88dd8efeb7SKrzysztof Kozlowski  interrupt-controller: true
89dd8efeb7SKrzysztof Kozlowski
90dd8efeb7SKrzysztof Kozlowski  '#interrupt-cells':
91dd8efeb7SKrzysztof Kozlowski    const: 2
92dd8efeb7SKrzysztof Kozlowski
93dd8efeb7SKrzysztof Kozlowski  reset-gpios:
940499220dSRob Herring    maxItems: 1
95dd8efeb7SKrzysztof Kozlowski    description:
96dd8efeb7SKrzysztof Kozlowski      GPIO specification for the RESET input. This is an active low signal to
9703999612SKrzysztof Kozlowski      the PCA953x.  Not valid for Maxim MAX732x devices.
98dd8efeb7SKrzysztof Kozlowski
99dd8efeb7SKrzysztof Kozlowski  vcc-supply:
100dd8efeb7SKrzysztof Kozlowski    description:
10103999612SKrzysztof Kozlowski      Optional power supply.  Not valid for Maxim MAX732x devices.
102dd8efeb7SKrzysztof Kozlowski
103dd8efeb7SKrzysztof Kozlowski  wakeup-source:
104dd8efeb7SKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/flag
105dd8efeb7SKrzysztof Kozlowski
106dd8efeb7SKrzysztof KozlowskipatternProperties:
107dd8efeb7SKrzysztof Kozlowski  "^(hog-[0-9]+|.+-hog(-[0-9]+)?)$":
108dd8efeb7SKrzysztof Kozlowski    type: object
109dd8efeb7SKrzysztof Kozlowski    properties:
110dd8efeb7SKrzysztof Kozlowski      gpio-hog: true
111dd8efeb7SKrzysztof Kozlowski      gpios: true
112dd8efeb7SKrzysztof Kozlowski      input: true
113dd8efeb7SKrzysztof Kozlowski      output-high: true
114dd8efeb7SKrzysztof Kozlowski      output-low: true
115dd8efeb7SKrzysztof Kozlowski      line-name: true
116dd8efeb7SKrzysztof Kozlowski
117dd8efeb7SKrzysztof Kozlowski    required:
118dd8efeb7SKrzysztof Kozlowski      - gpio-hog
119dd8efeb7SKrzysztof Kozlowski      - gpios
120dd8efeb7SKrzysztof Kozlowski
121dd8efeb7SKrzysztof Kozlowski    additionalProperties: false
122dd8efeb7SKrzysztof Kozlowski
123dd8efeb7SKrzysztof Kozlowskirequired:
124dd8efeb7SKrzysztof Kozlowski  - compatible
125dd8efeb7SKrzysztof Kozlowski  - reg
126dd8efeb7SKrzysztof Kozlowski  - gpio-controller
127dd8efeb7SKrzysztof Kozlowski  - "#gpio-cells"
128dd8efeb7SKrzysztof Kozlowski
129dd8efeb7SKrzysztof KozlowskiadditionalProperties: false
130dd8efeb7SKrzysztof Kozlowski
13103999612SKrzysztof KozlowskiallOf:
13203999612SKrzysztof Kozlowski  - if:
13303999612SKrzysztof Kozlowski      properties:
13403999612SKrzysztof Kozlowski        compatible:
13503999612SKrzysztof Kozlowski          contains:
13603999612SKrzysztof Kozlowski            enum:
13703999612SKrzysztof Kozlowski              - maxim,max7320
13803999612SKrzysztof Kozlowski              - maxim,max7321
13903999612SKrzysztof Kozlowski              - maxim,max7322
14003999612SKrzysztof Kozlowski              - maxim,max7323
14103999612SKrzysztof Kozlowski              - maxim,max7324
14203999612SKrzysztof Kozlowski              - maxim,max7325
14303999612SKrzysztof Kozlowski              - maxim,max7326
14403999612SKrzysztof Kozlowski              - maxim,max7327
14503999612SKrzysztof Kozlowski    then:
14603999612SKrzysztof Kozlowski      properties:
14703999612SKrzysztof Kozlowski        reset-gpios: false
14803999612SKrzysztof Kozlowski        vcc-supply: false
14903999612SKrzysztof Kozlowski
150dd8efeb7SKrzysztof Kozlowskiexamples:
151dd8efeb7SKrzysztof Kozlowski  - |
152dd8efeb7SKrzysztof Kozlowski    #include <dt-bindings/gpio/gpio.h>
153dd8efeb7SKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/irq.h>
154dd8efeb7SKrzysztof Kozlowski
15520a72af1SRob Herring    i2c {
156dd8efeb7SKrzysztof Kozlowski        #address-cells = <1>;
157dd8efeb7SKrzysztof Kozlowski        #size-cells = <0>;
158dd8efeb7SKrzysztof Kozlowski
159dd8efeb7SKrzysztof Kozlowski        gpio@20 {
160dd8efeb7SKrzysztof Kozlowski            compatible = "nxp,pca9505";
161dd8efeb7SKrzysztof Kozlowski            reg = <0x20>;
162dd8efeb7SKrzysztof Kozlowski            pinctrl-names = "default";
163dd8efeb7SKrzysztof Kozlowski            pinctrl-0 = <&pinctrl_pca9505>;
164dd8efeb7SKrzysztof Kozlowski            gpio-controller;
165dd8efeb7SKrzysztof Kozlowski            #gpio-cells = <2>;
166dd8efeb7SKrzysztof Kozlowski            interrupt-parent = <&gpio3>;
167dd8efeb7SKrzysztof Kozlowski            interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
168dd8efeb7SKrzysztof Kozlowski
169dd8efeb7SKrzysztof Kozlowski            usb3-sata-sel-hog {
170dd8efeb7SKrzysztof Kozlowski                gpio-hog;
171dd8efeb7SKrzysztof Kozlowski                gpios = <4 GPIO_ACTIVE_HIGH>;
172dd8efeb7SKrzysztof Kozlowski                output-low;
173dd8efeb7SKrzysztof Kozlowski                line-name = "usb3_sata_sel";
174dd8efeb7SKrzysztof Kozlowski            };
175dd8efeb7SKrzysztof Kozlowski        };
176dd8efeb7SKrzysztof Kozlowski    };
177dd8efeb7SKrzysztof Kozlowski
178dd8efeb7SKrzysztof Kozlowski  - |
179dd8efeb7SKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/irq.h>
180dd8efeb7SKrzysztof Kozlowski
18120a72af1SRob Herring    i2c {
182dd8efeb7SKrzysztof Kozlowski        #address-cells = <1>;
183dd8efeb7SKrzysztof Kozlowski        #size-cells = <0>;
184dd8efeb7SKrzysztof Kozlowski
185dd8efeb7SKrzysztof Kozlowski        gpio99: gpio@22 {
186dd8efeb7SKrzysztof Kozlowski            compatible = "nxp,pcal6524";
187dd8efeb7SKrzysztof Kozlowski            reg = <0x22>;
188dd8efeb7SKrzysztof Kozlowski            interrupt-parent = <&gpio6>;
189dd8efeb7SKrzysztof Kozlowski            interrupts = <1 IRQ_TYPE_EDGE_FALLING>; /* gpio6_161 */
190dd8efeb7SKrzysztof Kozlowski            interrupt-controller;
191dd8efeb7SKrzysztof Kozlowski            #interrupt-cells = <2>;
192dd8efeb7SKrzysztof Kozlowski            vcc-supply = <&vdds_1v8_main>;
193dd8efeb7SKrzysztof Kozlowski            gpio-controller;
194dd8efeb7SKrzysztof Kozlowski            #gpio-cells = <2>;
195dd8efeb7SKrzysztof Kozlowski            gpio-line-names = "hdmi-ct-hpd", "hdmi.ls-oe", "p02", "p03",
196dd8efeb7SKrzysztof Kozlowski                              "vibra", "fault2", "p06", "p07", "en-usb",
197dd8efeb7SKrzysztof Kozlowski                              "en-host1", "en-host2", "chg-int", "p14", "p15",
198dd8efeb7SKrzysztof Kozlowski                              "mic-int", "en-modem", "shdn-hs-amp",
199dd8efeb7SKrzysztof Kozlowski                              "chg-status+red", "green", "blue", "en-esata",
200dd8efeb7SKrzysztof Kozlowski                              "fault1", "p26", "p27";
201dd8efeb7SKrzysztof Kozlowski        };
202dd8efeb7SKrzysztof Kozlowski    };
20303999612SKrzysztof Kozlowski
20403999612SKrzysztof Kozlowski  - |
20503999612SKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/irq.h>
20603999612SKrzysztof Kozlowski
20720a72af1SRob Herring    i2c {
20803999612SKrzysztof Kozlowski        #address-cells = <1>;
20903999612SKrzysztof Kozlowski        #size-cells = <0>;
21003999612SKrzysztof Kozlowski
21103999612SKrzysztof Kozlowski        /* MAX7325 with interrupt support enabled */
21203999612SKrzysztof Kozlowski        gpio@6d {
21303999612SKrzysztof Kozlowski            compatible = "maxim,max7325";
21403999612SKrzysztof Kozlowski            reg = <0x6d>;
21503999612SKrzysztof Kozlowski            gpio-controller;
21603999612SKrzysztof Kozlowski            #gpio-cells = <2>;
21703999612SKrzysztof Kozlowski            interrupt-controller;
21803999612SKrzysztof Kozlowski            #interrupt-cells = <2>;
21903999612SKrzysztof Kozlowski            interrupt-parent = <&gpio4>;
22003999612SKrzysztof Kozlowski            interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
22103999612SKrzysztof Kozlowski        };
22203999612SKrzysztof Kozlowski    };
22303999612SKrzysztof Kozlowski
22403999612SKrzysztof Kozlowski  - |
22520a72af1SRob Herring    i2c {
22603999612SKrzysztof Kozlowski        #address-cells = <1>;
22703999612SKrzysztof Kozlowski        #size-cells = <0>;
22803999612SKrzysztof Kozlowski
22903999612SKrzysztof Kozlowski        /* MAX7325 with interrupt support disabled */
23003999612SKrzysztof Kozlowski        gpio@6e {
23103999612SKrzysztof Kozlowski            compatible = "maxim,max7325";
23203999612SKrzysztof Kozlowski            reg = <0x6e>;
23303999612SKrzysztof Kozlowski            gpio-controller;
23403999612SKrzysztof Kozlowski            #gpio-cells = <2>;
23503999612SKrzysztof Kozlowski        };
23603999612SKrzysztof Kozlowski    };
237