gpiolib: provide generic request/free implementations
Provide generic request/free implementations that pinctrl aware gpio drivers can use instead of open coding if they use a 1:1 pin to gpio signal mapping. Signed-off-by: Jonas Gorski <jogo@openwrt.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
30cefeacec
commit
c771c2f484
2 changed files with 26 additions and 0 deletions
|
@ -15,6 +15,7 @@
|
||||||
#include <linux/acpi.h>
|
#include <linux/acpi.h>
|
||||||
#include <linux/gpio/driver.h>
|
#include <linux/gpio/driver.h>
|
||||||
#include <linux/gpio/machine.h>
|
#include <linux/gpio/machine.h>
|
||||||
|
#include <linux/pinctrl/consumer.h>
|
||||||
|
|
||||||
#include "gpiolib.h"
|
#include "gpiolib.h"
|
||||||
|
|
||||||
|
@ -745,6 +746,28 @@ static void gpiochip_irqchip_remove(struct gpio_chip *gpiochip) {}
|
||||||
|
|
||||||
#endif /* CONFIG_GPIOLIB_IRQCHIP */
|
#endif /* CONFIG_GPIOLIB_IRQCHIP */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gpiochip_generic_request() - request the gpio function for a pin
|
||||||
|
* @chip: the gpiochip owning the GPIO
|
||||||
|
* @offset: the offset of the GPIO to request for GPIO function
|
||||||
|
*/
|
||||||
|
int gpiochip_generic_request(struct gpio_chip *chip, unsigned offset)
|
||||||
|
{
|
||||||
|
return pinctrl_request_gpio(chip->base + offset);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(gpiochip_generic_request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gpiochip_generic_free() - free the gpio function from a pin
|
||||||
|
* @chip: the gpiochip to request the gpio function for
|
||||||
|
* @offset: the offset of the GPIO to free from GPIO function
|
||||||
|
*/
|
||||||
|
void gpiochip_generic_free(struct gpio_chip *chip, unsigned offset)
|
||||||
|
{
|
||||||
|
pinctrl_free_gpio(chip->base + offset);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(gpiochip_generic_free);
|
||||||
|
|
||||||
#ifdef CONFIG_PINCTRL
|
#ifdef CONFIG_PINCTRL
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -206,6 +206,9 @@ int _gpiochip_irqchip_add(struct gpio_chip *gpiochip,
|
||||||
|
|
||||||
#endif /* CONFIG_GPIOLIB_IRQCHIP */
|
#endif /* CONFIG_GPIOLIB_IRQCHIP */
|
||||||
|
|
||||||
|
int gpiochip_generic_request(struct gpio_chip *chip, unsigned offset);
|
||||||
|
void gpiochip_generic_free(struct gpio_chip *chip, unsigned offset);
|
||||||
|
|
||||||
#ifdef CONFIG_PINCTRL
|
#ifdef CONFIG_PINCTRL
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue