xref: /openbmc/linux/drivers/gpio/gpiolib.h (revision 5ccff852)
1664e3e5aSMika Westerberg /*
2664e3e5aSMika Westerberg  * Internal GPIO functions.
3664e3e5aSMika Westerberg  *
4664e3e5aSMika Westerberg  * Copyright (C) 2013, Intel Corporation
5664e3e5aSMika Westerberg  * Author: Mika Westerberg <mika.westerberg@linux.intel.com>
6664e3e5aSMika Westerberg  *
7664e3e5aSMika Westerberg  * This program is free software; you can redistribute it and/or modify
8664e3e5aSMika Westerberg  * it under the terms of the GNU General Public License version 2 as
9664e3e5aSMika Westerberg  * published by the Free Software Foundation.
10664e3e5aSMika Westerberg  */
11664e3e5aSMika Westerberg 
12664e3e5aSMika Westerberg #ifndef GPIOLIB_H
13664e3e5aSMika Westerberg #define GPIOLIB_H
14664e3e5aSMika Westerberg 
155ccff852SMika Westerberg #include <linux/err.h>
165ccff852SMika Westerberg #include <linux/device.h>
175ccff852SMika Westerberg 
185ccff852SMika Westerberg /**
195ccff852SMika Westerberg  * struct acpi_gpio_info - ACPI GPIO specific information
205ccff852SMika Westerberg  * @gpioint: if %true this GPIO is of type GpioInt otherwise type is GpioIo
215ccff852SMika Westerberg  * @active_low: in case of @gpioint, the pin is active low
225ccff852SMika Westerberg  */
235ccff852SMika Westerberg struct acpi_gpio_info {
245ccff852SMika Westerberg 	bool gpioint;
255ccff852SMika Westerberg 	bool active_low;
265ccff852SMika Westerberg };
275ccff852SMika Westerberg 
28664e3e5aSMika Westerberg #ifdef CONFIG_ACPI
29664e3e5aSMika Westerberg void acpi_gpiochip_add(struct gpio_chip *chip);
30664e3e5aSMika Westerberg void acpi_gpiochip_remove(struct gpio_chip *chip);
315ccff852SMika Westerberg 
325ccff852SMika Westerberg struct gpio_desc *acpi_get_gpiod_by_index(struct device *dev, int index,
335ccff852SMika Westerberg 					  struct acpi_gpio_info *info);
34664e3e5aSMika Westerberg #else
35664e3e5aSMika Westerberg static inline void acpi_gpiochip_add(struct gpio_chip *chip) { }
36664e3e5aSMika Westerberg static inline void acpi_gpiochip_remove(struct gpio_chip *chip) { }
375ccff852SMika Westerberg 
385ccff852SMika Westerberg static inline struct gpio_desc *
395ccff852SMika Westerberg acpi_get_gpiod_by_index(struct device *dev, int index,
405ccff852SMika Westerberg 			struct acpi_gpio_info *info)
415ccff852SMika Westerberg {
425ccff852SMika Westerberg 	return ERR_PTR(-ENOSYS);
435ccff852SMika Westerberg }
44664e3e5aSMika Westerberg #endif
45664e3e5aSMika Westerberg 
46664e3e5aSMika Westerberg #endif /* GPIOLIB_H */
47