diff options
author | Benoît Thébaudeau <benoit.thebaudeau@advansee.com> | 2012-08-20 10:55:41 +0000 |
---|---|---|
committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2012-09-01 14:58:28 +0200 |
commit | 5dafa4543c399d329c7b01df1afa98437861cac0 (patch) | |
tree | 2c33860a28c4d7c492e1f15e0aa8dd9a13d3e482 /drivers | |
parent | 5c8d14dfd978eb787307298110a32329e989e6ab (diff) | |
download | u-boot-imx-5dafa4543c399d329c7b01df1afa98437861cac0.zip u-boot-imx-5dafa4543c399d329c7b01df1afa98437861cac0.tar.gz u-boot-imx-5dafa4543c399d329c7b01df1afa98437861cac0.tar.bz2 |
mxc: Make gpio_get_value() use PSR
gpio_get_value() should use PSR like Linux, not DR, because DR does not always
reflect the pin state, while PSR does. This is especially useful to detect a
short circuit on a GPIO pin configured as output, or to read the level of a pin
controlled by a non-GPIO IOMUX function.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Acked-by: Stefano Babic <sbabic@denx.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpio/mxc_gpio.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpio/mxc_gpio.c b/drivers/gpio/mxc_gpio.c index 6615535..e9bf278 100644 --- a/drivers/gpio/mxc_gpio.c +++ b/drivers/gpio/mxc_gpio.c @@ -116,7 +116,7 @@ int gpio_get_value(unsigned gpio) regs = (struct gpio_regs *)gpio_ports[port]; - val = (readl(®s->gpio_dr) >> gpio) & 0x01; + val = (readl(®s->gpio_psr) >> gpio) & 0x01; return val; } |