summaryrefslogtreecommitdiffstats
path: root/drivers/gpio/gpio-pca953x.c
diff options
context:
space:
mode:
authorAndrew Ruder <andy@aeruder.net>2013-08-07 16:52:40 -0500
committerLinus Walleij <linus.walleij@linaro.org>2013-08-16 17:19:16 +0200
commit40a625daa88653d7942dc85483f6f289cd687cb7 (patch)
tree0ed75d57c2afc2b2c5168f5c4f9cfa95cffacb79 /drivers/gpio/gpio-pca953x.c
parent08a67a58af3c361ae3e8d6fcf23a1489213309a9 (diff)
downloadlinux-40a625daa88653d7942dc85483f6f289cd687cb7.tar.gz
linux-40a625daa88653d7942dc85483f6f289cd687cb7.tar.bz2
linux-40a625daa88653d7942dc85483f6f289cd687cb7.zip
gpio: pca953x: fix gpio input on gpio offsets >= 8
This change fixes a regression introduced by commit f5f0b7aa8 (gpio: pca953x: make the register access by GPIO bank) When the pca953x driver was converted to using 8-bit reads/writes the bitmask in pca953x_gpio_get_value wasn't adjusted with a modulus BANK_SZ and consequently looks at the wrong bits in the input register. Signed-off-by: Andrew Ruder <andrew.ruder@elecsyscorp.com> Reviewed-by: Gregory CLEMENT <gregory.clement@free-electrons.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/gpio/gpio-pca953x.c')
-rw-r--r--drivers/gpio/gpio-pca953x.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c
index 07651d30ba8b..91eb8d4492ef 100644
--- a/drivers/gpio/gpio-pca953x.c
+++ b/drivers/gpio/gpio-pca953x.c
@@ -308,7 +308,7 @@ static int pca953x_gpio_get_value(struct gpio_chip *gc, unsigned off)
return 0;
}
- return (reg_val & (1u << off)) ? 1 : 0;
+ return (reg_val & (1u << (off % BANK_SZ))) ? 1 : 0;
}
static void pca953x_gpio_set_value(struct gpio_chip *gc, unsigned off, int val)