forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
235 lines
5.3 KiB
235 lines
5.3 KiB
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
|
%YAML 1.2 |
|
--- |
|
$id: http://devicetree.org/schemas/gpio/gpio-pca95xx.yaml# |
|
$schema: http://devicetree.org/meta-schemas/core.yaml# |
|
|
|
title: NXP PCA95xx I2C GPIO multiplexer |
|
|
|
maintainers: |
|
- Krzysztof Kozlowski <[email protected]> |
|
|
|
description: |+ |
|
Bindings for the family of I2C GPIO multiplexers/expanders: NXP PCA95xx, |
|
Maxim MAX73xx |
|
|
|
properties: |
|
compatible: |
|
enum: |
|
- exar,xra1202 |
|
- maxim,max7310 |
|
- maxim,max7312 |
|
- maxim,max7313 |
|
- maxim,max7315 |
|
- maxim,max7319 |
|
- maxim,max7320 |
|
- maxim,max7321 |
|
- maxim,max7322 |
|
- maxim,max7323 |
|
- maxim,max7324 |
|
- maxim,max7325 |
|
- maxim,max7326 |
|
- maxim,max7327 |
|
- nxp,pca6416 |
|
- nxp,pca9505 |
|
- nxp,pca9506 |
|
- nxp,pca9534 |
|
- nxp,pca9535 |
|
- nxp,pca9536 |
|
- nxp,pca9537 |
|
- nxp,pca9538 |
|
- nxp,pca9539 |
|
- nxp,pca9554 |
|
- nxp,pca9555 |
|
- nxp,pca9556 |
|
- nxp,pca9557 |
|
- nxp,pca9574 |
|
- nxp,pca9575 |
|
- nxp,pca9698 |
|
- nxp,pcal6416 |
|
- nxp,pcal6524 |
|
- nxp,pcal9535 |
|
- nxp,pcal9554b |
|
- nxp,pcal9555a |
|
- onnn,cat9554 |
|
- onnn,pca9654 |
|
- ti,pca6107 |
|
- ti,pca9536 |
|
- ti,tca6408 |
|
- ti,tca6416 |
|
- ti,tca6424 |
|
- ti,tca9539 |
|
- ti,tca9554 |
|
|
|
reg: |
|
maxItems: 1 |
|
|
|
gpio-controller: true |
|
|
|
'#gpio-cells': |
|
const: 2 |
|
|
|
gpio-line-names: |
|
minItems: 1 |
|
maxItems: 40 |
|
|
|
interrupts: |
|
maxItems: 1 |
|
|
|
interrupt-controller: true |
|
|
|
'#interrupt-cells': |
|
const: 2 |
|
|
|
reset-gpios: |
|
maxItems: 1 |
|
description: |
|
GPIO specification for the RESET input. This is an active low signal to |
|
the PCA953x. Not valid for Maxim MAX732x devices. |
|
|
|
vcc-supply: |
|
description: |
|
Optional power supply. Not valid for Maxim MAX732x devices. |
|
|
|
wakeup-source: |
|
$ref: /schemas/types.yaml#/definitions/flag |
|
|
|
patternProperties: |
|
"^(hog-[0-9]+|.+-hog(-[0-9]+)?)$": |
|
type: object |
|
properties: |
|
gpio-hog: true |
|
gpios: true |
|
input: true |
|
output-high: true |
|
output-low: true |
|
line-name: true |
|
|
|
required: |
|
- gpio-hog |
|
- gpios |
|
|
|
additionalProperties: false |
|
|
|
required: |
|
- compatible |
|
- reg |
|
- gpio-controller |
|
- "#gpio-cells" |
|
|
|
additionalProperties: false |
|
|
|
allOf: |
|
- if: |
|
properties: |
|
compatible: |
|
contains: |
|
enum: |
|
- maxim,max7320 |
|
- maxim,max7321 |
|
- maxim,max7322 |
|
- maxim,max7323 |
|
- maxim,max7324 |
|
- maxim,max7325 |
|
- maxim,max7326 |
|
- maxim,max7327 |
|
then: |
|
properties: |
|
reset-gpios: false |
|
vcc-supply: false |
|
|
|
examples: |
|
- | |
|
#include <dt-bindings/gpio/gpio.h> |
|
#include <dt-bindings/interrupt-controller/irq.h> |
|
|
|
i2c0 { |
|
#address-cells = <1>; |
|
#size-cells = <0>; |
|
|
|
gpio@20 { |
|
compatible = "nxp,pca9505"; |
|
reg = <0x20>; |
|
pinctrl-names = "default"; |
|
pinctrl-0 = <&pinctrl_pca9505>; |
|
gpio-controller; |
|
#gpio-cells = <2>; |
|
interrupt-parent = <&gpio3>; |
|
interrupts = <23 IRQ_TYPE_LEVEL_LOW>; |
|
|
|
usb3-sata-sel-hog { |
|
gpio-hog; |
|
gpios = <4 GPIO_ACTIVE_HIGH>; |
|
output-low; |
|
line-name = "usb3_sata_sel"; |
|
}; |
|
}; |
|
}; |
|
|
|
- | |
|
#include <dt-bindings/interrupt-controller/irq.h> |
|
|
|
i2c1 { |
|
#address-cells = <1>; |
|
#size-cells = <0>; |
|
|
|
gpio99: gpio@22 { |
|
compatible = "nxp,pcal6524"; |
|
reg = <0x22>; |
|
interrupt-parent = <&gpio6>; |
|
interrupts = <1 IRQ_TYPE_EDGE_FALLING>; /* gpio6_161 */ |
|
interrupt-controller; |
|
#interrupt-cells = <2>; |
|
vcc-supply = <&vdds_1v8_main>; |
|
gpio-controller; |
|
#gpio-cells = <2>; |
|
gpio-line-names = "hdmi-ct-hpd", "hdmi.ls-oe", "p02", "p03", |
|
"vibra", "fault2", "p06", "p07", "en-usb", |
|
"en-host1", "en-host2", "chg-int", "p14", "p15", |
|
"mic-int", "en-modem", "shdn-hs-amp", |
|
"chg-status+red", "green", "blue", "en-esata", |
|
"fault1", "p26", "p27"; |
|
}; |
|
|
|
ts3a227@3b { |
|
compatible = "ti,ts3a227e"; |
|
reg = <0x3b>; |
|
interrupt-parent = <&gpio99>; |
|
interrupts = <14 IRQ_TYPE_EDGE_RISING>; |
|
ti,micbias = <0>; /* 2.1V */ |
|
}; |
|
}; |
|
|
|
- | |
|
#include <dt-bindings/interrupt-controller/irq.h> |
|
|
|
i2c2 { |
|
#address-cells = <1>; |
|
#size-cells = <0>; |
|
|
|
/* MAX7325 with interrupt support enabled */ |
|
gpio@6d { |
|
compatible = "maxim,max7325"; |
|
reg = <0x6d>; |
|
gpio-controller; |
|
#gpio-cells = <2>; |
|
interrupt-controller; |
|
#interrupt-cells = <2>; |
|
interrupt-parent = <&gpio4>; |
|
interrupts = <29 IRQ_TYPE_EDGE_FALLING>; |
|
}; |
|
}; |
|
|
|
- | |
|
i2c3 { |
|
#address-cells = <1>; |
|
#size-cells = <0>; |
|
|
|
/* MAX7325 with interrupt support disabled */ |
|
gpio@6e { |
|
compatible = "maxim,max7325"; |
|
reg = <0x6e>; |
|
gpio-controller; |
|
#gpio-cells = <2>; |
|
}; |
|
};
|
|
|