fbdev: imsttfb: Fix use after free bug in imsttfb_probe
[linux-block.git] / drivers / gpio / gpiolib-acpi.h
CommitLineData
77cb907a
AS
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
08a149c4 11#include <linux/err.h>
08a149c4
AS
12#include <linux/types.h>
13
14#include <linux/gpio/consumer.h>
15
08a149c4
AS
16struct device;
17struct fwnode_handle;
18
19struct gpio_chip;
20struct gpio_desc;
21struct gpio_device;
77cb907a 22
77cb907a
AS
23#ifdef CONFIG_ACPI
24void acpi_gpiochip_add(struct gpio_chip *chip);
25void acpi_gpiochip_remove(struct gpio_chip *chip);
26
27void acpi_gpiochip_request_interrupts(struct gpio_chip *chip);
28void acpi_gpiochip_free_interrupts(struct gpio_chip *chip);
29
2b6bce80 30struct gpio_desc *acpi_find_gpio(struct fwnode_handle *fwnode,
77cb907a
AS
31 const char *con_id,
32 unsigned int idx,
33 enum gpiod_flags *dflags,
34 unsigned long *lookupflags);
77cb907a
AS
35
36int acpi_gpio_count(struct device *dev, const char *con_id);
77cb907a
AS
37#else
38static inline void acpi_gpiochip_add(struct gpio_chip *chip) { }
39static inline void acpi_gpiochip_remove(struct gpio_chip *chip) { }
40
41static inline void
42acpi_gpiochip_request_interrupts(struct gpio_chip *chip) { }
43
44static inline void
45acpi_gpiochip_free_interrupts(struct gpio_chip *chip) { }
46
77cb907a 47static inline struct gpio_desc *
2b6bce80 48acpi_find_gpio(struct fwnode_handle *fwnode, const char *con_id,
77cb907a
AS
49 unsigned int idx, enum gpiod_flags *dflags,
50 unsigned long *lookupflags)
51{
52 return ERR_PTR(-ENOENT);
53}
77cb907a
AS
54static inline int acpi_gpio_count(struct device *dev, const char *con_id)
55{
56 return -ENODEV;
57}
77cb907a
AS
58#endif
59
60#endif /* GPIOLIB_ACPI_H */