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