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,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 97patternProperties: 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 114required: 115 - compatible 116 - reg 117 - gpio-controller 118 - "#gpio-cells" 119 120additionalProperties: false 121 122allOf: 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 141examples: 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 }; 236