1 /* 2 * Internal GPIO functions. 3 * 4 * Copyright (C) 2013, Intel Corporation 5 * Author: Mika Westerberg <mika.westerberg@linux.intel.com> 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as 9 * published by the Free Software Foundation. 10 */ 11 12 #ifndef GPIOLIB_H 13 #define GPIOLIB_H 14 15 #include <linux/err.h> 16 #include <linux/device.h> 17 18 enum of_gpio_flags; 19 20 /** 21 * struct acpi_gpio_info - ACPI GPIO specific information 22 * @gpioint: if %true this GPIO is of type GpioInt otherwise type is GpioIo 23 * @active_low: in case of @gpioint, the pin is active low 24 */ 25 struct acpi_gpio_info { 26 bool gpioint; 27 bool active_low; 28 }; 29 30 #ifdef CONFIG_ACPI 31 void acpi_gpiochip_add(struct gpio_chip *chip); 32 void acpi_gpiochip_remove(struct gpio_chip *chip); 33 34 struct gpio_desc *acpi_get_gpiod_by_index(struct device *dev, int index, 35 struct acpi_gpio_info *info); 36 #else 37 static inline void acpi_gpiochip_add(struct gpio_chip *chip) { } 38 static inline void acpi_gpiochip_remove(struct gpio_chip *chip) { } 39 40 static inline struct gpio_desc * 41 acpi_get_gpiod_by_index(struct device *dev, int index, 42 struct acpi_gpio_info *info) 43 { 44 return ERR_PTR(-ENOSYS); 45 } 46 #endif 47 48 int gpiochip_request_own_desc(struct gpio_desc *desc, const char *label); 49 void gpiochip_free_own_desc(struct gpio_desc *desc); 50 51 struct gpio_desc *of_get_named_gpiod_flags(struct device_node *np, 52 const char *list_name, int index, enum of_gpio_flags *flags); 53 54 #endif /* GPIOLIB_H */ 55