New DTs call the initial pinctrl state "boot" in
order to avoid Linux reconfiguring the pinctrl
by default. The bootloader should explicitly set
this state.

Signed-off-by: Lucas Stach <[email protected]>
---
 drivers/pinctrl/pinctrl-tegra20.c | 8 ++++++--
 drivers/pinctrl/pinctrl-tegra30.c | 8 ++++++--
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-tegra20.c 
b/drivers/pinctrl/pinctrl-tegra20.c
index 3c11be6..be9d8a9 100644
--- a/drivers/pinctrl/pinctrl-tegra20.c
+++ b/drivers/pinctrl/pinctrl-tegra20.c
@@ -320,10 +320,14 @@ static int pinctrl_tegra20_probe(struct device_d *dev)
        ctrl->pinctrl.ops = &pinctrl_tegra20_ops;
 
        ret = pinctrl_register(&ctrl->pinctrl);
-       if (ret)
+       if (ret) {
                free(ctrl);
+               return ret;
+       }
+
+       of_pinctrl_select_state(dev->device_node, "boot");
 
-       return ret;
+       return 0;
 }
 
 static __maybe_unused struct of_device_id pinctrl_tegra20_dt_ids[] = {
diff --git a/drivers/pinctrl/pinctrl-tegra30.c 
b/drivers/pinctrl/pinctrl-tegra30.c
index 8277218..aac6760 100644
--- a/drivers/pinctrl/pinctrl-tegra30.c
+++ b/drivers/pinctrl/pinctrl-tegra30.c
@@ -897,10 +897,14 @@ static int pinctrl_tegra30_probe(struct device_d *dev)
        ctrl->pinctrl.ops = &pinctrl_tegra30_ops;
 
        ret = pinctrl_register(&ctrl->pinctrl);
-       if (ret)
+       if (ret) {
                free(ctrl);
+               return ret;
+       }
+
+       of_pinctrl_select_state(dev->device_node, "boot");
 
-       return ret;
+       return 0;
 }
 
 static __maybe_unused struct of_device_id pinctrl_tegra30_dt_ids[] = {
-- 
1.9.3


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to