| 
									
										
										
										
											2010-03-03 04:54:37 +01:00
										 |  |  | #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 <plat/gpio.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-03 07:43:48 +01:00
										 |  |  | #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
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-03 04:54:37 +01:00
										 |  |  | #endif /* __ASM_ARCH_GPIO_H */
 |