| From 05d3534a321d7fe4524b3b83bb20318282f3ec2c Mon Sep 17 00:00:00 2001 |
| From: Boris BREZILLON <b.brezillon@overkiz.com> |
| Date: Tue, 27 Aug 2013 15:19:21 +0200 |
| Subject: pinctrl: at91: fix get_pullup/down function return |
| |
| From: Boris BREZILLON <b.brezillon@overkiz.com> |
| |
| commit 05d3534a321d7fe4524b3b83bb20318282f3ec2c upstream. |
| |
| In PIO_PUSR and PIO_PPDSR register if a given bit is set 1 this means the |
| pullup/down for this pin (pin is represented as a bit position) is |
| disabled. |
| |
| Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com> |
| Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com> |
| Signed-off-by: Linus Walleij <linus.walleij@linaro.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/pinctrl/pinctrl-at91.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/pinctrl/pinctrl-at91.c |
| +++ b/drivers/pinctrl/pinctrl-at91.c |
| @@ -325,7 +325,7 @@ static void at91_mux_disable_interrupt(v |
| |
| static unsigned at91_mux_get_pullup(void __iomem *pio, unsigned pin) |
| { |
| - return (readl_relaxed(pio + PIO_PUSR) >> pin) & 0x1; |
| + return !((readl_relaxed(pio + PIO_PUSR) >> pin) & 0x1); |
| } |
| |
| static void at91_mux_set_pullup(void __iomem *pio, unsigned mask, bool on) |
| @@ -445,7 +445,7 @@ static void at91_mux_pio3_set_debounce(v |
| |
| static bool at91_mux_pio3_get_pulldown(void __iomem *pio, unsigned pin) |
| { |
| - return (__raw_readl(pio + PIO_PPDSR) >> pin) & 0x1; |
| + return !((__raw_readl(pio + PIO_PPDSR) >> pin) & 0x1); |
| } |
| |
| static void at91_mux_pio3_set_pulldown(void __iomem *pio, unsigned mask, bool is_on) |