[PATCH 3/5] pinctrl: mvebu: Use devm_clk_get_enabled() helpers
From: Wang Jianzheng <hidden>
Date: 2024-08-29 06:49:16
Also in:
linux-gpio, lkml
Subsystem:
arm/marvell kirkwood and armada 370, 375, 38x, 39x, xp, 3700, 7k/8k, cn9130 soc support, pin control subsystem, the rest · Maintainers:
Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Linus Walleij, Linus Torvalds
The devm_clk_get_enabled() helpers:
- call devm_clk_get()
- call clk_prepare_enable() and register what is needed in order to
call clk_disable_unprepare() when needed, as a managed resource.
This simplifies the code and avoids the calls to clk_disable_unprepare().
Signed-off-by: Wang Jianzheng <redacted>
---
drivers/pinctrl/mvebu/pinctrl-dove.c | 45 +++++++++-------------------
1 file changed, 14 insertions(+), 31 deletions(-)
diff --git a/drivers/pinctrl/mvebu/pinctrl-dove.c b/drivers/pinctrl/mvebu/pinctrl-dove.c
index dce601d99372..1c2a292ebbd9 100644
--- a/drivers/pinctrl/mvebu/pinctrl-dove.c
+++ b/drivers/pinctrl/mvebu/pinctrl-dove.c@@ -767,7 +767,7 @@ static int dove_pinctrl_probe(struct platform_device *pdev) struct resource fb_res; struct mvebu_mpp_ctrl_data *mpp_data; void __iomem *base; - int i, ret; + int i; pdev->dev.platform_data = (void *)device_get_match_data(&pdev->dev);
@@ -775,25 +775,20 @@ static int dove_pinctrl_probe(struct platform_device *pdev) * General MPP Configuration Register is part of pdma registers. * grab clk to make sure it is ticking. */ - clk = devm_clk_get(&pdev->dev, NULL); + clk = devm_clk_get_enabled(&pdev->dev, NULL); if (IS_ERR(clk)) { dev_err(&pdev->dev, "Unable to get pdma clock"); return PTR_ERR(clk); } - clk_prepare_enable(clk); base = devm_platform_get_and_ioremap_resource(pdev, 0, &mpp_res); - if (IS_ERR(base)) { - ret = PTR_ERR(base); - goto err_probe; - } + if (IS_ERR(base)) + return PTR_ERR(base); mpp_data = devm_kcalloc(&pdev->dev, dove_pinctrl_info.ncontrols, sizeof(*mpp_data), GFP_KERNEL); - if (!mpp_data) { - ret = -ENOMEM; - goto err_probe; - } + if (!mpp_data) + return -ENOMEM; dove_pinctrl_info.control_data = mpp_data; for (i = 0; i < ARRAY_SIZE(dove_mpp_controls); i++)
@@ -812,10 +807,8 @@ static int dove_pinctrl_probe(struct platform_device *pdev) } mpp4_base = devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR(mpp4_base)) { - ret = PTR_ERR(mpp4_base); - goto err_probe; - } + if (IS_ERR(mpp4_base)) + return PTR_ERR(mpp4_base); res = platform_get_resource(pdev, IORESOURCE_MEM, 2); if (!res) {
@@ -826,10 +819,8 @@ static int dove_pinctrl_probe(struct platform_device *pdev) } pmu_base = devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR(pmu_base)) { - ret = PTR_ERR(pmu_base); - goto err_probe; - } + if (IS_ERR(pmu_base)) + return PTR_ERR(pmu_base); gconfmap = syscon_regmap_lookup_by_compatible("marvell,dove-global-config"); if (IS_ERR(gconfmap)) {
@@ -839,17 +830,12 @@ static int dove_pinctrl_probe(struct platform_device *pdev) adjust_resource(&fb_res, (mpp_res->start & INT_REGS_MASK) + GC_REGS_OFFS, 0x14); gc_base = devm_ioremap_resource(&pdev->dev, &fb_res); - if (IS_ERR(gc_base)) { - ret = PTR_ERR(gc_base); - goto err_probe; - } - + if (IS_ERR(gc_base)) + return PTR_ERR(gc_base); gconfmap = devm_regmap_init_mmio(&pdev->dev, gc_base, &gc_regmap_config); - if (IS_ERR(gconfmap)) { - ret = PTR_ERR(gconfmap); - goto err_probe; - } + if (IS_ERR(gconfmap)) + return PTR_ERR(gconfmap); } /* Warn on any missing DT resource */
@@ -857,9 +843,6 @@ static int dove_pinctrl_probe(struct platform_device *pdev) dev_warn(&pdev->dev, FW_BUG "Missing pinctrl regs in DTB. Please update your firmware.\n"); return mvebu_pinctrl_probe(pdev); -err_probe: - clk_disable_unprepare(clk); - return ret; } static struct platform_driver dove_pinctrl_driver = {
--
2.34.1