From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lubomir Popov Date: Fri, 21 Jun 2013 09:59:24 +0300 Subject: [U-Boot] [PATCH v2] gpio: omap_gpio: Fix valid gpio range for AM33XX In-Reply-To: <1371784037.19200.1.camel@phoenix> References: <1371784037.19200.1.camel@phoenix> Message-ID: <51C3F9CC.2040509@mm-sol.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Axel, On 21/06/13 06:07, Axel Lin wrote: > AM33XX has 4 gpio banks, thus the valid gpio range should be 0 ... 127. > > Signed-off-by: Axel Lin > --- > v2: define OMAP_MAX_GPIO and use it. > This change is mainly based on Stefan's comment, however I use > OMAP_MAX_GPIO instead of CONFIG_OMAP_MAX_GPIO because having CONFIG_ prefix > seems meaning it can be configurable in configs. > > drivers/gpio/omap_gpio.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpio/omap_gpio.c b/drivers/gpio/omap_gpio.c > index a30d7f0..6fa57c9 100644 > --- a/drivers/gpio/omap_gpio.c > +++ b/drivers/gpio/omap_gpio.c > @@ -40,6 +40,12 @@ > #include > #include > > +#if defined(CONFIG_AM33XX) > +#define OMAP_MAX_GPIO 128 > +#else > +#define OMAP_MAX_GPIO 192 > +#endif Please be aware that OMAP54XX and DRA7XX SoCs have 8 banks per 32 GPIOs, that is, 256 in total. The DRA7xx config defines CONFIG_DRA7XX, but also includes omap5_common.h, where CONFIG_OMAP54XX is defined (due to sharing of many internal IPs with the OMAP5, including GPIO). The above definitions should be changed to something like: #if defined(CONFIG_OMAP54XX) #define OMAP_MAX_GPIO 256 /* OMAP54XX and DRA7XX */ #else #if defined (CONFIG_AM33XX) #define OMAP_MAX_GPIO 128 #else #define OMAP_MAX_GPIO 192 /* All other OMAP3/4 */ #endif #endif > + > #define OMAP_GPIO_DIR_OUT 0 > #define OMAP_GPIO_DIR_IN 1 > > @@ -55,7 +61,7 @@ static inline int get_gpio_index(int gpio) > > int gpio_is_valid(int gpio) > { > - return (gpio >= 0) && (gpio < 192); > + return (gpio >= 0) && (gpio < OMAP_MAX_GPIO); > } > > static int check_gpio(int gpio) > Regards, Lubo