summaryrefslogtreecommitdiff
path: root/drivers/i2c/designware_i2c.c
diff options
context:
space:
mode:
authorkeith.zhao <keith.zhao@starfivetech.com>2023-02-16 14:46:27 +0300
committerkeith.zhao <keith.zhao@starfivetech.com>2023-02-17 06:59:52 +0300
commit83dd8745566468e28ff72893c76eb5e7d69a8bf4 (patch)
tree60749ebbdfb909bbeedcaa059eca31a90f73d98c /drivers/i2c/designware_i2c.c
parentf042c1ea252e3dfc955db03b0e95e0b322a7afca (diff)
downloadu-boot-83dd8745566468e28ff72893c76eb5e7d69a8bf4.tar.xz
i2c:desigware-snps: add i2c clock config
add clock config for i2c2 and i2c5 update the i2c driver clock config Signed-off-by:keith.zhao<keith.zhao@statfivetech.com>
Diffstat (limited to 'drivers/i2c/designware_i2c.c')
-rw-r--r--drivers/i2c/designware_i2c.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/i2c/designware_i2c.c b/drivers/i2c/designware_i2c.c
index e57eed0f6c..c1b3df9600 100644
--- a/drivers/i2c/designware_i2c.c
+++ b/drivers/i2c/designware_i2c.c
@@ -775,10 +775,14 @@ int designware_i2c_of_to_plat(struct udevice *bus)
if (ret)
return ret;
- ret = clk_enable(&priv->clk);
+ ret = clk_get_bulk(bus, &priv->clks);
+ if (ret)
+ return ret;
+
+ ret = clk_enable_bulk(&priv->clks);
if (ret && ret != -ENOSYS && ret != -ENOTSUPP) {
- clk_free(&priv->clk);
- dev_err(bus, "failed to enable clock\n");
+ clk_release_bulk(&priv->clks);
+ dev_err(bus, "failed to enable bulk clock\n");
return ret;
}
#endif
@@ -809,8 +813,8 @@ int designware_i2c_remove(struct udevice *dev)
struct dw_i2c *priv = dev_get_priv(dev);
#if CONFIG_IS_ENABLED(CLK)
- clk_disable(&priv->clk);
- clk_free(&priv->clk);
+ clk_disable_bulk(&priv->clks);
+ clk_release_bulk(&priv->clks);
#endif
return reset_release_bulk(&priv->resets);