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