leds: leds-gpio: adopt pinctrl support
authorAnilKumar Ch <anilkumar@ti.com>
Sat, 1 Sep 2012 08:16:30 +0000 (16:16 +0800)
committerBryan Wu <bryan.wu@canonical.com>
Tue, 11 Sep 2012 10:32:43 +0000 (18:32 +0800)
Adopt pinctrl support to leds-gpio driver based on leds-gpio
device pointer, pinctrl driver configure SoC pins to GPIO
mode according to definitions provided in .dts file.

Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
Acked-by: Marek Vasut <marex@denx.de>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
drivers/leds/leds-gpio.c

index cde85ba1903ac2c79034afdb0044334b3c2fc9ab..087d1e66f4f76e754aea4d21a149e7eb8633a060 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/slab.h>
 #include <linux/workqueue.h>
 #include <linux/module.h>
+#include <linux/pinctrl/consumer.h>
 
 struct gpio_led_data {
        struct led_classdev cdev;
@@ -234,8 +235,14 @@ static int __devinit gpio_led_probe(struct platform_device *pdev)
 {
        struct gpio_led_platform_data *pdata = pdev->dev.platform_data;
        struct gpio_leds_priv *priv;
+       struct pinctrl *pinctrl;
        int i, ret = 0;
 
+       pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
+       if (IS_ERR(pinctrl))
+               dev_warn(&pdev->dev,
+                       "pins are not configured from the driver\n");
+
        if (pdata && pdata->num_leds) {
                priv = devm_kzalloc(&pdev->dev,
                                sizeof_gpio_leds_priv(pdata->num_leds),