| 
									
										
										
										
											2010-02-10 20:10:55 +09:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Generic GPIO API and pinmux table support | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Copyright (c) 2008  Magnus Damm | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This file is subject to the terms and conditions of the GNU General Public | 
					
						
							|  |  |  |  * License.  See the file "COPYING" in the main directory of this archive | 
					
						
							|  |  |  |  * for more details. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #ifndef __ASM_ARCH_GPIO_H
 | 
					
						
							|  |  |  | #define __ASM_ARCH_GPIO_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <linux/kernel.h>
 | 
					
						
							|  |  |  | #include <linux/errno.h>
 | 
					
						
							| 
									
										
										
										
											2012-06-25 03:41:09 -07:00
										 |  |  | #include <linux/io.h>
 | 
					
						
							| 
									
										
										
										
											2010-02-10 20:10:55 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-25 03:41:09 -07:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * FIXME !! | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * current gpio frame work doesn't have | 
					
						
							|  |  |  |  * the method to control only pull up/down/free. | 
					
						
							|  |  |  |  * this function should be replaced by correct gpio function | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2012-09-14 20:08:08 +00:00
										 |  |  | static inline void __init gpio_direction_none(void __iomem * addr) | 
					
						
							| 
									
										
										
										
											2012-06-25 03:41:09 -07:00
										 |  |  | { | 
					
						
							|  |  |  | 	__raw_writeb(0x00, addr); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-09-14 20:08:08 +00:00
										 |  |  | static inline void __init gpio_request_pullup(void __iomem * addr) | 
					
						
							| 
									
										
										
										
											2012-06-25 03:41:09 -07:00
										 |  |  | { | 
					
						
							|  |  |  | 	u8 data = __raw_readb(addr); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	data &= 0x0F; | 
					
						
							|  |  |  | 	data |= 0xC0; | 
					
						
							|  |  |  | 	__raw_writeb(data, addr); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-09-14 20:08:08 +00:00
										 |  |  | static inline void __init gpio_request_pulldown(void __iomem * addr) | 
					
						
							| 
									
										
										
										
											2012-06-25 03:41:09 -07:00
										 |  |  | { | 
					
						
							|  |  |  | 	u8 data = __raw_readb(addr); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	data &= 0x0F; | 
					
						
							|  |  |  | 	data |= 0xA0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	__raw_writeb(data, addr); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-10 20:10:55 +09:00
										 |  |  | #endif /* __ASM_ARCH_GPIO_H */
 |