OSDN Git Service

gpio: pca953x: Fix AI overflow on PCAL6524
authorMarek Vasut <marek.vasut@gmail.com>
Wed, 12 Dec 2018 01:39:50 +0000 (02:39 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2019 08:20:15 +0000 (09:20 +0100)
[ Upstream commit 92f45ebe68181c2d7f76633ffae55bc9447d62cd ]

The PCAL_PINCTRL_MASK is too large. The extended register block on
PCAL6524, which is the largest chip with this block, has the block
limited to address range 0x40..0x7f. This is because the bit 7 in
the command register is used for the Address Increment functionality.

Trim the mask to 0x60 to match the datasheet and to prevent accidental
overwrite of the AI bit.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Reviewed-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpio/gpio-pca953x.c

index e0657fc..0232c25 100644 (file)
@@ -58,7 +58,7 @@
 #define PCA_GPIO_MASK          0x00FF
 
 #define PCAL_GPIO_MASK         0x1f
-#define PCAL_PINCTRL_MASK      0xe0
+#define PCAL_PINCTRL_MASK      0x60
 
 #define PCA_INT                        0x0100
 #define PCA_PCAL               0x0200