Commit a3e9625e authored by Jinjie Ruan's avatar Jinjie Ruan Committed by Jonathan Cameron

iio: adc: mt6577_auxadc: Use devm_clk_get_enabled() helper function

The devm_clk_get_enabled() helper:
    - calls devm_clk_get()
    - calls clk_prepare_enable() and registers what is needed in order to
      call clk_disable_unprepare() when needed, as a managed resource.

This simplifies the code.
Signed-off-by: default avatarJinjie Ruan <ruanjinjie@huawei.com>
Link: https://lore.kernel.org/r/20230825105746.2999548-3-ruanjinjie@huawei.comSigned-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 0bb80ecc
...@@ -270,23 +270,16 @@ static int mt6577_auxadc_probe(struct platform_device *pdev) ...@@ -270,23 +270,16 @@ static int mt6577_auxadc_probe(struct platform_device *pdev)
return PTR_ERR(adc_dev->reg_base); return PTR_ERR(adc_dev->reg_base);
} }
adc_dev->adc_clk = devm_clk_get(&pdev->dev, "main"); adc_dev->adc_clk = devm_clk_get_enabled(&pdev->dev, "main");
if (IS_ERR(adc_dev->adc_clk)) { if (IS_ERR(adc_dev->adc_clk)) {
dev_err(&pdev->dev, "failed to get auxadc clock\n");
return PTR_ERR(adc_dev->adc_clk);
}
ret = clk_prepare_enable(adc_dev->adc_clk);
if (ret) {
dev_err(&pdev->dev, "failed to enable auxadc clock\n"); dev_err(&pdev->dev, "failed to enable auxadc clock\n");
return ret; return PTR_ERR(adc_dev->adc_clk);
} }
adc_clk_rate = clk_get_rate(adc_dev->adc_clk); adc_clk_rate = clk_get_rate(adc_dev->adc_clk);
if (!adc_clk_rate) { if (!adc_clk_rate) {
ret = -EINVAL;
dev_err(&pdev->dev, "null clock rate\n"); dev_err(&pdev->dev, "null clock rate\n");
goto err_disable_clk; return -EINVAL;
} }
adc_dev->dev_comp = device_get_match_data(&pdev->dev); adc_dev->dev_comp = device_get_match_data(&pdev->dev);
...@@ -310,8 +303,6 @@ static int mt6577_auxadc_probe(struct platform_device *pdev) ...@@ -310,8 +303,6 @@ static int mt6577_auxadc_probe(struct platform_device *pdev)
err_power_off: err_power_off:
mt6577_auxadc_mod_reg(adc_dev->reg_base + MT6577_AUXADC_MISC, mt6577_auxadc_mod_reg(adc_dev->reg_base + MT6577_AUXADC_MISC,
0, MT6577_AUXADC_PDN_EN); 0, MT6577_AUXADC_PDN_EN);
err_disable_clk:
clk_disable_unprepare(adc_dev->adc_clk);
return ret; return ret;
} }
...@@ -325,8 +316,6 @@ static int mt6577_auxadc_remove(struct platform_device *pdev) ...@@ -325,8 +316,6 @@ static int mt6577_auxadc_remove(struct platform_device *pdev)
mt6577_auxadc_mod_reg(adc_dev->reg_base + MT6577_AUXADC_MISC, mt6577_auxadc_mod_reg(adc_dev->reg_base + MT6577_AUXADC_MISC,
0, MT6577_AUXADC_PDN_EN); 0, MT6577_AUXADC_PDN_EN);
clk_disable_unprepare(adc_dev->adc_clk);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment