diff options
author | Andi Shyti <andi.shyti@kernel.org> | 2023-06-12 01:57:02 +0300 |
---|---|---|
committer | Wolfram Sang <wsa@kernel.org> | 2023-06-23 13:22:41 +0300 |
commit | 8a86133e06e6a4f8797a8cc611a99785c05d8183 (patch) | |
tree | bae094cadefa019e50a559bce7e50df7ef47369e /drivers/i2c | |
parent | ff896ef401866c0eb0d07c0c279b5382e2d9e3cf (diff) | |
download | linux-8a86133e06e6a4f8797a8cc611a99785c05d8183.tar.xz |
i2c: uniphier: Use devm_clk_get_enabled()
Replace the pair of functions, devm_clk_get() and clk_prepare_enable(),
with a single function devm_clk_get_enabled().
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
Diffstat (limited to 'drivers/i2c')
-rw-r--r-- | drivers/i2c/busses/i2c-uniphier.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/drivers/i2c/busses/i2c-uniphier.c b/drivers/i2c/busses/i2c-uniphier.c index 96b1eb7489a3..854ac25b5862 100644 --- a/drivers/i2c/busses/i2c-uniphier.c +++ b/drivers/i2c/busses/i2c-uniphier.c @@ -335,21 +335,16 @@ static int uniphier_i2c_probe(struct platform_device *pdev) return -EINVAL; } - priv->clk = devm_clk_get(dev, NULL); + priv->clk = devm_clk_get_enabled(dev, NULL); if (IS_ERR(priv->clk)) { - dev_err(dev, "failed to get clock\n"); + dev_err(dev, "failed to enable clock\n"); return PTR_ERR(priv->clk); } - ret = clk_prepare_enable(priv->clk); - if (ret) - return ret; - clk_rate = clk_get_rate(priv->clk); if (!clk_rate) { dev_err(dev, "input clock rate should not be zero\n"); - ret = -EINVAL; - goto disable_clk; + return -EINVAL; } priv->clk_cycle = clk_rate / bus_speed; @@ -369,15 +364,10 @@ static int uniphier_i2c_probe(struct platform_device *pdev) priv); if (ret) { dev_err(dev, "failed to request irq %d\n", irq); - goto disable_clk; + return ret; } - ret = i2c_add_adapter(&priv->adap); -disable_clk: - if (ret) - clk_disable_unprepare(priv->clk); - - return ret; + return i2c_add_adapter(&priv->adap); } static void uniphier_i2c_remove(struct platform_device *pdev) @@ -385,7 +375,6 @@ static void uniphier_i2c_remove(struct platform_device *pdev) struct uniphier_i2c_priv *priv = platform_get_drvdata(pdev); i2c_del_adapter(&priv->adap); - clk_disable_unprepare(priv->clk); } static int __maybe_unused uniphier_i2c_suspend(struct device *dev) |