]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
gpio: pca953x: Add support for TCAL6408 TCAL6416
authorJan Remmet <j.remmet@phytec.de>
Tue, 16 Dec 2025 07:39:35 +0000 (08:39 +0100)
committerBartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Thu, 18 Dec 2025 10:27:05 +0000 (11:27 +0100)
TCAL6408 and TCAL6416 supports latchable inputs and maskable interrupt.
Tested on a TCAL6416, checked datasheets for the TCAL6408.

They use the same programming model ad the NXP PCAL64xx, but
support a lower supply power (1.08V to 3.6V) compared to PCAL
(1.65V to 5.5V)

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>
Link: https://lore.kernel.org/r/20251216-wip-jremmet-tcal6416rtw-v2-3-6516d98a9836@phytec.de
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
drivers/gpio/Kconfig
drivers/gpio/gpio-pca953x.c

index fb6b479700d327754275d5e19c15b4883627d96b..c33f9305ab97734a0be126789af5360bdcde13b8 100644 (file)
@@ -1193,11 +1193,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
 
index 0a3916cc2772a19de90c7683cb7dc7010524f71e..dd0e09961bc9dacfbd4d5d0a146b59edb218962a 100644 (file)
@@ -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), },