at v2.6.37 2.7 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_chip; 17 18/* 19 * Some platforms don't support the GPIO programming interface. 20 * 21 * In case some driver uses it anyway (it should normally have 22 * depended on GENERIC_GPIO), these routines help the compiler 23 * optimize out much GPIO-related code ... or trigger a runtime 24 * warning when something is wrongly called. 25 */ 26 27static inline int gpio_is_valid(int number) 28{ 29 return 0; 30} 31 32static inline int gpio_request(unsigned gpio, const char *label) 33{ 34 return -ENOSYS; 35} 36 37static inline void gpio_free(unsigned gpio) 38{ 39 might_sleep(); 40 41 /* GPIO can never have been requested */ 42 WARN_ON(1); 43} 44 45static inline int gpio_direction_input(unsigned gpio) 46{ 47 return -ENOSYS; 48} 49 50static inline int gpio_direction_output(unsigned gpio, int value) 51{ 52 return -ENOSYS; 53} 54 55static inline int gpio_set_debounce(unsigned gpio, unsigned debounce) 56{ 57 return -ENOSYS; 58} 59 60static inline int gpio_get_value(unsigned gpio) 61{ 62 /* GPIO can never have been requested or set as {in,out}put */ 63 WARN_ON(1); 64 return 0; 65} 66 67static inline void gpio_set_value(unsigned gpio, int value) 68{ 69 /* GPIO can never have been requested or set as output */ 70 WARN_ON(1); 71} 72 73static inline int gpio_cansleep(unsigned gpio) 74{ 75 /* GPIO can never have been requested or set as {in,out}put */ 76 WARN_ON(1); 77 return 0; 78} 79 80static inline int gpio_get_value_cansleep(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_cansleep(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_export(unsigned gpio, bool direction_may_change) 94{ 95 /* GPIO can never have been requested or set as {in,out}put */ 96 WARN_ON(1); 97 return -EINVAL; 98} 99 100static inline int gpio_export_link(struct device *dev, const char *name, 101 unsigned gpio) 102{ 103 /* GPIO can never have been exported */ 104 WARN_ON(1); 105 return -EINVAL; 106} 107 108static inline int gpio_sysfs_set_active_low(unsigned gpio, int value) 109{ 110 /* GPIO can never have been requested */ 111 WARN_ON(1); 112 return -EINVAL; 113} 114 115static inline void gpio_unexport(unsigned gpio) 116{ 117 /* GPIO can never have been exported */ 118 WARN_ON(1); 119} 120 121static inline int gpio_to_irq(unsigned gpio) 122{ 123 /* GPIO can never have been requested or set as input */ 124 WARN_ON(1); 125 return -EINVAL; 126} 127 128static inline int irq_to_gpio(unsigned irq) 129{ 130 /* irq can never have been returned from gpio_to_irq() */ 131 WARN_ON(1); 132 return -EINVAL; 133} 134 135#endif 136 137#endif /* __LINUX_GPIO_H */