memory: ti-aemif: use devm_clk_get_enabled() and shrink the code
Remove several lines of code and a jump label by using the managed variant of clk_get() that also prepares and enables the clock (and disables and unprepares it on driver detach). Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> Link: https://lore.kernel.org/r/20240809-ti-aemif-v1-2-27b1e5001390@linaro.org Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
This commit is contained in:
committed by
Krzysztof Kozlowski
parent
8c38617722
commit
f6ae541cc3
@@ -338,26 +338,20 @@ static int aemif_probe(struct platform_device *pdev)
|
||||
|
||||
platform_set_drvdata(pdev, aemif);
|
||||
|
||||
aemif->clk = devm_clk_get(dev, NULL);
|
||||
aemif->clk = devm_clk_get_enabled(dev, NULL);
|
||||
if (IS_ERR(aemif->clk)) {
|
||||
dev_err(dev, "cannot get clock 'aemif'\n");
|
||||
return PTR_ERR(aemif->clk);
|
||||
}
|
||||
|
||||
ret = clk_prepare_enable(aemif->clk);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
aemif->clk_rate = clk_get_rate(aemif->clk) / MSEC_PER_SEC;
|
||||
|
||||
if (np && of_device_is_compatible(np, "ti,da850-aemif"))
|
||||
aemif->cs_offset = 2;
|
||||
|
||||
aemif->base = devm_platform_ioremap_resource(pdev, 0);
|
||||
if (IS_ERR(aemif->base)) {
|
||||
ret = PTR_ERR(aemif->base);
|
||||
goto error;
|
||||
}
|
||||
if (IS_ERR(aemif->base))
|
||||
return PTR_ERR(aemif->base);
|
||||
|
||||
if (np) {
|
||||
/*
|
||||
@@ -370,7 +364,7 @@ static int aemif_probe(struct platform_device *pdev)
|
||||
ret = of_aemif_parse_abus_config(pdev, child_np);
|
||||
if (ret < 0) {
|
||||
of_node_put(child_np);
|
||||
goto error;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -380,7 +374,7 @@ static int aemif_probe(struct platform_device *pdev)
|
||||
if (ret < 0) {
|
||||
dev_err(dev, "Error configuring chip select %d\n",
|
||||
aemif->cs_data[i].cs);
|
||||
goto error;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -393,27 +387,16 @@ static int aemif_probe(struct platform_device *pdev)
|
||||
ret = of_platform_populate(child_np, NULL, NULL, dev);
|
||||
if (ret < 0) {
|
||||
of_node_put(child_np);
|
||||
goto error;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
error:
|
||||
clk_disable_unprepare(aemif->clk);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void aemif_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct aemif_device *aemif = platform_get_drvdata(pdev);
|
||||
|
||||
clk_disable_unprepare(aemif->clk);
|
||||
}
|
||||
|
||||
static struct platform_driver aemif_driver = {
|
||||
.probe = aemif_probe,
|
||||
.remove_new = aemif_remove,
|
||||
.driver = {
|
||||
.name = "ti-aemif",
|
||||
.of_match_table = of_match_ptr(aemif_of_match),
|
||||
|
||||
Reference in New Issue
Block a user