Thread (35 messages) 35 messages, 3 authors, 2021-03-19

RE: [PATCH 03/11] i2c: imx-lpi2c: add ipg clk for lpi2c driver

From: Aisheng Dong <aisheng.dong@nxp.com>
Date: 2021-03-19 09:19:03
Also in: linux-i2c, lkml

quoted
quoted
+
+	lpi2c_imx->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
+	if (IS_ERR(lpi2c_imx->clk_ipg)) {
+		dev_err(&pdev->dev, "can't get I2C ipg clock\n");
+		return PTR_ERR(lpi2c_imx->clk_ipg);
 	}
Will this break exist dts?
It will not break the build. But will break the lpi2c probe for imx7ulp and
imx8qxp/qm.
I will send two patches to update dts in V2.
Please don't break exist platforms.

Regards
Aisheng
Best Regards,
Clark Wang
quoted
Regards
Aisheng
quoted
 	ret = of_property_read_u32(pdev->dev.of_node,
@@ -633,7 +640,8 @@ static int __maybe_unused
lpi2c_runtime_suspend(struct device *dev)  {
 	struct lpi2c_imx_struct *lpi2c_imx = dev_get_drvdata(dev);

-	clk_disable_unprepare(lpi2c_imx->clk);
+	clk_disable_unprepare(lpi2c_imx->clk_ipg);
+	clk_disable_unprepare(lpi2c_imx->clk_per);
 	pinctrl_pm_select_idle_state(dev);

 	return 0;
@@ -645,12 +653,18 @@ static int __maybe_unused
lpi2c_runtime_resume(struct device *dev)
 	int ret;

 	pinctrl_pm_select_default_state(dev);
-	ret = clk_prepare_enable(lpi2c_imx->clk);
+	ret = clk_prepare_enable(lpi2c_imx->clk_per);
 	if (ret) {
-		dev_err(dev, "can't enable I2C clock, ret=%d\n", ret);
+		dev_err(dev, "can't enable I2C per clock, ret=%d\n", ret);
 		return ret;
 	}

+	ret = clk_prepare_enable(lpi2c_imx->clk_ipg);
+	if (ret) {
+		clk_disable_unprepare(lpi2c_imx->clk_per);
+		dev_err(dev, "can't enable I2C ipg clock, ret=%d\n", ret);
+	}
+
 	return ret;
 }

--
2.25.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help