linux/include/linux/gpio.h
<<
>>
Prefs
   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 */
 171