2013/6/21 Lubomir Popov <lpo...@mm-sol.com>: > 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 <axel....@ingics.com> >> --- >> 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 <asm/io.h> >> #include <asm/errno.h> >> >> +#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 */
In arch/arm/cpu/armv7/omap5/hwinit.c we have below settings: static struct gpio_bank gpio_bank_54xx[6] = { { (void *)OMAP54XX_GPIO1_BASE, METHOD_GPIO_24XX }, { (void *)OMAP54XX_GPIO2_BASE, METHOD_GPIO_24XX }, { (void *)OMAP54XX_GPIO3_BASE, METHOD_GPIO_24XX }, { (void *)OMAP54XX_GPIO4_BASE, METHOD_GPIO_24XX }, { (void *)OMAP54XX_GPIO5_BASE, METHOD_GPIO_24XX }, { (void *)OMAP54XX_GPIO6_BASE, METHOD_GPIO_24XX }, }; const struct gpio_bank *const omap_gpio_bank = gpio_bank_54xx; So gpio_bank_54xx only has 6 entries rather than 8 entries. Seems need to fix this before setting OMAP_MAX_GPIO to 256. I'm wondering if it's ok to have this patch as is, and then an incremental patch to set gpio_bank_54xx[] and OMAP_MAX_GPIO for OMAP54XX and DRA7XX. Regards, Axel _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot