> > > + > > > + 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 > > > > > Regards > > Aisheng > > > > > > > > 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