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