Revert "thermal: rockchip: fix up the tsadc pinctrl setting error"
authorHeiko Stuebner <heiko@sntech.de>
Wed, 22 May 2019 14:12:36 +0000 (16:12 +0200)
committerEduardo Valentin <edubezval@gmail.com>
Fri, 24 May 2019 04:48:58 +0000 (21:48 -0700)
This reverts commit 28694e009e512451ead5519dd801f9869acb1f60.

The commit causes multiple issues in that:
- the added call to ->control does potentially run unclocked
  causing a hang of the machine
- the added pinctrl-states are undocumented in the binding
- the added pinctrl-states are not backwards compatible, breaking
  old devicetrees.

Fixes: 28694e009e51 ("thermal: rockchip: fix up the tsadc pinctrl setting error")
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reported-by: kernelci.org bot <bot@kernelci.org>
Reported-by: Enric Balletbo Serra <eballetbo@gmail.com>
Reported-by: Vicente Bergas <vicencb@gmail.com>
Reported-by: Jack Mitchell <ml@embed.me.uk>
Reported-by: Douglas Anderson <dianders@chromium.org>
Tested-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
drivers/thermal/rockchip_thermal.c

index bda1ca199abd3f9cbbe3a8195d9ae93a61036139..7ef9c7efe950115392564ca8b5fba1ffd818f251 100644 (file)
@@ -172,9 +172,6 @@ struct rockchip_thermal_data {
        int tshut_temp;
        enum tshut_mode tshut_mode;
        enum tshut_polarity tshut_polarity;
-       struct pinctrl *pinctrl;
-       struct pinctrl_state *gpio_state;
-       struct pinctrl_state *otp_state;
 };
 
 /**
@@ -1283,8 +1280,6 @@ static int rockchip_thermal_probe(struct platform_device *pdev)
                return error;
        }
 
-       thermal->chip->control(thermal->regs, false);
-
        error = clk_prepare_enable(thermal->clk);
        if (error) {
                dev_err(&pdev->dev, "failed to enable converter clock: %d\n",
@@ -1310,30 +1305,6 @@ static int rockchip_thermal_probe(struct platform_device *pdev)
        thermal->chip->initialize(thermal->grf, thermal->regs,
                                  thermal->tshut_polarity);
 
-       if (thermal->tshut_mode == TSHUT_MODE_GPIO) {
-               thermal->pinctrl = devm_pinctrl_get(&pdev->dev);
-               if (IS_ERR(thermal->pinctrl)) {
-                       dev_err(&pdev->dev, "failed to find thermal pinctrl\n");
-                       return PTR_ERR(thermal->pinctrl);
-               }
-
-               thermal->gpio_state = pinctrl_lookup_state(thermal->pinctrl,
-                                                          "gpio");
-               if (IS_ERR_OR_NULL(thermal->gpio_state)) {
-                       dev_err(&pdev->dev, "failed to find thermal gpio state\n");
-                       return -EINVAL;
-               }
-
-               thermal->otp_state = pinctrl_lookup_state(thermal->pinctrl,
-                                                         "otpout");
-               if (IS_ERR_OR_NULL(thermal->otp_state)) {
-                       dev_err(&pdev->dev, "failed to find thermal otpout state\n");
-                       return -EINVAL;
-               }
-
-               pinctrl_select_state(thermal->pinctrl, thermal->otp_state);
-       }
-
        for (i = 0; i < thermal->chip->chn_num; i++) {
                error = rockchip_thermal_register_sensor(pdev, thermal,
                                                &thermal->sensors[i],
@@ -1404,8 +1375,8 @@ static int __maybe_unused rockchip_thermal_suspend(struct device *dev)
 
        clk_disable(thermal->pclk);
        clk_disable(thermal->clk);
-       if (thermal->tshut_mode == TSHUT_MODE_GPIO)
-               pinctrl_select_state(thermal->pinctrl, thermal->gpio_state);
+
+       pinctrl_pm_select_sleep_state(dev);
 
        return 0;
 }
@@ -1450,8 +1421,7 @@ static int __maybe_unused rockchip_thermal_resume(struct device *dev)
        for (i = 0; i < thermal->chip->chn_num; i++)
                rockchip_thermal_toggle_sensor(&thermal->sensors[i], true);
 
-       if (thermal->tshut_mode == TSHUT_MODE_GPIO)
-               pinctrl_select_state(thermal->pinctrl, thermal->otp_state);
+       pinctrl_pm_select_default_state(dev);
 
        return 0;
 }