#define ESDHC_FLAG_PMQOS               BIT(13)
 /* The IP state got lost in low power mode */
 #define ESDHC_FLAG_STATE_LOST_IN_LPMODE                BIT(14)
+/* The IP lost clock rate in PM_RUNTIME */
+#define ESDHC_FLAG_CLK_RATE_LOST_IN_PM_RUNTIME BIT(15)
 
 struct esdhc_soc_data {
        u32 flags;
                        | ESDHC_FLAG_HAVE_CAP1 | ESDHC_FLAG_HS200
                        | ESDHC_FLAG_HS400 | ESDHC_FLAG_HS400_ES
                        | ESDHC_FLAG_CQHCI
-                       | ESDHC_FLAG_STATE_LOST_IN_LPMODE,
+                       | ESDHC_FLAG_STATE_LOST_IN_LPMODE
+                       | ESDHC_FLAG_CLK_RATE_LOST_IN_PM_RUNTIME,
 };
 
 struct pltfm_imx_data {
                pm_qos_add_request(&imx_data->pm_qos_req,
                        PM_QOS_CPU_DMA_LATENCY, 0);
 
+       if (imx_data->socdata->flags & ESDHC_FLAG_CLK_RATE_LOST_IN_PM_RUNTIME)
+               clk_set_rate(imx_data->clk_per, pltfm_host->clock);
+
        err = clk_prepare_enable(imx_data->clk_ahb);
        if (err)
                goto remove_pm_qos_request;