| 
									
										
										
										
											2007-02-12 00:53:14 -08:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2008-08-05 16:14:15 +01:00
										 |  |  |  * arch/arm/mach-sa1100/include/mach/gpio.h | 
					
						
							| 
									
										
										
										
											2007-02-12 00:53:14 -08:00
										 |  |  |  * | 
					
						
							|  |  |  |  * SA1100 GPIO wrappers for arch-neutral GPIO calls | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Written by Philipp Zabel <philipp.zabel@gmail.com> | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software; you can redistribute it and/or modify | 
					
						
							|  |  |  |  * it under the terms of the GNU General Public License as published by | 
					
						
							|  |  |  |  * the Free Software Foundation; either version 2 of the License, or | 
					
						
							|  |  |  |  * (at your option) any later version. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 
					
						
							|  |  |  |  * GNU General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU General Public License | 
					
						
							|  |  |  |  * along with this program; if not, write to the Free Software | 
					
						
							|  |  |  |  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef __ASM_ARCH_SA1100_GPIO_H
 | 
					
						
							|  |  |  | #define __ASM_ARCH_SA1100_GPIO_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-06 11:42:36 +01:00
										 |  |  | #include <linux/io.h>
 | 
					
						
							| 
									
										
										
										
											2008-08-05 16:14:15 +01:00
										 |  |  | #include <mach/hardware.h>
 | 
					
						
							| 
									
										
										
										
											2007-02-20 13:58:20 -08:00
										 |  |  | #include <asm/irq.h>
 | 
					
						
							| 
									
										
										
										
											2008-04-10 13:31:47 +01:00
										 |  |  | #include <asm-generic/gpio.h>
 | 
					
						
							| 
									
										
										
										
											2007-02-20 13:58:20 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-08-08 13:58:28 +01:00
										 |  |  | #define __ARM_GPIOLIB_COMPLEX
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-02-20 13:58:20 -08:00
										 |  |  | static inline int gpio_get_value(unsigned gpio) | 
					
						
							| 
									
										
										
										
											2007-02-12 00:53:14 -08:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2008-04-10 13:31:47 +01:00
										 |  |  | 	if (__builtin_constant_p(gpio) && (gpio <= GPIO_MAX)) | 
					
						
							|  |  |  | 		return GPLR & GPIO_GPIO(gpio); | 
					
						
							|  |  |  | 	else | 
					
						
							|  |  |  | 		return __gpio_get_value(gpio); | 
					
						
							| 
									
										
										
										
											2007-02-12 00:53:14 -08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-02-20 13:58:20 -08:00
										 |  |  | static inline void gpio_set_value(unsigned gpio, int value) | 
					
						
							| 
									
										
										
										
											2007-02-12 00:53:14 -08:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2008-04-10 13:31:47 +01:00
										 |  |  | 	if (__builtin_constant_p(gpio) && (gpio <= GPIO_MAX)) | 
					
						
							|  |  |  | 		if (value) | 
					
						
							|  |  |  | 			GPSR = GPIO_GPIO(gpio); | 
					
						
							|  |  |  | 		else | 
					
						
							|  |  |  | 			GPCR = GPIO_GPIO(gpio); | 
					
						
							| 
									
										
										
										
											2007-02-20 13:58:20 -08:00
										 |  |  | 	else | 
					
						
							| 
									
										
										
										
											2008-04-10 13:31:47 +01:00
										 |  |  | 		__gpio_set_value(gpio, value); | 
					
						
							| 
									
										
										
										
											2007-02-12 00:53:14 -08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-04-10 13:31:47 +01:00
										 |  |  | #define gpio_cansleep	__gpio_cansleep
 | 
					
						
							| 
									
										
										
										
											2007-02-12 00:53:14 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | #endif
 |