]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
drivers: ufs: ufs-mediatek: implement clocking
authorJulien Stephan <jstephan@baylibre.com>
Wed, 18 Mar 2026 16:50:59 +0000 (17:50 +0100)
committerDavid Lechner <dlechner@baylibre.com>
Fri, 17 Apr 2026 22:05:54 +0000 (17:05 -0500)
Implement clocking.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Link: https://patch.msgid.link/20260318-mt8195-add-ufs-support-v2-7-f18eeeeb0e72@baylibre.com
Signed-off-by: David Lechner <dlechner@baylibre.com>
drivers/ufs/ufs-mediatek.c

index 5d882904c842d31a142fc5ae47f229fd9e934dbc..c65be5c2df1de9d290f269d8bfe653912548d175 100644 (file)
@@ -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)