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