Skip to content

Commit 1272903

Browse files
qianfengrongAndi Shyti
authored andcommitted
i2c: jz4780: Use devm_clk_get_enabled() helpers
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(). While at it, no more special handling needed here, remove the goto label "err:". Signed-off-by: Rong Qianfeng <[email protected]> Acked-by: Paul Cercueil <[email protected]> Signed-off-by: Andi Shyti <[email protected]>
1 parent f1f3dd1 commit 1272903

File tree

1 file changed

+7
-15
lines changed

1 file changed

+7
-15
lines changed

drivers/i2c/busses/i2c-jz4780.c

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -792,26 +792,22 @@ static int jz4780_i2c_probe(struct platform_device *pdev)
792792

793793
platform_set_drvdata(pdev, i2c);
794794

795-
i2c->clk = devm_clk_get(&pdev->dev, NULL);
795+
i2c->clk = devm_clk_get_enabled(&pdev->dev, NULL);
796796
if (IS_ERR(i2c->clk))
797797
return PTR_ERR(i2c->clk);
798798

799-
ret = clk_prepare_enable(i2c->clk);
800-
if (ret)
801-
return ret;
802-
803799
ret = of_property_read_u32(pdev->dev.of_node, "clock-frequency",
804800
&clk_freq);
805801
if (ret) {
806802
dev_err(&pdev->dev, "clock-frequency not specified in DT\n");
807-
goto err;
803+
return ret;
808804
}
809805

810806
i2c->speed = clk_freq / 1000;
811807
if (i2c->speed == 0) {
812808
ret = -EINVAL;
813809
dev_err(&pdev->dev, "clock-frequency minimum is 1000\n");
814-
goto err;
810+
return ret;
815811
}
816812
jz4780_i2c_set_speed(i2c);
817813

@@ -827,29 +823,25 @@ static int jz4780_i2c_probe(struct platform_device *pdev)
827823

828824
ret = platform_get_irq(pdev, 0);
829825
if (ret < 0)
830-
goto err;
826+
return ret;
831827
i2c->irq = ret;
828+
832829
ret = devm_request_irq(&pdev->dev, i2c->irq, jz4780_i2c_irq, 0,
833830
dev_name(&pdev->dev), i2c);
834831
if (ret)
835-
goto err;
832+
return ret;
836833

837834
ret = i2c_add_adapter(&i2c->adap);
838835
if (ret < 0)
839-
goto err;
836+
return ret;
840837

841838
return 0;
842-
843-
err:
844-
clk_disable_unprepare(i2c->clk);
845-
return ret;
846839
}
847840

848841
static void jz4780_i2c_remove(struct platform_device *pdev)
849842
{
850843
struct jz4780_i2c *i2c = platform_get_drvdata(pdev);
851844

852-
clk_disable_unprepare(i2c->clk);
853845
i2c_del_adapter(&i2c->adap);
854846
}
855847

0 commit comments

Comments
 (0)