2013-07-10 04:33:05

by Matt Ranostay

[permalink] [raw]
Subject: [PATCH] pps-gpio: add pinctrl suppport

Add pincontrol support to pps-gpio driver for selecting the
repective GPIO muxing if applicable.

Signed-off-by: Matt Ranostay <[email protected]>
---
drivers/pps/clients/pps-gpio.c | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/drivers/pps/clients/pps-gpio.c b/drivers/pps/clients/pps-gpio.c
index eae0eda..8d51d10 100644
--- a/drivers/pps/clients/pps-gpio.c
+++ b/drivers/pps/clients/pps-gpio.c
@@ -33,6 +33,9 @@
#include <linux/pps-gpio.h>
#include <linux/gpio.h>
#include <linux/list.h>
+#include <linux/pinctrl/pinctrl.h>
+#include <linux/pinctrl/pinmux.h>
+#include <linux/pinctrl/consumer.h>
#include <linux/of_device.h>
#include <linux/of_gpio.h>

@@ -93,6 +96,7 @@ static int pps_gpio_probe(struct platform_device *pdev)
const char *gpio_label;
int ret;
int pps_default_params;
+ struct pinctrl *pinctrl;
const struct pps_gpio_platform_data *pdata = pdev->dev.platform_data;
struct device_node *np = pdev->dev.of_node;

@@ -121,6 +125,11 @@ static int pps_gpio_probe(struct platform_device *pdev)
data->assert_falling_edge = true;
}

+ /* PINCTL setup */
+ pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
+ if (IS_ERR(pinctrl))
+ pr_warn("pins are not configured from the driver\n");
+
/* GPIO setup */
ret = devm_gpio_request(&pdev->dev, data->gpio_pin, gpio_label);
if (ret) {
--
1.8.2.rc3.6.g407929c