diff options
author | Thierry Reding <treding@nvidia.com> | 2015-08-21 19:44:05 +0300 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2015-08-21 19:44:05 +0300 |
commit | 7292ba64bd56d39c3b1fe4cbe8559e6c95858180 (patch) | |
tree | 244f98dc83a79d26d7f045d9eeab153512ab511b | |
parent | d770e558e21961ad6cfdf0ff7df0eb5d7d4f0754 (diff) | |
parent | 9462510ce31e2b91156bdcc33e4c737e6768e5f8 (diff) | |
download | linux-7292ba64bd56d39c3b1fe4cbe8559e6c95858180.tar.xz |
Merge branch 'for-4.3/pinctrl' into for-4.3/dt
-rw-r--r-- | drivers/pinctrl/pinctrl-tegra.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/drivers/pinctrl/pinctrl-tegra.c b/drivers/pinctrl/pinctrl-tegra.c index 0f982b829be1..0fd7fd2b0f72 100644 --- a/drivers/pinctrl/pinctrl-tegra.c +++ b/drivers/pinctrl/pinctrl-tegra.c @@ -624,6 +624,22 @@ static struct pinctrl_desc tegra_pinctrl_desc = { .owner = THIS_MODULE, }; +static bool gpio_node_has_range(void) +{ + struct device_node *np; + bool has_prop = false; + + np = of_find_compatible_node(NULL, NULL, "nvidia,tegra30-gpio"); + if (!np) + return has_prop; + + has_prop = of_find_property(np, "gpio-ranges", NULL); + + of_node_put(np); + + return has_prop; +} + int tegra_pinctrl_probe(struct platform_device *pdev, const struct tegra_pinctrl_soc_data *soc_data) { @@ -708,7 +724,8 @@ int tegra_pinctrl_probe(struct platform_device *pdev, return PTR_ERR(pmx->pctl); } - pinctrl_add_gpio_range(pmx->pctl, &tegra_pinctrl_gpio_range); + if (!gpio_node_has_range()) + pinctrl_add_gpio_range(pmx->pctl, &tegra_pinctrl_gpio_range); platform_set_drvdata(pdev, pmx); |