]>
Commit | Line | Data |
---|---|---|
e29482e8 MN |
1 | #ifndef _LINUX_ACPI_GPIO_H_ |
2 | #define _LINUX_ACPI_GPIO_H_ | |
3 | ||
12028d2d | 4 | #include <linux/device.h> |
936e15dd | 5 | #include <linux/err.h> |
e29482e8 | 6 | #include <linux/errno.h> |
0d1c28a4 | 7 | #include <linux/gpio.h> |
936e15dd | 8 | #include <linux/gpio/consumer.h> |
e29482e8 | 9 | |
12028d2d MW |
10 | /** |
11 | * struct acpi_gpio_info - ACPI GPIO specific information | |
12 | * @gpioint: if %true this GPIO is of type GpioInt otherwise type is GpioIo | |
e01f440a | 13 | * @active_low: in case of @gpioint, the pin is active low |
12028d2d MW |
14 | */ |
15 | struct acpi_gpio_info { | |
16 | bool gpioint; | |
e01f440a | 17 | bool active_low; |
12028d2d MW |
18 | }; |
19 | ||
e29482e8 MN |
20 | #ifdef CONFIG_GPIO_ACPI |
21 | ||
936e15dd MW |
22 | struct gpio_desc *acpi_get_gpiod_by_index(struct device *dev, int index, |
23 | struct acpi_gpio_info *info); | |
0d1c28a4 | 24 | void acpi_gpiochip_request_interrupts(struct gpio_chip *chip); |
7fc7acb9 | 25 | void acpi_gpiochip_free_interrupts(struct gpio_chip *chip); |
e29482e8 MN |
26 | |
27 | #else /* CONFIG_GPIO_ACPI */ | |
28 | ||
936e15dd MW |
29 | static inline struct gpio_desc * |
30 | acpi_get_gpiod_by_index(struct device *dev, int index, | |
31 | struct acpi_gpio_info *info) | |
e29482e8 | 32 | { |
936e15dd | 33 | return ERR_PTR(-ENOSYS); |
12028d2d MW |
34 | } |
35 | ||
0d1c28a4 | 36 | static inline void acpi_gpiochip_request_interrupts(struct gpio_chip *chip) { } |
7fc7acb9 | 37 | static inline void acpi_gpiochip_free_interrupts(struct gpio_chip *chip) { } |
0d1c28a4 | 38 | |
e29482e8 MN |
39 | #endif /* CONFIG_GPIO_ACPI */ |
40 | ||
936e15dd MW |
41 | static 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 | ||
e29482e8 | 51 | #endif /* _LINUX_ACPI_GPIO_H_ */ |