gpio: davinci: add support for pinmux gpio ranges
authorDavid Lechner <david@lechnology.com>
Sun, 21 Jan 2018 23:09:40 +0000 (17:09 -0600)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 12 Feb 2018 08:36:06 +0000 (09:36 +0100)
This adds support for the pinmux gpio ranges feature to the DaVinci gpio
driver. Only device tree is supported since the non-DT boards don't
use a generic pinmux controller.

Cc: Keerthy <j-keerthy@ti.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: David Lechner <david@lechnology.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-davinci.c

index 0b951ca..987126c 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
+#include <linux/pinctrl/consumer.h>
 #include <linux/platform_device.h>
 #include <linux/platform_data/gpio-davinci.h>
 #include <linux/irqchip/chained_irq.h>
@@ -225,6 +226,11 @@ static int davinci_gpio_probe(struct platform_device *pdev)
        chips->chip.of_gpio_n_cells = 2;
        chips->chip.parent = dev;
        chips->chip.of_node = dev->of_node;
+
+       if (of_property_read_bool(dev->of_node, "gpio-ranges")) {
+               chips->chip.request = gpiochip_generic_request;
+               chips->chip.free = gpiochip_generic_free;
+       }
 #endif
        spin_lock_init(&chips->lock);
        bank_base += ngpio;