[ARM] MXC: Fix mxc_gpio_get(), which must read PSR register instead DR.
authorDarius Augulis <augulis.darius@gmail.com>
Wed, 15 Oct 2008 08:38:30 +0000 (10:38 +0200)
committerSascha Hauer <s.hauer@pengutronix.de>
Thu, 30 Oct 2008 14:56:35 +0000 (15:56 +0100)
The Data register holds the value we have written to a gpio. To
get the input value we must read the Pad Status Register MX3 (or Sample
Status register in MX1/2 terms)

Signed-off-by: Darius Augulis <augulis.darius@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
arch/arm/plat-mxc/gpio.c

index 733e0acac91673621b9207db751e5ddd5b2333ac..de5c4747453fbedaf476fd3043a857fe8a1ee6c3 100644 (file)
@@ -188,7 +188,7 @@ static int mxc_gpio_get(struct gpio_chip *chip, unsigned offset)
        struct mxc_gpio_port *port =
                container_of(chip, struct mxc_gpio_port, chip);
 
-       return (__raw_readl(port->base + GPIO_DR) >> offset) & 1;
+       return (__raw_readl(port->base + GPIO_PSR) >> offset) & 1;
 }
 
 static int mxc_gpio_direction_input(struct gpio_chip *chip, unsigned offset)