1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * ACPI helpers for GPIO API 4 * 5 * Copyright (C) 2012,2019 Intel Corporation 6 */ 7 8 #ifndef GPIOLIB_ACPI_H 9 #define GPIOLIB_ACPI_H 10 11 #include <linux/err.h> 12 #include <linux/types.h> 13 14 #include <linux/gpio/consumer.h> 15 16 struct device; 17 struct fwnode_handle; 18 19 struct gpio_chip; 20 struct gpio_desc; 21 struct gpio_device; 22 23 #ifdef CONFIG_ACPI 24 void acpi_gpiochip_add(struct gpio_chip *chip); 25 void acpi_gpiochip_remove(struct gpio_chip *chip); 26 27 void acpi_gpiochip_request_interrupts(struct gpio_chip *chip); 28 void acpi_gpiochip_free_interrupts(struct gpio_chip *chip); 29 30 struct gpio_desc *acpi_find_gpio(struct fwnode_handle *fwnode, 31 const char *con_id, 32 unsigned int idx, 33 enum gpiod_flags *dflags, 34 unsigned long *lookupflags); 35 36 int acpi_gpio_count(const struct fwnode_handle *fwnode, const char *con_id); 37 #else 38 static inline void acpi_gpiochip_add(struct gpio_chip *chip) { } 39 static inline void acpi_gpiochip_remove(struct gpio_chip *chip) { } 40 41 static inline void 42 acpi_gpiochip_request_interrupts(struct gpio_chip *chip) { } 43 44 static inline void 45 acpi_gpiochip_free_interrupts(struct gpio_chip *chip) { } 46 47 static inline struct gpio_desc * 48 acpi_find_gpio(struct fwnode_handle *fwnode, const char *con_id, 49 unsigned int idx, enum gpiod_flags *dflags, 50 unsigned long *lookupflags) 51 { 52 return ERR_PTR(-ENOENT); 53 } 54 static inline int acpi_gpio_count(const struct fwnode_handle *fwnode, 55 const char *con_id) 56 { 57 return -ENODEV; 58 } 59 #endif 60 61 #endif /* GPIOLIB_ACPI_H */ 62