162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/gpio/gpio-pca95xx.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: NXP PCA95xx I2C GPIO multiplexer 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Krzysztof Kozlowski <krzk@kernel.org> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: |+ 1362306a36Sopenharmony_ci Bindings for the family of I2C GPIO multiplexers/expanders: NXP PCA95xx, 1462306a36Sopenharmony_ci Maxim MAX73xx 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ciproperties: 1762306a36Sopenharmony_ci compatible: 1862306a36Sopenharmony_ci oneOf: 1962306a36Sopenharmony_ci - items: 2062306a36Sopenharmony_ci - const: diodes,pi4ioe5v6534q 2162306a36Sopenharmony_ci - const: nxp,pcal6534 2262306a36Sopenharmony_ci - items: 2362306a36Sopenharmony_ci - enum: 2462306a36Sopenharmony_ci - exar,xra1202 2562306a36Sopenharmony_ci - maxim,max7310 2662306a36Sopenharmony_ci - maxim,max7312 2762306a36Sopenharmony_ci - maxim,max7313 2862306a36Sopenharmony_ci - maxim,max7315 2962306a36Sopenharmony_ci - maxim,max7319 3062306a36Sopenharmony_ci - maxim,max7320 3162306a36Sopenharmony_ci - maxim,max7321 3262306a36Sopenharmony_ci - maxim,max7322 3362306a36Sopenharmony_ci - maxim,max7323 3462306a36Sopenharmony_ci - maxim,max7324 3562306a36Sopenharmony_ci - maxim,max7325 3662306a36Sopenharmony_ci - maxim,max7326 3762306a36Sopenharmony_ci - maxim,max7327 3862306a36Sopenharmony_ci - nxp,pca6408 3962306a36Sopenharmony_ci - nxp,pca6416 4062306a36Sopenharmony_ci - nxp,pca9505 4162306a36Sopenharmony_ci - nxp,pca9506 4262306a36Sopenharmony_ci - nxp,pca9534 4362306a36Sopenharmony_ci - nxp,pca9535 4462306a36Sopenharmony_ci - nxp,pca9536 4562306a36Sopenharmony_ci - nxp,pca9537 4662306a36Sopenharmony_ci - nxp,pca9538 4762306a36Sopenharmony_ci - nxp,pca9539 4862306a36Sopenharmony_ci - nxp,pca9554 4962306a36Sopenharmony_ci - nxp,pca9555 5062306a36Sopenharmony_ci - nxp,pca9556 5162306a36Sopenharmony_ci - nxp,pca9557 5262306a36Sopenharmony_ci - nxp,pca9574 5362306a36Sopenharmony_ci - nxp,pca9575 5462306a36Sopenharmony_ci - nxp,pca9698 5562306a36Sopenharmony_ci - nxp,pcal6408 5662306a36Sopenharmony_ci - nxp,pcal6416 5762306a36Sopenharmony_ci - nxp,pcal6524 5862306a36Sopenharmony_ci - nxp,pcal6534 5962306a36Sopenharmony_ci - nxp,pcal9535 6062306a36Sopenharmony_ci - nxp,pcal9554b 6162306a36Sopenharmony_ci - nxp,pcal9555a 6262306a36Sopenharmony_ci - onnn,cat9554 6362306a36Sopenharmony_ci - onnn,pca9654 6462306a36Sopenharmony_ci - ti,pca6107 6562306a36Sopenharmony_ci - ti,pca9536 6662306a36Sopenharmony_ci - ti,tca6408 6762306a36Sopenharmony_ci - ti,tca6416 6862306a36Sopenharmony_ci - ti,tca6424 6962306a36Sopenharmony_ci - ti,tca9538 7062306a36Sopenharmony_ci - ti,tca9539 7162306a36Sopenharmony_ci - ti,tca9554 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci reg: 7462306a36Sopenharmony_ci maxItems: 1 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci gpio-controller: true 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci '#gpio-cells': 7962306a36Sopenharmony_ci const: 2 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci gpio-line-names: 8262306a36Sopenharmony_ci minItems: 1 8362306a36Sopenharmony_ci maxItems: 40 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci interrupts: 8662306a36Sopenharmony_ci maxItems: 1 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci interrupt-controller: true 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci '#interrupt-cells': 9162306a36Sopenharmony_ci const: 2 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ci reset-gpios: 9462306a36Sopenharmony_ci maxItems: 1 9562306a36Sopenharmony_ci description: 9662306a36Sopenharmony_ci GPIO specification for the RESET input. This is an active low signal to 9762306a36Sopenharmony_ci the PCA953x. Not valid for Maxim MAX732x devices. 9862306a36Sopenharmony_ci 9962306a36Sopenharmony_ci vcc-supply: 10062306a36Sopenharmony_ci description: 10162306a36Sopenharmony_ci Optional power supply. Not valid for Maxim MAX732x devices. 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci wakeup-source: 10462306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/flag 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_cipatternProperties: 10762306a36Sopenharmony_ci "^(hog-[0-9]+|.+-hog(-[0-9]+)?)$": 10862306a36Sopenharmony_ci type: object 10962306a36Sopenharmony_ci properties: 11062306a36Sopenharmony_ci gpio-hog: true 11162306a36Sopenharmony_ci gpios: true 11262306a36Sopenharmony_ci input: true 11362306a36Sopenharmony_ci output-high: true 11462306a36Sopenharmony_ci output-low: true 11562306a36Sopenharmony_ci line-name: true 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ci required: 11862306a36Sopenharmony_ci - gpio-hog 11962306a36Sopenharmony_ci - gpios 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ci additionalProperties: false 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_cirequired: 12462306a36Sopenharmony_ci - compatible 12562306a36Sopenharmony_ci - reg 12662306a36Sopenharmony_ci - gpio-controller 12762306a36Sopenharmony_ci - "#gpio-cells" 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ciadditionalProperties: false 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ciallOf: 13262306a36Sopenharmony_ci - if: 13362306a36Sopenharmony_ci properties: 13462306a36Sopenharmony_ci compatible: 13562306a36Sopenharmony_ci contains: 13662306a36Sopenharmony_ci enum: 13762306a36Sopenharmony_ci - maxim,max7320 13862306a36Sopenharmony_ci - maxim,max7321 13962306a36Sopenharmony_ci - maxim,max7322 14062306a36Sopenharmony_ci - maxim,max7323 14162306a36Sopenharmony_ci - maxim,max7324 14262306a36Sopenharmony_ci - maxim,max7325 14362306a36Sopenharmony_ci - maxim,max7326 14462306a36Sopenharmony_ci - maxim,max7327 14562306a36Sopenharmony_ci then: 14662306a36Sopenharmony_ci properties: 14762306a36Sopenharmony_ci reset-gpios: false 14862306a36Sopenharmony_ci vcc-supply: false 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ciexamples: 15162306a36Sopenharmony_ci - | 15262306a36Sopenharmony_ci #include <dt-bindings/gpio/gpio.h> 15362306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 15462306a36Sopenharmony_ci 15562306a36Sopenharmony_ci i2c { 15662306a36Sopenharmony_ci #address-cells = <1>; 15762306a36Sopenharmony_ci #size-cells = <0>; 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_ci gpio@20 { 16062306a36Sopenharmony_ci compatible = "nxp,pca9505"; 16162306a36Sopenharmony_ci reg = <0x20>; 16262306a36Sopenharmony_ci pinctrl-names = "default"; 16362306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_pca9505>; 16462306a36Sopenharmony_ci gpio-controller; 16562306a36Sopenharmony_ci #gpio-cells = <2>; 16662306a36Sopenharmony_ci interrupt-parent = <&gpio3>; 16762306a36Sopenharmony_ci interrupts = <23 IRQ_TYPE_LEVEL_LOW>; 16862306a36Sopenharmony_ci 16962306a36Sopenharmony_ci usb3-sata-sel-hog { 17062306a36Sopenharmony_ci gpio-hog; 17162306a36Sopenharmony_ci gpios = <4 GPIO_ACTIVE_HIGH>; 17262306a36Sopenharmony_ci output-low; 17362306a36Sopenharmony_ci line-name = "usb3_sata_sel"; 17462306a36Sopenharmony_ci }; 17562306a36Sopenharmony_ci }; 17662306a36Sopenharmony_ci }; 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_ci - | 17962306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 18062306a36Sopenharmony_ci 18162306a36Sopenharmony_ci i2c { 18262306a36Sopenharmony_ci #address-cells = <1>; 18362306a36Sopenharmony_ci #size-cells = <0>; 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci gpio99: gpio@22 { 18662306a36Sopenharmony_ci compatible = "nxp,pcal6524"; 18762306a36Sopenharmony_ci reg = <0x22>; 18862306a36Sopenharmony_ci interrupt-parent = <&gpio6>; 18962306a36Sopenharmony_ci interrupts = <1 IRQ_TYPE_EDGE_FALLING>; /* gpio6_161 */ 19062306a36Sopenharmony_ci interrupt-controller; 19162306a36Sopenharmony_ci #interrupt-cells = <2>; 19262306a36Sopenharmony_ci vcc-supply = <&vdds_1v8_main>; 19362306a36Sopenharmony_ci gpio-controller; 19462306a36Sopenharmony_ci #gpio-cells = <2>; 19562306a36Sopenharmony_ci gpio-line-names = "hdmi-ct-hpd", "hdmi.ls-oe", "p02", "p03", 19662306a36Sopenharmony_ci "vibra", "fault2", "p06", "p07", "en-usb", 19762306a36Sopenharmony_ci "en-host1", "en-host2", "chg-int", "p14", "p15", 19862306a36Sopenharmony_ci "mic-int", "en-modem", "shdn-hs-amp", 19962306a36Sopenharmony_ci "chg-status+red", "green", "blue", "en-esata", 20062306a36Sopenharmony_ci "fault1", "p26", "p27"; 20162306a36Sopenharmony_ci }; 20262306a36Sopenharmony_ci }; 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_ci - | 20562306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 20662306a36Sopenharmony_ci 20762306a36Sopenharmony_ci i2c { 20862306a36Sopenharmony_ci #address-cells = <1>; 20962306a36Sopenharmony_ci #size-cells = <0>; 21062306a36Sopenharmony_ci 21162306a36Sopenharmony_ci /* MAX7325 with interrupt support enabled */ 21262306a36Sopenharmony_ci gpio@6d { 21362306a36Sopenharmony_ci compatible = "maxim,max7325"; 21462306a36Sopenharmony_ci reg = <0x6d>; 21562306a36Sopenharmony_ci gpio-controller; 21662306a36Sopenharmony_ci #gpio-cells = <2>; 21762306a36Sopenharmony_ci interrupt-controller; 21862306a36Sopenharmony_ci #interrupt-cells = <2>; 21962306a36Sopenharmony_ci interrupt-parent = <&gpio4>; 22062306a36Sopenharmony_ci interrupts = <29 IRQ_TYPE_EDGE_FALLING>; 22162306a36Sopenharmony_ci }; 22262306a36Sopenharmony_ci }; 22362306a36Sopenharmony_ci 22462306a36Sopenharmony_ci - | 22562306a36Sopenharmony_ci i2c { 22662306a36Sopenharmony_ci #address-cells = <1>; 22762306a36Sopenharmony_ci #size-cells = <0>; 22862306a36Sopenharmony_ci 22962306a36Sopenharmony_ci /* MAX7325 with interrupt support disabled */ 23062306a36Sopenharmony_ci gpio@6e { 23162306a36Sopenharmony_ci compatible = "maxim,max7325"; 23262306a36Sopenharmony_ci reg = <0x6e>; 23362306a36Sopenharmony_ci gpio-controller; 23462306a36Sopenharmony_ci #gpio-cells = <2>; 23562306a36Sopenharmony_ci }; 23662306a36Sopenharmony_ci }; 237