diff options
| -rw-r--r-- | drivers/gpio/Kconfig | 3 | ||||
| -rw-r--r-- | drivers/gpio/Makefile | 3 | ||||
| -rw-r--r-- | include/asm-generic/gpio.h | 6 | ||||
| -rw-r--r-- | include/linux/gpio.h | 28 |
4 files changed, 13 insertions, 27 deletions
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index 682de754d63f..d9729322b1c7 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig | |||
| @@ -30,6 +30,9 @@ config ARCH_REQUIRE_GPIOLIB | |||
| 30 | Selecting this from the architecture code will cause the gpiolib | 30 | Selecting this from the architecture code will cause the gpiolib |
| 31 | code to always get built in. | 31 | code to always get built in. |
| 32 | 32 | ||
| 33 | config GPIO_DEVRES | ||
| 34 | def_bool y | ||
| 35 | depends on HAS_IOMEM | ||
| 33 | 36 | ||
| 34 | 37 | ||
| 35 | menuconfig GPIOLIB | 38 | menuconfig GPIOLIB |
diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile index c5aebd008dde..36ca605ff038 100644 --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile | |||
| @@ -2,7 +2,8 @@ | |||
| 2 | 2 | ||
| 3 | ccflags-$(CONFIG_DEBUG_GPIO) += -DDEBUG | 3 | ccflags-$(CONFIG_DEBUG_GPIO) += -DDEBUG |
| 4 | 4 | ||
| 5 | obj-$(CONFIG_GPIOLIB) += gpiolib.o devres.o | 5 | obj-$(CONFIG_GPIO_DEVRES) += devres.o |
| 6 | obj-$(CONFIG_GPIOLIB) += gpiolib.o | ||
| 6 | obj-$(CONFIG_OF_GPIO) += gpiolib-of.o | 7 | obj-$(CONFIG_OF_GPIO) += gpiolib-of.o |
| 7 | obj-$(CONFIG_GPIO_ACPI) += gpiolib-acpi.o | 8 | obj-$(CONFIG_GPIO_ACPI) += gpiolib-acpi.o |
| 8 | 9 | ||
diff --git a/include/asm-generic/gpio.h b/include/asm-generic/gpio.h index 23410147555f..45b8916805f3 100644 --- a/include/asm-generic/gpio.h +++ b/include/asm-generic/gpio.h | |||
| @@ -192,12 +192,6 @@ extern int gpio_request_one(unsigned gpio, unsigned long flags, const char *labe | |||
| 192 | extern int gpio_request_array(const struct gpio *array, size_t num); | 192 | extern int gpio_request_array(const struct gpio *array, size_t num); |
| 193 | extern void gpio_free_array(const struct gpio *array, size_t num); | 193 | extern void gpio_free_array(const struct gpio *array, size_t num); |
| 194 | 194 | ||
| 195 | /* bindings for managed devices that want to request gpios */ | ||
| 196 | int devm_gpio_request(struct device *dev, unsigned gpio, const char *label); | ||
| 197 | int devm_gpio_request_one(struct device *dev, unsigned gpio, | ||
| 198 | unsigned long flags, const char *label); | ||
| 199 | void devm_gpio_free(struct device *dev, unsigned int gpio); | ||
| 200 | |||
| 201 | #ifdef CONFIG_GPIO_SYSFS | 195 | #ifdef CONFIG_GPIO_SYSFS |
| 202 | 196 | ||
| 203 | /* | 197 | /* |
diff --git a/include/linux/gpio.h b/include/linux/gpio.h index bfe665621536..f6c7ae3e223b 100644 --- a/include/linux/gpio.h +++ b/include/linux/gpio.h | |||
| @@ -94,24 +94,12 @@ static inline int gpio_request(unsigned gpio, const char *label) | |||
| 94 | return -ENOSYS; | 94 | return -ENOSYS; |
| 95 | } | 95 | } |
| 96 | 96 | ||
| 97 | static inline int devm_gpio_request(struct device *dev, unsigned gpio, | ||
| 98 | const char *label) | ||
| 99 | { | ||
| 100 | return -ENOSYS; | ||
| 101 | } | ||
| 102 | |||
| 103 | static inline int gpio_request_one(unsigned gpio, | 97 | static inline int gpio_request_one(unsigned gpio, |
| 104 | unsigned long flags, const char *label) | 98 | unsigned long flags, const char *label) |
| 105 | { | 99 | { |
| 106 | return -ENOSYS; | 100 | return -ENOSYS; |
| 107 | } | 101 | } |
| 108 | 102 | ||
| 109 | static inline int devm_gpio_request_one(struct device *dev, unsigned gpio, | ||
| 110 | unsigned long flags, const char *label) | ||
| 111 | { | ||
| 112 | return -ENOSYS; | ||
| 113 | } | ||
| 114 | |||
| 115 | static inline int gpio_request_array(const struct gpio *array, size_t num) | 103 | static inline int gpio_request_array(const struct gpio *array, size_t num) |
| 116 | { | 104 | { |
| 117 | return -ENOSYS; | 105 | return -ENOSYS; |
| @@ -125,14 +113,6 @@ static inline void gpio_free(unsigned gpio) | |||
| 125 | WARN_ON(1); | 113 | WARN_ON(1); |
| 126 | } | 114 | } |
| 127 | 115 | ||
| 128 | static inline void devm_gpio_free(struct device *dev, unsigned gpio) | ||
| 129 | { | ||
| 130 | might_sleep(); | ||
| 131 | |||
| 132 | /* GPIO can never have been requested */ | ||
| 133 | WARN_ON(1); | ||
| 134 | } | ||
| 135 | |||
| 136 | static inline void gpio_free_array(const struct gpio *array, size_t num) | 116 | static inline void gpio_free_array(const struct gpio *array, size_t num) |
| 137 | { | 117 | { |
| 138 | might_sleep(); | 118 | might_sleep(); |
| @@ -248,4 +228,12 @@ gpiochip_remove_pin_ranges(struct gpio_chip *chip) | |||
| 248 | 228 | ||
| 249 | #endif /* ! CONFIG_GENERIC_GPIO */ | 229 | #endif /* ! CONFIG_GENERIC_GPIO */ |
| 250 | 230 | ||
| 231 | struct device; | ||
| 232 | |||
| 233 | /* bindings for managed devices that want to request gpios */ | ||
| 234 | int devm_gpio_request(struct device *dev, unsigned gpio, const char *label); | ||
| 235 | int devm_gpio_request_one(struct device *dev, unsigned gpio, | ||
| 236 | unsigned long flags, const char *label); | ||
| 237 | void devm_gpio_free(struct device *dev, unsigned int gpio); | ||
| 238 | |||
| 251 | #endif /* __LINUX_GPIO_H */ | 239 | #endif /* __LINUX_GPIO_H */ |
