mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
TCAL6408 and TCAL6416 supports latchable inputs and maskable interrupt. add compatibles ti,tcal6408 and ti,tcal6416 The TI variants has the same programming model as the NXP PCAL6408 and PCAL6416, but supports other supply voltages. Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Signed-off-by: Jan Remmet <j.remmet@phytec.de> Link: https://lore.kernel.org/r/20251216-wip-jremmet-tcal6416rtw-v2-2-6516d98a9836@phytec.de Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
234 lines
5.7 KiB
YAML
234 lines
5.7 KiB
YAML
# 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 <krzk@kernel.org>
|
|
|
|
description: |+
|
|
Bindings for the family of I2C GPIO multiplexers/expanders: NXP PCA95xx,
|
|
Maxim MAX73xx
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- items:
|
|
- const: toradex,ecgpiol16
|
|
- const: nxp,pcal6416
|
|
- items:
|
|
- const: diodes,pi4ioe5v6534q
|
|
- const: nxp,pcal6534
|
|
- items:
|
|
- 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,pca6408
|
|
- 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,pcal6408
|
|
- nxp,pcal6416
|
|
- nxp,pcal6524
|
|
- nxp,pcal6534
|
|
- nxp,pcal9535
|
|
- nxp,pcal9554b
|
|
- nxp,pcal9555a
|
|
- onnn,cat9554
|
|
- onnn,pca9654
|
|
- ti,pca6107
|
|
- ti,pca9536
|
|
- ti,tca6408
|
|
- ti,tca6416
|
|
- ti,tca6418
|
|
- ti,tca6424
|
|
- ti,tca9535
|
|
- ti,tca9538
|
|
- ti,tca9539
|
|
- ti,tca9554
|
|
- ti,tcal6408
|
|
- ti,tcal6416
|
|
|
|
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
|
|
required:
|
|
- gpio-hog
|
|
|
|
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
|
|
- toradex,ecgpiol16
|
|
then:
|
|
properties:
|
|
reset-gpios: false
|
|
vcc-supply: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
|
|
i2c {
|
|
#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>
|
|
|
|
i2c {
|
|
#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";
|
|
};
|
|
};
|
|
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
|
|
i2c {
|
|
#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>;
|
|
};
|
|
};
|
|
|
|
- |
|
|
i2c {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
/* MAX7325 with interrupt support disabled */
|
|
gpio@6e {
|
|
compatible = "maxim,max7325";
|
|
reg = <0x6e>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
};
|
|
};
|