Hi Axel, On 21/06/13 10:13, Axel Lin wrote: > 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. Sure. File arch/arm/include/asm/arch-omap5/gpio.h shall need fixing as well, by adding:
#define OMAP54XX_GPIO7_BASE 0x48051000 #define OMAP54XX_GPIO8_BASE 0x48053000 > > 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. Feel free to proceed as you wish. If you modify hwint.c and gpio.h, then the three patches could be combined in a series, e.g. "Fix valid GPIO range for OMAP". Tom? > > Regards, > Axel > Thanks, Lubo _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot