#ifndef __ASM_ARCH_GPIO_H #define __ASM_ARCH_GPIO_H /* * 288 (#267 is the highest one actually hooked up) onchip GPIOs, plus enough * room for a couple of GPIO expanders. */ #define ARCH_NR_GPIOS 350 #include #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 */