#ifndef __LINUX_GPIO_H
#define __LINUX_GPIO_H
#include <linux/types.h>
struct device;
#define GPIOF_DIR_OUT …
#define GPIOF_DIR_IN …
#define GPIOF_INIT_LOW …
#define GPIOF_INIT_HIGH …
#define GPIOF_IN …
#define GPIOF_OUT_INIT_LOW …
#define GPIOF_OUT_INIT_HIGH …
#define GPIOF_ACTIVE_LOW …
struct gpio { … };
#ifdef CONFIG_GPIOLIB
#include <linux/gpio/consumer.h>
static inline bool gpio_is_valid(int number)
{ … }
#define GPIO_DYNAMIC_BASE …
#define GPIO_DYNAMIC_MAX …
int gpio_request(unsigned gpio, const char *label);
void gpio_free(unsigned gpio);
static inline int gpio_direction_input(unsigned gpio)
{ … }
static inline int gpio_direction_output(unsigned gpio, int value)
{ … }
static inline int gpio_get_value_cansleep(unsigned gpio)
{ … }
static inline void gpio_set_value_cansleep(unsigned gpio, int value)
{ … }
static inline int gpio_get_value(unsigned gpio)
{ … }
static inline void gpio_set_value(unsigned gpio, int value)
{ … }
static inline int gpio_to_irq(unsigned gpio)
{ … }
int gpio_request_one(unsigned gpio, unsigned long flags, const char *label);
int devm_gpio_request(struct device *dev, unsigned gpio, const char *label);
int devm_gpio_request_one(struct device *dev, unsigned gpio,
unsigned long flags, const char *label);
#else
#include <linux/kernel.h>
#include <asm/bug.h>
#include <asm/errno.h>
static inline bool gpio_is_valid(int number)
{
return false;
}
static inline int gpio_request(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 void gpio_free(unsigned gpio)
{
might_sleep();
WARN_ON(1);
}
static inline int gpio_direction_input(unsigned gpio)
{
return -ENOSYS;
}
static inline int gpio_direction_output(unsigned gpio, int value)
{
return -ENOSYS;
}
static inline int gpio_get_value(unsigned gpio)
{
WARN_ON(1);
return 0;
}
static inline void gpio_set_value(unsigned gpio, int value)
{
WARN_ON(1);
}
static inline int gpio_get_value_cansleep(unsigned gpio)
{
WARN_ON(1);
return 0;
}
static inline void gpio_set_value_cansleep(unsigned gpio, int value)
{
WARN_ON(1);
}
static inline int gpio_to_irq(unsigned gpio)
{
WARN_ON(1);
return -EINVAL;
}
static inline int devm_gpio_request(struct device *dev, unsigned gpio,
const char *label)
{
WARN_ON(1);
return -EINVAL;
}
static inline int devm_gpio_request_one(struct device *dev, unsigned gpio,
unsigned long flags, const char *label)
{
WARN_ON(1);
return -EINVAL;
}
#endif
#endif