|
@@ -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 */
|