|
@@ -1207,6 +1207,7 @@ static int omap_hsmmc_set_ios(struct udevice *dev)
|
|
struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
|
|
struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
|
|
struct mmc *mmc = upriv->mmc;
|
|
struct mmc *mmc = upriv->mmc;
|
|
#endif
|
|
#endif
|
|
|
|
+ struct hsmmc *mmc_base = priv->base_addr;
|
|
|
|
|
|
if (priv->bus_width != mmc->bus_width)
|
|
if (priv->bus_width != mmc->bus_width)
|
|
omap_hsmmc_set_bus_width(mmc);
|
|
omap_hsmmc_set_bus_width(mmc);
|
|
@@ -1214,6 +1215,11 @@ static int omap_hsmmc_set_ios(struct udevice *dev)
|
|
if (priv->clock != mmc->clock)
|
|
if (priv->clock != mmc->clock)
|
|
omap_hsmmc_set_clock(mmc);
|
|
omap_hsmmc_set_clock(mmc);
|
|
|
|
|
|
|
|
+ if (mmc->clk_disable)
|
|
|
|
+ omap_hsmmc_stop_clock(mmc_base);
|
|
|
|
+ else
|
|
|
|
+ omap_hsmmc_start_clock(mmc_base);
|
|
|
|
+
|
|
#if CONFIG_IS_ENABLED(DM_MMC)
|
|
#if CONFIG_IS_ENABLED(DM_MMC)
|
|
if (priv->mode != mmc->selected_mode)
|
|
if (priv->mode != mmc->selected_mode)
|
|
omap_hsmmc_set_timing(mmc);
|
|
omap_hsmmc_set_timing(mmc);
|