diff options
author | keith.zhao <keith.zhao@starfivetech.com> | 2023-02-16 14:46:27 +0300 |
---|---|---|
committer | keith.zhao <keith.zhao@starfivetech.com> | 2023-02-17 06:59:52 +0300 |
commit | 83dd8745566468e28ff72893c76eb5e7d69a8bf4 (patch) | |
tree | 60749ebbdfb909bbeedcaa059eca31a90f73d98c /drivers/i2c/designware_i2c.c | |
parent | f042c1ea252e3dfc955db03b0e95e0b322a7afca (diff) | |
download | u-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.c | 14 |
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); |