[U-Boot] [PATCH] gpio: omap_gpio: Fix valid gpio range for AM33XX

Marek Vasut
2013-06-20T19:42:01Z

Dear Stefan Roese,

> 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

You were faster ;-) and I agree with this method.

Best regards,
Marek Vasut