what is the rationale for funny "0x100" offset for OMAP4 GPIO addresses?
Robert P. J. Day
rpjday at crashcourse.ca
Wed Dec 5 07:54:51 EST 2012
i was going to submit a patch to replace magic constants for OMAP4
with more meaningful names but i ran into an oddity. here's
omap4-silicon.h:
#define OMAP44XX_L4_WKUP_BASE 0x4A300000
#define OMAP44XX_L4_PER_BASE 0x48000000
and here's part of an old posting to the linux-omap mailing list:
+/* GPIO controller*/
+#define OMAP44XX_GPIO1_BASE (L4_WK_44XX_BASE + 0x10000)
+#define OMAP44XX_GPIO2_BASE (L4_PER_44XX_BASE + 0x55000)
+#define OMAP44XX_GPIO3_BASE (L4_PER_44XX_BASE + 0x57000)
+#define OMAP44XX_GPIO4_BASE (L4_PER_44XX_BASE + 0x59000)
+#define OMAP44XX_GPIO5_BASE (L4_PER_44XX_BASE + 0x5B000)
+#define OMAP44XX_GPIO6_BASE (L4_PER_44XX_BASE + 0x5D000)
but here's the tail end of omap4-generic.c:
static int omap4_gpio_init(void)
{
add_generic_device("omap-gpio", 0, NULL, 0x4a310100,
0xf00, IORESOURCE_MEM, NULL);
add_generic_device("omap-gpio", 1, NULL, 0x48055100,
0xf00, IORESOURCE_MEM, NULL);
add_generic_device("omap-gpio", 2, NULL, 0x48057100,
0xf00, IORESOURCE_MEM, NULL);
add_generic_device("omap-gpio", 3, NULL, 0x48059100,
0xf00, IORESOURCE_MEM, NULL);
add_generic_device("omap-gpio", 4, NULL, 0x4805b100,
0xf00, IORESOURCE_MEM, NULL);
add_generic_device("omap-gpio", 5, NULL, 0x4805d100,
0xf00, IORESOURCE_MEM, NULL);
return 0;
}
as you can see, the numbers don't add up exactly -- the constants in
that final file are all 0x100 larger than a simple addition. anyone
know where that comes from?
rday
--
========================================================================
Robert P. J. Day Ottawa, Ontario, CANADA
http://crashcourse.ca
Twitter: http://twitter.com/rpjday
LinkedIn: http://ca.linkedin.com/in/rpjday
========================================================================
More information about the barebox
mailing list