[ARM] 4561/1: i.MX/MX1 GPIO parenthes omission and input setup fix
During GPIO testing on PiMX1 board there has been revealed problem with some pins input functions. The GIUS bit has to be set for inputs to work reliably too. It is surprising that input worked on some inputs with incorrect setup before. DR is not mandatory, but it ensures stable constant level on internal traces. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz> Acked-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
fd51bcc5dc
commit
a98b38b83d
|
@ -101,10 +101,11 @@ EXPORT_SYMBOL(imx_gpio_mode);
|
|||
|
||||
int imx_gpio_request(unsigned gpio, const char *label)
|
||||
{
|
||||
if(gpio >= (GPIO_PORT_MAX + 1) * 32)
|
||||
if(gpio >= (GPIO_PORT_MAX + 1) * 32) {
|
||||
printk(KERN_ERR "imx_gpio: Attempt to request nonexistent GPIO %d for \"%s\"\n",
|
||||
gpio, label ? label : "?");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if(test_and_set_bit(gpio, imx_gpio_alloc_map)) {
|
||||
printk(KERN_ERR "imx_gpio: GPIO %d already used. Allocation for \"%s\" failed\n",
|
||||
|
@ -129,7 +130,7 @@ EXPORT_SYMBOL(imx_gpio_free);
|
|||
|
||||
int imx_gpio_direction_input(unsigned gpio)
|
||||
{
|
||||
imx_gpio_mode(gpio| GPIO_IN);
|
||||
imx_gpio_mode(gpio | GPIO_IN | GPIO_GIUS | GPIO_DR);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue