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

Signed-off-by: Matt Ranostay <mranos...@gmail.com>
---
 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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to