]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mmc: dw_mmc-hi3798mv200: Using phase map from dw_mmc core
authorShawn Lin <shawn.lin@rock-chips.com>
Mon, 9 Mar 2026 03:29:02 +0000 (11:29 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 16 Mar 2026 14:43:42 +0000 (15:43 +0100)
dw_mmc core helps parse phase map now, so reuse it.

No functional changes intended.

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/dw_mmc-hi3798mv200.c

index a64907e2e84c501c72c0140030d6e3c1de12ceb7..fda417888be975d0e5f993d460c90054178b0e11 100644 (file)
@@ -30,13 +30,12 @@ struct dw_mci_hi3798mv200_priv {
        struct clk *drive_clk;
        struct regmap *crg_reg;
        u32 sap_dll_offset;
-       struct mmc_clk_phase_map phase_map;
 };
 
 static void dw_mci_hi3798mv200_set_ios(struct dw_mci *host, struct mmc_ios *ios)
 {
        struct dw_mci_hi3798mv200_priv *priv = host->priv;
-       struct mmc_clk_phase phase = priv->phase_map.phase[ios->timing];
+       struct mmc_clk_phase phase = host->phase_map.phase[ios->timing];
        u32 val;
 
        val = mci_readl(host, ENABLE_SHIFT);
@@ -158,9 +157,9 @@ tuning_out:
                 * We don't care what timing we are tuning for,
                 * simply use the same phase for all timing needs tuning.
                 */
-               priv->phase_map.phase[MMC_TIMING_MMC_HS200].in_deg = degrees[mid];
-               priv->phase_map.phase[MMC_TIMING_MMC_HS400].in_deg = degrees[mid];
-               priv->phase_map.phase[MMC_TIMING_UHS_SDR104].in_deg = degrees[mid];
+               host->phase_map.phase[MMC_TIMING_MMC_HS200].in_deg = degrees[mid];
+               host->phase_map.phase[MMC_TIMING_MMC_HS400].in_deg = degrees[mid];
+               host->phase_map.phase[MMC_TIMING_UHS_SDR104].in_deg = degrees[mid];
 
                clk_set_phase(priv->sample_clk, degrees[mid]);
                dev_dbg(host->dev, "Tuning clk_sample[%d, %d], set[%d]\n",
@@ -185,8 +184,6 @@ static int dw_mci_hi3798mv200_init(struct dw_mci *host)
        if (!priv)
                return -ENOMEM;
 
-       mmc_of_parse_clk_phase(host->dev, &priv->phase_map);
-
        priv->sample_clk = devm_clk_get_enabled(host->dev, "ciu-sample");
        if (IS_ERR(priv->sample_clk))
                return dev_err_probe(host->dev, PTR_ERR(priv->sample_clk),