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