OSDN Git Service

gpio: pca953x: set the PCA_PCAL flag also when matching by DT
authorH. Nikolaus Schaller <hns@goldelico.com>
Thu, 17 May 2018 04:59:47 +0000 (06:59 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 23 May 2018 11:49:09 +0000 (13:49 +0200)
The of_device_table is missing the PCA_PCAL flag so the
pcal6524 would be operated in tca6424 compatibility mode which
does not handle the new interrupt mask registers.

Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-pca953x.c

index d01e09d..ae9b1ed 100644 (file)
@@ -58,6 +58,7 @@
 #define PCA_GPIO_MASK          0x00FF
 #define PCA_INT                        0x0100
 #define PCA_PCAL               0x0200
+#define PCA_LATCH_INT (PCA_PCAL | PCA_INT)
 #define PCA953X_TYPE           0x1000
 #define PCA957X_TYPE           0x2000
 #define PCA_TYPE_MASK          0xF000
@@ -954,8 +955,8 @@ static const struct of_device_id pca953x_dt_ids[] = {
        { .compatible = "nxp,pca9575", .data = OF_957X(16, PCA_INT), },
        { .compatible = "nxp,pca9698", .data = OF_953X(40, 0), },
 
-       { .compatible = "nxp,pcal6524", .data = OF_953X(24, PCA_INT), },
-       { .compatible = "nxp,pcal9555a", .data = OF_953X(16, PCA_INT), },
+       { .compatible = "nxp,pcal6524", .data = OF_953X(24, PCA_LATCH_INT), },
+       { .compatible = "nxp,pcal9555a", .data = OF_953X(16, PCA_LATCH_INT), },
 
        { .compatible = "maxim,max7310", .data = OF_953X( 8, 0), },
        { .compatible = "maxim,max7312", .data = OF_953X(16, PCA_INT), },