summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorAnilKumar Ch <anilkumar@ti.com>2012-09-05 15:12:41 +0400
committerMarc Kleine-Budde <mkl@pengutronix.de>2012-09-22 01:58:48 +0400
commit006cd138fc8813220cb4b6450bd9b44f3401bb89 (patch)
treedfb2c24f4f7cb784ba7f457a4ede66dd0f255005 /drivers
parent8212003260c600b9b55a79634fb29d0f7ec813d9 (diff)
downloadlinux-006cd138fc8813220cb4b6450bd9b44f3401bb89.tar.xz
can: c_can: Adopt pinctrl support
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/can/c_can/c_can_platform.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/can/c_can/c_can_platform.c b/drivers/net/can/c_can/c_can_platform.c
index 8a4e9d85a2af..ee1416132aba 100644
--- a/drivers/net/can/c_can/c_can_platform.c
+++ b/drivers/net/can/c_can/c_can_platform.c
@@ -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)) {