From: Pavel Pisa Date: Wed, 29 Aug 2007 22:23:38 +0000 (+0100) Subject: [ARM] 4561/1: i.MX/MX1 GPIO parenthes omission and input setup fix X-Git-Tag: v2.6.23-rc5~41^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a98b38b83db3d377ede6b72cebe7ed2dc4127766;p=platform%2Fupstream%2Fkernel-adaptation-pc.git [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 Acked-by: Sascha Hauer Signed-off-by: Russell King --- diff --git a/arch/arm/mach-imx/generic.c b/arch/arm/mach-imx/generic.c index c342595..4cfc9d3 100644 --- a/arch/arm/mach-imx/generic.c +++ b/arch/arm/mach-imx/generic.c @@ -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; }