
On 20.06.2013 17:26, Axel Lin wrote:
AM33XX has 4 gpio banks, thus the valid gpio range should be 0 ... 127.
Signed-off-by: Axel Lin axel.lin@ingics.com
drivers/gpio/omap_gpio.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/drivers/gpio/omap_gpio.c b/drivers/gpio/omap_gpio.c index a30d7f0..9aa6d41 100644 --- a/drivers/gpio/omap_gpio.c +++ b/drivers/gpio/omap_gpio.c @@ -55,7 +55,11 @@ static inline int get_gpio_index(int gpio)
int gpio_is_valid(int gpio) { +#if defined(CONFIG_AM33XX)
- return (gpio >= 0) && (gpio < 128);
+#else return (gpio >= 0) && (gpio < 192); +#endif }
Those ifdef's in the code really ugly and frowned upon. Better would be to move this into a define in the top of the C file:
#if defined(CONFIG_AM33XX) #define CONFIG_OMAP_MAX_GPIO 128 #else #define CONFIG_OMAP_MAX_GPIO 192 #endif
And then use this define in the code:
return (gpio >= 0) && (gpio < CONFIG_OMAP_MAX_GPIO);
Thanks, Stefan