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_set_debounce(unsigned gpio, unsigned debounce)
  55{
  56        return -ENOSYS;
  57}
  58
  59static inline int gpio_get_value(unsigned gpio)
  60{
  61        /* GPIO can never have been requested or set as {in,out}put */
  62        WARN_ON(1);
  63        return 0;
  64}
  65
  66static inline void gpio_set_value(unsigned gpio, int value)
  67{
  68        /* GPIO can never have been requested or set as output */
  69        WARN_ON(1);
  70}
  71
  72static inline int gpio_cansleep(unsigned gpio)
  73{
  74        /* GPIO can never have been requested or set as {in,out}put */
  75        WARN_ON(1);
  76        return 0;
  77}
  78
  79static inline int gpio_get_value_cansleep(unsigned gpio)
  80{
  81        /* GPIO can never have been requested or set as {in,out}put */
  82        WARN_ON(1);
  83        return 0;
  84}
  85
  86static inline void gpio_set_value_cansleep(unsigned gpio, int value)
  87{
  88        /* GPIO can never have been requested or set as output */
  89        WARN_ON(1);
  90}
  91
  92static inline int gpio_export(unsigned gpio, bool direction_may_change)
  93{
  94        /* GPIO can never have been requested or set as {in,out}put */
  95        WARN_ON(1);
  96        return -EINVAL;
  97}
  98
  99static inline int gpio_export_link(struct device *dev, const char *name,
 100                                unsigned gpio)
 101{
 102        /* GPIO can never have been exported */
 103        WARN_ON(1);
 104        return -EINVAL;
 105}
 106
 107static inline int gpio_sysfs_set_active_low(unsigned gpio, int value)
 108{
 109        /* GPIO can never have been requested */
 110        WARN_ON(1);
 111        return -EINVAL;
 112}
 113
 114static inline void gpio_unexport(unsigned gpio)
 115{
 116        /* GPIO can never have been exported */
 117        WARN_ON(1);
 118}
 119
 120static inline int gpio_to_irq(unsigned gpio)
 121{
 122        /* GPIO can never have been requested or set as input */
 123        WARN_ON(1);
 124        return -EINVAL;
 125}
 126
 127static inline int irq_to_gpio(unsigned irq)
 128{
 129        /* irq can never have been returned from gpio_to_irq() */
 130        WARN_ON(1);
 131        return -EINVAL;
 132}
 133
 134#endif
 135
 136#endif /* __LINUX_GPIO_H */
 137
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.