ARM: 6081/1: ux500: move gpio macros to common header
authorRabin Vincent <rabin.vincent@stericsson.com>
Mon, 3 May 2010 06:43:48 +0000 (07:43 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 4 May 2010 16:50:02 +0000 (17:50 +0100)
Move GPIO macros to a common header, and allow them to use the correct
macros for the appropriate SoC, and be named accordingly.

Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Acked-by: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-ux500/cpu-u8500.c
arch/arm/mach-ux500/include/mach/gpio.h

index 2c8aa93..c80beca 100644 (file)
 #include <mach/hardware.h>
 #include <mach/setup.h>
 
-#define GPIO_RESOURCE(block)                                           \
-       {                                                               \
-               .start  = U8500_GPIOBANK##block##_BASE,                 \
-               .end    = U8500_GPIOBANK##block##_BASE + 127,           \
-               .flags  = IORESOURCE_MEM,                               \
-       },                                                              \
-       {                                                               \
-               .start  = IRQ_GPIO##block,                              \
-               .end    = IRQ_GPIO##block,                              \
-               .flags  = IORESOURCE_IRQ,                               \
-       }
-
-#define GPIO_DEVICE(block)                                             \
-       {                                                               \
-               .name           = "gpio",                               \
-               .id             = block,                                \
-               .num_resources  = 2,                                    \
-               .resource       = &u8500_gpio_resources[block * 2],     \
-               .dev = {                                                \
-                       .platform_data = &u8500_gpio_data[block],       \
-               },                                                      \
-       }
-
-#define GPIO_DATA(_name, first)                                                \
-       {                                                               \
-               .name           = _name,                                \
-               .first_gpio     = first,                                \
-               .first_irq      = NOMADIK_GPIO_TO_IRQ(first),           \
-       }
-
 static struct nmk_gpio_platform_data u8500_gpio_data[] = {
        GPIO_DATA("GPIO-0-31", 0),
        GPIO_DATA("GPIO-32-63", 32), /* 37..63 not routed to pin */
index 3c4cd31..d548a62 100644 (file)
@@ -9,4 +9,42 @@
 
 #include <plat/gpio.h>
 
+#define __GPIO_RESOURCE(soc, block)                                    \
+       {                                                               \
+               .start  = soc##_GPIOBANK##block##_BASE,                 \
+               .end    = soc##_GPIOBANK##block##_BASE + 127,           \
+               .flags  = IORESOURCE_MEM,                               \
+       },                                                              \
+       {                                                               \
+               .start  = IRQ_GPIO##block,                              \
+               .end    = IRQ_GPIO##block,                              \
+               .flags  = IORESOURCE_IRQ,                               \
+       }
+
+#define __GPIO_DEVICE(soc, block)                                      \
+       {                                                               \
+               .name           = "gpio",                               \
+               .id             = block,                                \
+               .num_resources  = 2,                                    \
+               .resource       = &soc##_gpio_resources[block * 2],     \
+               .dev = {                                                \
+                       .platform_data = &soc##_gpio_data[block],       \
+               },                                                      \
+       }
+
+#define GPIO_DATA(_name, first)                                                \
+       {                                                               \
+               .name           = _name,                                \
+               .first_gpio     = first,                                \
+               .first_irq      = NOMADIK_GPIO_TO_IRQ(first),           \
+       }
+
+#ifdef CONFIG_UX500_SOC_DB8500
+#define GPIO_RESOURCE(block)   __GPIO_RESOURCE(U8500, block)
+#define GPIO_DEVICE(block)     __GPIO_DEVICE(u8500, block)
+#elif defined(CONFIG_UX500_SOC_DB5500)
+#define GPIO_RESOURCE(block)   __GPIO_RESOURCE(U5500, block)
+#define GPIO_DEVICE(block)     __GPIO_DEVICE(u5500, block)
+#endif
+
 #endif /* __ASM_ARCH_GPIO_H */