gpio/gpiolib-of: Create of_mm_gpiochip_remove
Create counterpart of of_mm_gpiochip_add(). This way the modules that can be removable do not duplicate the cleanup code. Suggested-by: Alexandre Courbot <gnurou@gmail.com> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
Родитель
1d6902d3a6
Коммит
d621e8bae5
|
@ -204,6 +204,23 @@ err0:
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(of_mm_gpiochip_add);
|
EXPORT_SYMBOL(of_mm_gpiochip_add);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* of_mm_gpiochip_remove - Remove memory mapped GPIO chip (bank)
|
||||||
|
* @mm_gc: pointer to the of_mm_gpio_chip allocated structure
|
||||||
|
*/
|
||||||
|
void of_mm_gpiochip_remove(struct of_mm_gpio_chip *mm_gc)
|
||||||
|
{
|
||||||
|
struct gpio_chip *gc = &mm_gc->gc;
|
||||||
|
|
||||||
|
if (!mm_gc)
|
||||||
|
return;
|
||||||
|
|
||||||
|
gpiochip_remove(gc);
|
||||||
|
iounmap(mm_gc->regs);
|
||||||
|
kfree(gc->label);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(of_mm_gpiochip_remove);
|
||||||
|
|
||||||
#ifdef CONFIG_PINCTRL
|
#ifdef CONFIG_PINCTRL
|
||||||
static void of_gpiochip_add_pin_range(struct gpio_chip *chip)
|
static void of_gpiochip_add_pin_range(struct gpio_chip *chip)
|
||||||
{
|
{
|
||||||
|
|
|
@ -52,6 +52,7 @@ extern int of_get_named_gpio_flags(struct device_node *np,
|
||||||
|
|
||||||
extern int of_mm_gpiochip_add(struct device_node *np,
|
extern int of_mm_gpiochip_add(struct device_node *np,
|
||||||
struct of_mm_gpio_chip *mm_gc);
|
struct of_mm_gpio_chip *mm_gc);
|
||||||
|
extern void of_mm_gpiochip_remove(struct of_mm_gpio_chip *mm_gc);
|
||||||
|
|
||||||
extern void of_gpiochip_add(struct gpio_chip *gc);
|
extern void of_gpiochip_add(struct gpio_chip *gc);
|
||||||
extern void of_gpiochip_remove(struct gpio_chip *gc);
|
extern void of_gpiochip_remove(struct gpio_chip *gc);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче