@@ -1529,8 +1529,15 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
ctrl_2 |= SDHCI_CTRL_UHS_SDR50;
else if (ios->timing == MMC_TIMING_UHS_SDR104)
ctrl_2 |= SDHCI_CTRL_UHS_SDR104;
- else if (ios->timing == MMC_TIMING_UHS_DDR50)
+ else if (ios->timing == MMC_TIMING_UHS_DDR50) {
+ struct mmc_card *card;
+
ctrl_2 |= SDHCI_CTRL_UHS_DDR50;
+ card = container_of(&(host->mmc),
+ struct mmc_card, host);
+ if (mmc_card_mmc(card))
+ ctrl_2 |= SDHCI_CTRL_VDD_180;
+ }
sdhci_writew(host, ctrl_2, SDHCI_HOST_CONTROL2);
}
if (!(host->quirks2 & SDHCI_QUIRK2_PRESET_VALUE_BROKEN) &&