|
@@ -204,6 +204,23 @@ err0:
|
|
|
}
|
|
|
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
|
|
|
static void of_gpiochip_add_pin_range(struct gpio_chip *chip)
|
|
|
{
|