* [PATCH 1/3] gpio: pca953x: Add support for TCAL6408 TCAL6416
2025-12-12 13:03 [PATCH 0/3] gpio: pca953x: Add support for TCAL6408 TCAL6416 Jan Remmet
@ 2025-12-12 13:03 ` Jan Remmet
2025-12-12 13:03 ` [PATCH 2/3] Documentation: gpio: add TCAL6408 and TCAL6416 Jan Remmet
2025-12-12 13:03 ` [PATCH 3/3] dt-bindings: gpio: gpio-pca95xx: Add tcal6408 and tcal6416 Jan Remmet
2 siblings, 0 replies; 5+ messages in thread
From: Jan Remmet @ 2025-12-12 13:03 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Jonathan Corbet, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Levente Révész
Cc: linux-gpio, linux-doc, linux-kernel, Krzysztof Kozlowski,
devicetree, upstream
TCAL6408 and TCAL6416 supports latchable inputs and maskable interrupt.
Tested on a TCAL6416, checked datasheets for the TCAL6408.
Datasheet: https://www.ti.com/lit/ds/symlink/tcal6408.pdf
Datasheet: https://www.ti.com/lit/ds/symlink/tcal6416.pdf
Signed-off-by: Jan Remmet <j.remmet@phytec.de>
---
drivers/gpio/Kconfig | 4 ++--
drivers/gpio/gpio-pca953x.c | 6 ++++++
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index c74da29253e810b51540684b1186e8f274066b69..2a0e8d007e8814d8c31b8b35c8ecc401056dcf90 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -1194,11 +1194,11 @@ config GPIO_PCA953X
8 bits: max7310, max7315, pca6107, pca9534, pca9538, pca9554,
pca9556, pca9557, pca9574, tca6408, tca9554, xra1202,
- pcal6408, pcal9554b, tca9538
+ pcal6408, pcal9554b, tca9538, tcal6408
16 bits: max7312, max7313, pca9535, pca9539, pca9555, pca9575,
tca6416, pca6416, pcal6416, pcal9535, pcal9555a, max7318,
- tca9539
+ tca9539, tcal6416
18 bits: tca6418
diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c
index 0a3916cc2772a19de90c7683cb7dc7010524f71e..dd0e09961bc9dacfbd4d5d0a146b59edb218962a 100644
--- a/drivers/gpio/gpio-pca953x.c
+++ b/drivers/gpio/gpio-pca953x.c
@@ -126,6 +126,9 @@ static const struct i2c_device_id pca953x_id[] = {
{ "tca9539", 16 | PCA953X_TYPE | PCA_INT, },
{ "tca9554", 8 | PCA953X_TYPE | PCA_INT, },
{ "xra1202", 8 | PCA953X_TYPE },
+
+ { "tcal6408", 8 | PCA953X_TYPE | PCA_LATCH_INT, },
+ { "tcal6416", 16 | PCA953X_TYPE | PCA_LATCH_INT, },
{ }
};
MODULE_DEVICE_TABLE(i2c, pca953x_id);
@@ -1444,6 +1447,9 @@ static const struct of_device_id pca953x_dt_ids[] = {
{ .compatible = "ti,tca9538", .data = OF_953X( 8, PCA_INT), },
{ .compatible = "ti,tca9539", .data = OF_953X(16, PCA_INT), },
+ { .compatible = "ti,tcal6408", .data = OF_953X( 8, PCA_LATCH_INT), },
+ { .compatible = "ti,tcal6416", .data = OF_953X(16, PCA_LATCH_INT), },
+
{ .compatible = "onnn,cat9554", .data = OF_953X( 8, PCA_INT), },
{ .compatible = "onnn,pca9654", .data = OF_953X( 8, PCA_INT), },
{ .compatible = "onnn,pca9655", .data = OF_953X(16, PCA_INT), },
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH 2/3] Documentation: gpio: add TCAL6408 and TCAL6416
2025-12-12 13:03 [PATCH 0/3] gpio: pca953x: Add support for TCAL6408 TCAL6416 Jan Remmet
2025-12-12 13:03 ` [PATCH 1/3] " Jan Remmet
@ 2025-12-12 13:03 ` Jan Remmet
2025-12-12 13:03 ` [PATCH 3/3] dt-bindings: gpio: gpio-pca95xx: Add tcal6408 and tcal6416 Jan Remmet
2 siblings, 0 replies; 5+ messages in thread
From: Jan Remmet @ 2025-12-12 13:03 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Jonathan Corbet, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Levente Révész
Cc: linux-gpio, linux-doc, linux-kernel, Krzysztof Kozlowski,
devicetree, upstream
Checked datasheets, the offsets are identical to pcal6408 and pcal6416.
Signed-off-by: Jan Remmet <j.remmet@phytec.de>
---
Documentation/driver-api/gpio/pca953x.rst | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/Documentation/driver-api/gpio/pca953x.rst b/Documentation/driver-api/gpio/pca953x.rst
index 4bd7cf1120cbaccfaefc346195d87d927c3afcdf..53f25fa03072d95d47443e30c89720a98f8c5561 100644
--- a/Documentation/driver-api/gpio/pca953x.rst
+++ b/Documentation/driver-api/gpio/pca953x.rst
@@ -178,6 +178,8 @@ pcal9554b 8 yes 00 01 02 03
pcal6416 16 yes 00 02 04 06
pcal9535 16 yes 00 02 04 06
pcal9555a 16 yes 00 02 04 06
+tcal6408 8 yes 00 01 02 03
+tcal6416 16 yes 00 02 04 06
========== ===== ========= ===== ====== ====== =========
These chips have several additional features:
@@ -196,6 +198,8 @@ pcal9554b 40 42 43 44 45 46 4F
pcal6416 40 44 46 48 4A 4C 4F
pcal9535 40 44 46 48 4A 4C 4F
pcal9555a 40 44 46 48 4A 4C 4F
+tcal6408 40 42 43 44 45 46 4F
+tcal6416 40 44 46 48 4A 4C 4F
========== ============ ======== ======= ======== ======== ========== ========
Currently the driver has support for the input latch, pull-up/pull-down
@@ -332,6 +336,8 @@ Layouts:
- pcal9554b
- pcal9555a
- pcal6524
+ - tcal6408
+ - tcal6416
2. base offset 0x30, bank 5 and 6, closely packed banks
- pcal6534
@@ -390,6 +396,8 @@ enabled.
- pcal9554b
- pcal9555a
- pcal6524
+ - tcal6408
+ - tcal6416
2. base offset 0x30, bank 2, closely packed banks
- pcal6534
@@ -462,6 +470,8 @@ Layout:
- pcal9535
- pcal9554b
- pcal9555a
+ - tcal6408
+ - tcal6416
`PCAL chips with extended interrupt and output configuration functions`_
can set this for each line individually. They have the same per-port out_conf
@@ -505,6 +515,8 @@ bits drive strength
- pcal9554b
- pcal9555a
- pcal6524
+ - tcal6408
+ - tcal6416
2. base offset 0x30, bank 0 and 1, closely packed banks
- pcal6534
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH 3/3] dt-bindings: gpio: gpio-pca95xx: Add tcal6408 and tcal6416
2025-12-12 13:03 [PATCH 0/3] gpio: pca953x: Add support for TCAL6408 TCAL6416 Jan Remmet
2025-12-12 13:03 ` [PATCH 1/3] " Jan Remmet
2025-12-12 13:03 ` [PATCH 2/3] Documentation: gpio: add TCAL6408 and TCAL6416 Jan Remmet
@ 2025-12-12 13:03 ` Jan Remmet
2025-12-16 6:33 ` Krzysztof Kozlowski
2 siblings, 1 reply; 5+ messages in thread
From: Jan Remmet @ 2025-12-12 13:03 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Jonathan Corbet, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Levente Révész
Cc: linux-gpio, linux-doc, linux-kernel, Krzysztof Kozlowski,
devicetree, upstream
TCAL6408 and TCAL6416 supports latchable inputs and maskable interrupt.
add compatibles ti,tcal6408 and ti,tcal6416
Signed-off-by: Jan Remmet <j.remmet@phytec.de>
---
Documentation/devicetree/bindings/gpio/gpio-pca95xx.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/gpio/gpio-pca95xx.yaml b/Documentation/devicetree/bindings/gpio/gpio-pca95xx.yaml
index 12134c737ad8fb85980ecee225b8bcf5d1bf6b41..4f955f855e1ab8ccfcce9f465727b1b095e80ec6 100644
--- a/Documentation/devicetree/bindings/gpio/gpio-pca95xx.yaml
+++ b/Documentation/devicetree/bindings/gpio/gpio-pca95xx.yaml
@@ -74,6 +74,8 @@ properties:
- ti,tca9538
- ti,tca9539
- ti,tca9554
+ - ti,tcal6408
+ - ti,tcal6416
reg:
maxItems: 1
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread