Skip to content

Commit 06c5a1d

Browse files
Andi Shytiwsakernel
authored andcommitted
i2c: stm32f4: 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 <[email protected]> Acked-by: Alain Volmat <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
1 parent a0536c6 commit 06c5a1d

File tree

1 file changed

+10
-22
lines changed

1 file changed

+10
-22
lines changed

drivers/i2c/busses/i2c-stm32f4.c

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -783,23 +783,17 @@ static int stm32f4_i2c_probe(struct platform_device *pdev)
783783
return -EINVAL;
784784
}
785785

786-
i2c_dev->clk = devm_clk_get(&pdev->dev, NULL);
786+
i2c_dev->clk = devm_clk_get_enabled(&pdev->dev, NULL);
787787
if (IS_ERR(i2c_dev->clk)) {
788-
dev_err(&pdev->dev, "Error: Missing controller clock\n");
788+
dev_err(&pdev->dev, "Failed to enable clock\n");
789789
return PTR_ERR(i2c_dev->clk);
790790
}
791-
ret = clk_prepare_enable(i2c_dev->clk);
792-
if (ret) {
793-
dev_err(i2c_dev->dev, "Failed to prepare_enable clock\n");
794-
return ret;
795-
}
796791

797792
rst = devm_reset_control_get_exclusive(&pdev->dev, NULL);
798-
if (IS_ERR(rst)) {
799-
ret = dev_err_probe(&pdev->dev, PTR_ERR(rst),
800-
"Error: Missing reset ctrl\n");
801-
goto clk_free;
802-
}
793+
if (IS_ERR(rst))
794+
return dev_err_probe(&pdev->dev, PTR_ERR(rst),
795+
"Error: Missing reset ctrl\n");
796+
803797
reset_control_assert(rst);
804798
udelay(2);
805799
reset_control_deassert(rst);
@@ -816,20 +810,20 @@ static int stm32f4_i2c_probe(struct platform_device *pdev)
816810
if (ret) {
817811
dev_err(&pdev->dev, "Failed to request irq event %i\n",
818812
irq_event);
819-
goto clk_free;
813+
return ret;
820814
}
821815

822816
ret = devm_request_irq(&pdev->dev, irq_error, stm32f4_i2c_isr_error, 0,
823817
pdev->name, i2c_dev);
824818
if (ret) {
825819
dev_err(&pdev->dev, "Failed to request irq error %i\n",
826820
irq_error);
827-
goto clk_free;
821+
return ret;
828822
}
829823

830824
ret = stm32f4_i2c_hw_config(i2c_dev);
831825
if (ret)
832-
goto clk_free;
826+
return ret;
833827

834828
adap = &i2c_dev->adap;
835829
i2c_set_adapdata(adap, i2c_dev);
@@ -845,7 +839,7 @@ static int stm32f4_i2c_probe(struct platform_device *pdev)
845839

846840
ret = i2c_add_adapter(adap);
847841
if (ret)
848-
goto clk_free;
842+
return ret;
849843

850844
platform_set_drvdata(pdev, i2c_dev);
851845

@@ -854,19 +848,13 @@ static int stm32f4_i2c_probe(struct platform_device *pdev)
854848
dev_info(i2c_dev->dev, "STM32F4 I2C driver registered\n");
855849

856850
return 0;
857-
858-
clk_free:
859-
clk_disable_unprepare(i2c_dev->clk);
860-
return ret;
861851
}
862852

863853
static void stm32f4_i2c_remove(struct platform_device *pdev)
864854
{
865855
struct stm32f4_i2c_dev *i2c_dev = platform_get_drvdata(pdev);
866856

867857
i2c_del_adapter(&i2c_dev->adap);
868-
869-
clk_unprepare(i2c_dev->clk);
870858
}
871859

872860
static const struct of_device_id stm32f4_i2c_match[] = {

0 commit comments

Comments
 (0)