diff options
| author | Julien Stephan <[email protected]> | 2026-03-18 17:50:59 +0100 |
|---|---|---|
| committer | David Lechner <[email protected]> | 2026-04-17 17:05:54 -0500 |
| commit | a694f49c4940cf9faa93caa931a37cfaf63a7eaa (patch) | |
| tree | 67f7728566cb737c832a09564c8c2c1f5e7bb3cc | |
| parent | ac6e41ee6e6596c17e7a7ebbd15723f82c4fd20f (diff) | |
drivers: ufs: ufs-mediatek: implement clocking
Implement clocking.
Reviewed-by: Neil Armstrong <[email protected]>
Signed-off-by: Julien Stephan <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: David Lechner <[email protected]>
| -rw-r--r-- | drivers/ufs/ufs-mediatek.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/drivers/ufs/ufs-mediatek.c b/drivers/ufs/ufs-mediatek.c index 5d882904c84..c65be5c2df1 100644 --- a/drivers/ufs/ufs-mediatek.c +++ b/drivers/ufs/ufs-mediatek.c @@ -317,19 +317,35 @@ static int ufs_mtk_init(struct ufs_hba *hba) ufs_mtk_init_reset(hba); - // TODO: Clocking + err = clk_get_bulk(hba->dev, &priv->clks); + if (err) { + dev_err(hba->dev, "failed to initialize clocks, err:%d\n", err); + return err; + } + + err = clk_enable_bulk(&priv->clks); + if (err) { + dev_err(hba->dev, "failed to enable clocks, err:%d\n", err); + goto err_clk_enable; + } err = generic_phy_power_on(&priv->mphy); if (err) { dev_err(hba->dev, "%s: phy init failed, err = %d\n", __func__, err); - return err; + goto err_phy_power_on; } ufs_mtk_setup_ref_clk(hba, true); ufs_mtk_get_hw_ip_version(hba); return 0; + +err_phy_power_on: + clk_disable_bulk(&priv->clks); +err_clk_enable: + clk_release_bulk(&priv->clks); + return err; } static int ufs_mtk_device_reset(struct ufs_hba *hba) |
