can: c_can: Adopt pinctrl support
authorAnilKumar Ch <anilkumar@ti.com>
Wed, 5 Sep 2012 11:12:41 +0000 (16:42 +0530)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Fri, 21 Sep 2012 21:58:48 +0000 (23:58 +0200)
Adopt pinctrl support to c_can driver based on c_can device
pointer, pinctrl driver configure SoC pins to d_can mode
according to definitions provided in .dts file.

In device specific device tree file 'pinctrl-names = "default";'
and 'pinctrl-0 = <&d_can1_pins>;' needs to add to configure pins
from c_can driver. d_can1_pins node contains the pinmux/config
details of d_can L/H pins.

Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/c_can/c_can_platform.c

index 8a4e9d85a2af99ae0015af0d835e2201877d4981..ee1416132aba2e1f9582b7911f67e94eb21b3084 100644 (file)
@@ -32,6 +32,7 @@
 #include <linux/clk.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
+#include <linux/pinctrl/consumer.h>
 
 #include <linux/can/dev.h>
 
@@ -97,6 +98,7 @@ static int __devinit c_can_plat_probe(struct platform_device *pdev)
        struct c_can_priv *priv;
        const struct of_device_id *match;
        const struct platform_device_id *id;
+       struct pinctrl *pinctrl;
        struct resource *mem;
        int irq;
        struct clk *clk;
@@ -113,6 +115,11 @@ static int __devinit c_can_plat_probe(struct platform_device *pdev)
                id = platform_get_device_id(pdev);
        }
 
+       pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
+       if (IS_ERR(pinctrl))
+               dev_warn(&pdev->dev,
+                       "failed to configure pins from driver\n");
+
        /* get the appropriate clk */
        clk = clk_get(&pdev->dev, NULL);
        if (IS_ERR(clk)) {