diff options
Diffstat (limited to 'include/linux/gpio.h')
| -rw-r--r-- | include/linux/gpio.h | 59 | 
1 files changed, 59 insertions, 0 deletions
diff --git a/include/linux/gpio.h b/include/linux/gpio.h index 6155ecf192b..f07fc2d0815 100644 --- a/include/linux/gpio.h +++ b/include/linux/gpio.h @@ -1,6 +1,8 @@  #ifndef __LINUX_GPIO_H  #define __LINUX_GPIO_H +#include <linux/errno.h> +  /* see Documentation/gpio.txt */  /* make these flag values available regardless of GPIO kconfig options */ @@ -20,6 +22,11 @@  /* Gpio pin is open source */  #define GPIOF_OPEN_SOURCE	(1 << 3) +#define GPIOF_EXPORT		(1 << 2) +#define GPIOF_EXPORT_CHANGEABLE	(1 << 3) +#define GPIOF_EXPORT_DIR_FIXED	(GPIOF_EXPORT) +#define GPIOF_EXPORT_DIR_CHANGEABLE (GPIOF_EXPORT | GPIOF_EXPORT_CHANGEABLE) +  /**   * struct gpio - a structure describing a GPIO with configuration   * @gpio:	the GPIO number @@ -33,7 +40,39 @@ struct gpio {  };  #ifdef CONFIG_GENERIC_GPIO + +#ifdef CONFIG_ARCH_HAVE_CUSTOM_GPIO_H  #include <asm/gpio.h> +#else + +#include <asm-generic/gpio.h> + +static inline int gpio_get_value(unsigned int gpio) +{ +	return __gpio_get_value(gpio); +} + +static inline void gpio_set_value(unsigned int gpio, int value) +{ +	__gpio_set_value(gpio, value); +} + +static inline int gpio_cansleep(unsigned int gpio) +{ +	return __gpio_cansleep(gpio); +} + +static inline int gpio_to_irq(unsigned int gpio) +{ +	return __gpio_to_irq(gpio); +} + +static inline int irq_to_gpio(unsigned int irq) +{ +	return -EINVAL; +} + +#endif  #else @@ -55,12 +94,24 @@ static inline int gpio_request(unsigned gpio, const char *label)  	return -ENOSYS;  } +static inline int devm_gpio_request(struct device *dev, unsigned gpio, +				    const char *label) +{ +	return -ENOSYS; +} +  static inline int gpio_request_one(unsigned gpio,  					unsigned long flags, const char *label)  {  	return -ENOSYS;  } +static inline int devm_gpio_request_one(struct device *dev, unsigned gpio, +					unsigned long flags, const char *label) +{ +	return -ENOSYS; +} +  static inline int gpio_request_array(const struct gpio *array, size_t num)  {  	return -ENOSYS; @@ -74,6 +125,14 @@ static inline void gpio_free(unsigned gpio)  	WARN_ON(1);  } +static inline void devm_gpio_free(struct device *dev, unsigned gpio) +{ +	might_sleep(); + +	/* GPIO can never have been requested */ +	WARN_ON(1); +} +  static inline void gpio_free_array(const struct gpio *array, size_t num)  {  	might_sleep();  |