at v3.13 1.4 kB view raw
1#ifndef _LINUX_ACPI_GPIO_H_ 2#define _LINUX_ACPI_GPIO_H_ 3 4#include <linux/device.h> 5#include <linux/err.h> 6#include <linux/errno.h> 7#include <linux/gpio.h> 8#include <linux/gpio/consumer.h> 9 10/** 11 * struct acpi_gpio_info - ACPI GPIO specific information 12 * @gpioint: if %true this GPIO is of type GpioInt otherwise type is GpioIo 13 * @active_low: in case of @gpioint, the pin is active low 14 */ 15struct acpi_gpio_info { 16 bool gpioint; 17 bool active_low; 18}; 19 20#ifdef CONFIG_GPIO_ACPI 21 22struct gpio_desc *acpi_get_gpiod_by_index(struct device *dev, int index, 23 struct acpi_gpio_info *info); 24void acpi_gpiochip_request_interrupts(struct gpio_chip *chip); 25void acpi_gpiochip_free_interrupts(struct gpio_chip *chip); 26 27#else /* CONFIG_GPIO_ACPI */ 28 29static inline struct gpio_desc * 30acpi_get_gpiod_by_index(struct device *dev, int index, 31 struct acpi_gpio_info *info) 32{ 33 return ERR_PTR(-ENOSYS); 34} 35 36static inline void acpi_gpiochip_request_interrupts(struct gpio_chip *chip) { } 37static inline void acpi_gpiochip_free_interrupts(struct gpio_chip *chip) { } 38 39#endif /* CONFIG_GPIO_ACPI */ 40 41static inline int acpi_get_gpio_by_index(struct device *dev, int index, 42 struct acpi_gpio_info *info) 43{ 44 struct gpio_desc *desc = acpi_get_gpiod_by_index(dev, index, info); 45 46 if (IS_ERR(desc)) 47 return PTR_ERR(desc); 48 return desc_to_gpio(desc); 49} 50 51#endif /* _LINUX_ACPI_GPIO_H_ */