at v2.6.39 3.1 kB view raw
1#ifndef __LINUX_GPIO_H 2#define __LINUX_GPIO_H 3 4/* see Documentation/gpio.txt */ 5 6#ifdef CONFIG_GENERIC_GPIO 7#include <asm/gpio.h> 8 9#else 10 11#include <linux/kernel.h> 12#include <linux/types.h> 13#include <linux/errno.h> 14 15struct device; 16struct gpio; 17struct gpio_chip; 18 19/* 20 * Some platforms don't support the GPIO programming interface. 21 * 22 * In case some driver uses it anyway (it should normally have 23 * depended on GENERIC_GPIO), these routines help the compiler 24 * optimize out much GPIO-related code ... or trigger a runtime 25 * warning when something is wrongly called. 26 */ 27 28static inline int gpio_is_valid(int number) 29{ 30 return 0; 31} 32 33static inline int gpio_request(unsigned gpio, const char *label) 34{ 35 return -ENOSYS; 36} 37 38static inline int gpio_request_one(unsigned gpio, 39 unsigned long flags, const char *label) 40{ 41 return -ENOSYS; 42} 43 44static inline int gpio_request_array(struct gpio *array, size_t num) 45{ 46 return -ENOSYS; 47} 48 49static inline void gpio_free(unsigned gpio) 50{ 51 might_sleep(); 52 53 /* GPIO can never have been requested */ 54 WARN_ON(1); 55} 56 57static inline void gpio_free_array(struct gpio *array, size_t num) 58{ 59 might_sleep(); 60 61 /* GPIO can never have been requested */ 62 WARN_ON(1); 63} 64 65static inline int gpio_direction_input(unsigned gpio) 66{ 67 return -ENOSYS; 68} 69 70static inline int gpio_direction_output(unsigned gpio, int value) 71{ 72 return -ENOSYS; 73} 74 75static inline int gpio_set_debounce(unsigned gpio, unsigned debounce) 76{ 77 return -ENOSYS; 78} 79 80static inline int gpio_get_value(unsigned gpio) 81{ 82 /* GPIO can never have been requested or set as {in,out}put */ 83 WARN_ON(1); 84 return 0; 85} 86 87static inline void gpio_set_value(unsigned gpio, int value) 88{ 89 /* GPIO can never have been requested or set as output */ 90 WARN_ON(1); 91} 92 93static inline int gpio_cansleep(unsigned gpio) 94{ 95 /* GPIO can never have been requested or set as {in,out}put */ 96 WARN_ON(1); 97 return 0; 98} 99 100static inline int gpio_get_value_cansleep(unsigned gpio) 101{ 102 /* GPIO can never have been requested or set as {in,out}put */ 103 WARN_ON(1); 104 return 0; 105} 106 107static inline void gpio_set_value_cansleep(unsigned gpio, int value) 108{ 109 /* GPIO can never have been requested or set as output */ 110 WARN_ON(1); 111} 112 113static inline int gpio_export(unsigned gpio, bool direction_may_change) 114{ 115 /* GPIO can never have been requested or set as {in,out}put */ 116 WARN_ON(1); 117 return -EINVAL; 118} 119 120static inline int gpio_export_link(struct device *dev, const char *name, 121 unsigned gpio) 122{ 123 /* GPIO can never have been exported */ 124 WARN_ON(1); 125 return -EINVAL; 126} 127 128static inline int gpio_sysfs_set_active_low(unsigned gpio, int value) 129{ 130 /* GPIO can never have been requested */ 131 WARN_ON(1); 132 return -EINVAL; 133} 134 135static inline void gpio_unexport(unsigned gpio) 136{ 137 /* GPIO can never have been exported */ 138 WARN_ON(1); 139} 140 141static inline int gpio_to_irq(unsigned gpio) 142{ 143 /* GPIO can never have been requested or set as input */ 144 WARN_ON(1); 145 return -EINVAL; 146} 147 148static inline int irq_to_gpio(unsigned irq) 149{ 150 /* irq can never have been returned from gpio_to_irq() */ 151 WARN_ON(1); 152 return -EINVAL; 153} 154 155#endif 156 157#endif /* __LINUX_GPIO_H */