mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2024-12-29 09:12:07 +00:00
reset: lpc18xx: simplify with devm_clk_get_enabled()
Use devm_clk_get_enabled() to drop clock prepare/unprepare parts and make the code simpler. Change to dev_err_probe() in handling reset_controller_register() error to make it even simpler. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Reviewed-by: Damien Le Moal <dlemoal@kernel.org> Acked-by: Vladimir Zapolskiy <vz@mleia.com> Reviewed-by: Vladimir Zapolskiy <vz@mleia.com> Link: https://lore.kernel.org/r/20240825-reset-cleanup-scoped-v1-5-03f6d834f8c0@linaro.org Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
This commit is contained in:
parent
ece222e91f
commit
0fa8ce76b7
@ -150,28 +150,16 @@ static int lpc18xx_rgu_probe(struct platform_device *pdev)
|
|||||||
if (IS_ERR(rc->base))
|
if (IS_ERR(rc->base))
|
||||||
return PTR_ERR(rc->base);
|
return PTR_ERR(rc->base);
|
||||||
|
|
||||||
rc->clk_reg = devm_clk_get(&pdev->dev, "reg");
|
rc->clk_reg = devm_clk_get_enabled(&pdev->dev, "reg");
|
||||||
if (IS_ERR(rc->clk_reg))
|
if (IS_ERR(rc->clk_reg))
|
||||||
return dev_err_probe(&pdev->dev, PTR_ERR(rc->clk_reg),
|
return dev_err_probe(&pdev->dev, PTR_ERR(rc->clk_reg),
|
||||||
"reg clock not found\n");
|
"reg clock not found\n");
|
||||||
|
|
||||||
rc->clk_delay = devm_clk_get(&pdev->dev, "delay");
|
rc->clk_delay = devm_clk_get_enabled(&pdev->dev, "delay");
|
||||||
if (IS_ERR(rc->clk_delay))
|
if (IS_ERR(rc->clk_delay))
|
||||||
return dev_err_probe(&pdev->dev, PTR_ERR(rc->clk_delay),
|
return dev_err_probe(&pdev->dev, PTR_ERR(rc->clk_delay),
|
||||||
"delay clock not found\n");
|
"delay clock not found\n");
|
||||||
|
|
||||||
ret = clk_prepare_enable(rc->clk_reg);
|
|
||||||
if (ret) {
|
|
||||||
dev_err(&pdev->dev, "unable to enable reg clock\n");
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = clk_prepare_enable(rc->clk_delay);
|
|
||||||
if (ret) {
|
|
||||||
dev_err(&pdev->dev, "unable to enable delay clock\n");
|
|
||||||
goto dis_clk_reg;
|
|
||||||
}
|
|
||||||
|
|
||||||
fcclk = clk_get_rate(rc->clk_reg) / USEC_PER_SEC;
|
fcclk = clk_get_rate(rc->clk_reg) / USEC_PER_SEC;
|
||||||
firc = clk_get_rate(rc->clk_delay) / USEC_PER_SEC;
|
firc = clk_get_rate(rc->clk_delay) / USEC_PER_SEC;
|
||||||
if (fcclk == 0 || firc == 0)
|
if (fcclk == 0 || firc == 0)
|
||||||
@ -187,10 +175,8 @@ static int lpc18xx_rgu_probe(struct platform_device *pdev)
|
|||||||
rc->rcdev.of_node = pdev->dev.of_node;
|
rc->rcdev.of_node = pdev->dev.of_node;
|
||||||
|
|
||||||
ret = reset_controller_register(&rc->rcdev);
|
ret = reset_controller_register(&rc->rcdev);
|
||||||
if (ret) {
|
if (ret)
|
||||||
dev_err(&pdev->dev, "unable to register device\n");
|
return dev_err_probe(&pdev->dev, ret, "unable to register device\n");
|
||||||
goto dis_clks;
|
|
||||||
}
|
|
||||||
|
|
||||||
rc->restart_nb.priority = 192,
|
rc->restart_nb.priority = 192,
|
||||||
rc->restart_nb.notifier_call = lpc18xx_rgu_restart,
|
rc->restart_nb.notifier_call = lpc18xx_rgu_restart,
|
||||||
@ -199,13 +185,6 @@ static int lpc18xx_rgu_probe(struct platform_device *pdev)
|
|||||||
dev_warn(&pdev->dev, "failed to register restart handler\n");
|
dev_warn(&pdev->dev, "failed to register restart handler\n");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
dis_clks:
|
|
||||||
clk_disable_unprepare(rc->clk_delay);
|
|
||||||
dis_clk_reg:
|
|
||||||
clk_disable_unprepare(rc->clk_reg);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct of_device_id lpc18xx_rgu_match[] = {
|
static const struct of_device_id lpc18xx_rgu_match[] = {
|
||||||
|
Loading…
Reference in New Issue
Block a user