[PATCH v2 7/9] drivers: ufs: ufs-mediatek: implement clocking

Julien Stephan jstephan at baylibre.com
Wed Mar 18 17:50:59 CET 2026


Implement clocking.

Reviewed-by: Neil Armstrong <neil.armstrong at linaro.org>
Signed-off-by: Julien Stephan <jstephan at baylibre.com>
---
 drivers/ufs/ufs-mediatek.c | 20 ++++++++++++++++++--
 1 file 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)

-- 
2.52.0



More information about the U-Boot mailing list