|  | /* SPDX-License-Identifier: GPL-2.0 */ | 
|  | /* | 
|  | * ACPI helpers for GPIO API | 
|  | * | 
|  | * Copyright (C) 2012,2019 Intel Corporation | 
|  | */ | 
|  |  | 
|  | #ifndef GPIOLIB_ACPI_H | 
|  | #define GPIOLIB_ACPI_H | 
|  |  | 
|  | #include <linux/err.h> | 
|  | #include <linux/types.h> | 
|  |  | 
|  | #include <linux/gpio/consumer.h> | 
|  |  | 
|  | struct device; | 
|  | struct fwnode_handle; | 
|  |  | 
|  | struct gpio_chip; | 
|  | struct gpio_desc; | 
|  | struct gpio_device; | 
|  |  | 
|  | #ifdef CONFIG_ACPI | 
|  | void acpi_gpiochip_add(struct gpio_chip *chip); | 
|  | void acpi_gpiochip_remove(struct gpio_chip *chip); | 
|  |  | 
|  | void acpi_gpiochip_request_interrupts(struct gpio_chip *chip); | 
|  | void acpi_gpiochip_free_interrupts(struct gpio_chip *chip); | 
|  |  | 
|  | struct gpio_desc *acpi_find_gpio(struct fwnode_handle *fwnode, | 
|  | const char *con_id, | 
|  | unsigned int idx, | 
|  | enum gpiod_flags *dflags, | 
|  | unsigned long *lookupflags); | 
|  |  | 
|  | int acpi_gpio_count(const struct fwnode_handle *fwnode, const char *con_id); | 
|  | #else | 
|  | static inline void acpi_gpiochip_add(struct gpio_chip *chip) { } | 
|  | static inline void acpi_gpiochip_remove(struct gpio_chip *chip) { } | 
|  |  | 
|  | static inline void | 
|  | acpi_gpiochip_request_interrupts(struct gpio_chip *chip) { } | 
|  |  | 
|  | static inline void | 
|  | acpi_gpiochip_free_interrupts(struct gpio_chip *chip) { } | 
|  |  | 
|  | static inline struct gpio_desc * | 
|  | acpi_find_gpio(struct fwnode_handle *fwnode, const char *con_id, | 
|  | unsigned int idx, enum gpiod_flags *dflags, | 
|  | unsigned long *lookupflags) | 
|  | { | 
|  | return ERR_PTR(-ENOENT); | 
|  | } | 
|  | static inline int acpi_gpio_count(const struct fwnode_handle *fwnode, | 
|  | const char *con_id) | 
|  | { | 
|  | return -ENODEV; | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif /* GPIOLIB_ACPI_H */ |