| 
									
										
										
										
											2009-05-13 22:52:24 +01:00
										 |  |  | /* arch/arm/mach-s3c2410/include/mach/gpio-fns.h
 | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2009-11-13 22:54:14 +00:00
										 |  |  |  * Copyright (c) 2003-2009 Simtec Electronics | 
					
						
							| 
									
										
										
										
											2009-05-13 22:52:24 +01:00
										 |  |  |  *	Ben Dooks <ben@simtec.co.uk> | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * S3C2410 - hardware | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software; you can redistribute it and/or modify | 
					
						
							|  |  |  |  * it under the terms of the GNU General Public License version 2 as | 
					
						
							|  |  |  |  * published by the Free Software Foundation. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* These functions are in the to-be-removed category and it is strongly
 | 
					
						
							|  |  |  |  * encouraged not to use these in new code. They will be marked deprecated | 
					
						
							|  |  |  |  * very soon. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Most of the functionality can be either replaced by the gpiocfg calls | 
					
						
							|  |  |  |  * for the s3c platform or by the generic GPIOlib API. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* external functions for GPIO support
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * These allow various different clients to access the same GPIO | 
					
						
							|  |  |  |  * registers without conflicting. If your driver only owns the entire | 
					
						
							|  |  |  |  * GPIO register, then it is safe to ioremap/__raw_{read|write} to it. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* s3c2410_gpio_cfgpin
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * set the configuration of the given pin to the value passed. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * eg: | 
					
						
							| 
									
										
										
										
											2009-05-17 22:32:23 +01:00
										 |  |  |  *    s3c2410_gpio_cfgpin(S3C2410_GPA(0), S3C2410_GPA0_ADDR0); | 
					
						
							|  |  |  |  *    s3c2410_gpio_cfgpin(S3C2410_GPE(8), S3C2410_GPE8_SDDAT1); | 
					
						
							| 
									
										
										
										
											2009-05-13 22:52:24 +01:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern unsigned int s3c2410_gpio_getcfg(unsigned int pin); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* s3c2410_gpio_getirq
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * turn the given pin number into the corresponding IRQ number | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * returns: | 
					
						
							|  |  |  |  *	< 0 = no interrupt for this pin | 
					
						
							|  |  |  |  *	>=0 = interrupt number for the pin | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern int s3c2410_gpio_getirq(unsigned int pin); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_CPU_S3C2400
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern int s3c2400_gpio_getirq(unsigned int pin); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* CONFIG_CPU_S3C2400 */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* s3c2410_gpio_irqfilter
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * set the irq filtering on the given pin | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * on = 0 => disable filtering | 
					
						
							|  |  |  |  *      1 => enable filtering | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * config = S3C2410_EINTFLT_PCLK or S3C2410_EINTFLT_EXTCLK orred with | 
					
						
							|  |  |  |  *          width of filter (0 through 63) | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern int s3c2410_gpio_irqfilter(unsigned int pin, unsigned int on, | 
					
						
							|  |  |  | 				  unsigned int config); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* s3c2410_gpio_pullup
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * configure the pull-up control on the given pin | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * to = 1 => disable the pull-up | 
					
						
							|  |  |  |  *      0 => enable the pull-up | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * eg; | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2009-05-17 22:32:23 +01:00
										 |  |  |  *   s3c2410_gpio_pullup(S3C2410_GPB(0), 0); | 
					
						
							|  |  |  |  *   s3c2410_gpio_pullup(S3C2410_GPE(8), 0); | 
					
						
							| 
									
										
										
										
											2009-05-13 22:52:24 +01:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern void s3c2410_gpio_pullup(unsigned int pin, unsigned int to); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* s3c2410_gpio_getpull
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Read the state of the pull-up on a given pin | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * return: | 
					
						
							|  |  |  |  *	< 0 => error code | 
					
						
							|  |  |  |  *	  0 => enabled | 
					
						
							|  |  |  |  *	  1 => disabled | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern int s3c2410_gpio_getpull(unsigned int pin); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern void s3c2410_gpio_setpin(unsigned int pin, unsigned int to); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern unsigned int s3c2410_gpio_getpin(unsigned int pin); |