at v3.2 3.4 kB view raw
1#ifndef __LINUX_GPIO_H 2#define __LINUX_GPIO_H 3 4/* see Documentation/gpio.txt */ 5 6/* make these flag values available regardless of GPIO kconfig options */ 7#define GPIOF_DIR_OUT (0 << 0) 8#define GPIOF_DIR_IN (1 << 0) 9 10#define GPIOF_INIT_LOW (0 << 1) 11#define GPIOF_INIT_HIGH (1 << 1) 12 13#define GPIOF_IN (GPIOF_DIR_IN) 14#define GPIOF_OUT_INIT_LOW (GPIOF_DIR_OUT | GPIOF_INIT_LOW) 15#define GPIOF_OUT_INIT_HIGH (GPIOF_DIR_OUT | GPIOF_INIT_HIGH) 16 17/** 18 * struct gpio - a structure describing a GPIO with configuration 19 * @gpio: the GPIO number 20 * @flags: GPIO configuration as specified by GPIOF_* 21 * @label: a literal description string of this GPIO 22 */ 23struct gpio { 24 unsigned gpio; 25 unsigned long flags; 26 const char *label; 27}; 28 29#ifdef CONFIG_GENERIC_GPIO 30#include <asm/gpio.h> 31 32#else 33 34#include <linux/kernel.h> 35#include <linux/types.h> 36#include <linux/errno.h> 37 38struct device; 39struct gpio_chip; 40 41static inline bool gpio_is_valid(int number) 42{ 43 return false; 44} 45 46static inline int gpio_request(unsigned gpio, const char *label) 47{ 48 return -ENOSYS; 49} 50 51static inline int gpio_request_one(unsigned gpio, 52 unsigned long flags, const char *label) 53{ 54 return -ENOSYS; 55} 56 57static inline int gpio_request_array(const struct gpio *array, size_t num) 58{ 59 return -ENOSYS; 60} 61 62static inline void gpio_free(unsigned gpio) 63{ 64 might_sleep(); 65 66 /* GPIO can never have been requested */ 67 WARN_ON(1); 68} 69 70static inline void gpio_free_array(const struct gpio *array, size_t num) 71{ 72 might_sleep(); 73 74 /* GPIO can never have been requested */ 75 WARN_ON(1); 76} 77 78static inline int gpio_direction_input(unsigned gpio) 79{ 80 return -ENOSYS; 81} 82 83static inline int gpio_direction_output(unsigned gpio, int value) 84{ 85 return -ENOSYS; 86} 87 88static inline int gpio_set_debounce(unsigned gpio, unsigned debounce) 89{ 90 return -ENOSYS; 91} 92 93static inline int gpio_get_value(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 void gpio_set_value(unsigned gpio, int value) 101{ 102 /* GPIO can never have been requested or set as output */ 103 WARN_ON(1); 104} 105 106static inline int gpio_cansleep(unsigned gpio) 107{ 108 /* GPIO can never have been requested or set as {in,out}put */ 109 WARN_ON(1); 110 return 0; 111} 112 113static inline int gpio_get_value_cansleep(unsigned gpio) 114{ 115 /* GPIO can never have been requested or set as {in,out}put */ 116 WARN_ON(1); 117 return 0; 118} 119 120static inline void gpio_set_value_cansleep(unsigned gpio, int value) 121{ 122 /* GPIO can never have been requested or set as output */ 123 WARN_ON(1); 124} 125 126static inline int gpio_export(unsigned gpio, bool direction_may_change) 127{ 128 /* GPIO can never have been requested or set as {in,out}put */ 129 WARN_ON(1); 130 return -EINVAL; 131} 132 133static inline int gpio_export_link(struct device *dev, const char *name, 134 unsigned gpio) 135{ 136 /* GPIO can never have been exported */ 137 WARN_ON(1); 138 return -EINVAL; 139} 140 141static inline int gpio_sysfs_set_active_low(unsigned gpio, int value) 142{ 143 /* GPIO can never have been requested */ 144 WARN_ON(1); 145 return -EINVAL; 146} 147 148static inline void gpio_unexport(unsigned gpio) 149{ 150 /* GPIO can never have been exported */ 151 WARN_ON(1); 152} 153 154static inline int gpio_to_irq(unsigned gpio) 155{ 156 /* GPIO can never have been requested or set as input */ 157 WARN_ON(1); 158 return -EINVAL; 159} 160 161static inline int irq_to_gpio(unsigned irq) 162{ 163 /* irq can never have been returned from gpio_to_irq() */ 164 WARN_ON(1); 165 return -EINVAL; 166} 167 168#endif 169 170#endif /* __LINUX_GPIO_H */