mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 09:04:39 +02:00
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: Jinjie Ruan <ruanjinjie@huawei.com>
Link: https://lore.kernel.org/r/20230825105746.2999548-3-ruanjinjie@huawei.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
0bb80ecc33
commit
a3e9625ec0
|
|
@ -270,23 +270,16 @@ static int mt6577_auxadc_probe(struct platform_device *pdev)
|
|||
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)) {
|
||||
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");
|
||||
return ret;
|
||||
return PTR_ERR(adc_dev->adc_clk);
|
||||
}
|
||||
|
||||
adc_clk_rate = clk_get_rate(adc_dev->adc_clk);
|
||||
if (!adc_clk_rate) {
|
||||
ret = -EINVAL;
|
||||
dev_err(&pdev->dev, "null clock rate\n");
|
||||
goto err_disable_clk;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
adc_dev->dev_comp = device_get_match_data(&pdev->dev);
|
||||
|
|
@ -310,8 +303,6 @@ static int mt6577_auxadc_probe(struct platform_device *pdev)
|
|||
err_power_off:
|
||||
mt6577_auxadc_mod_reg(adc_dev->reg_base + MT6577_AUXADC_MISC,
|
||||
0, MT6577_AUXADC_PDN_EN);
|
||||
err_disable_clk:
|
||||
clk_disable_unprepare(adc_dev->adc_clk);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -325,8 +316,6 @@ static int mt6577_auxadc_remove(struct platform_device *pdev)
|
|||
mt6577_auxadc_mod_reg(adc_dev->reg_base + MT6577_AUXADC_MISC,
|
||||
0, MT6577_AUXADC_PDN_EN);
|
||||
|
||||
clk_disable_unprepare(adc_dev->adc_clk);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user