|
@@ -1537,8 +1537,13 @@ void mmc_power_up(struct mmc_host *host, u32 ocr)
|
|
|
host->ios.timing = MMC_TIMING_LEGACY;
|
|
|
mmc_set_ios(host);
|
|
|
|
|
|
- /* Set signal voltage to 3.3V */
|
|
|
- __mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_330);
|
|
|
+ /* Try to set signal voltage to 3.3V but fall back to 1.8v or 1.2v */
|
|
|
+ if (__mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_330) == 0)
|
|
|
+ dev_dbg(mmc_dev(host), "Initial signal voltage of 3.3v\n");
|
|
|
+ else if (__mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_180) == 0)
|
|
|
+ dev_dbg(mmc_dev(host), "Initial signal voltage of 1.8v\n");
|
|
|
+ else if (__mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_120) == 0)
|
|
|
+ dev_dbg(mmc_dev(host), "Initial signal voltage of 1.2v\n");
|
|
|
|
|
|
/*
|
|
|
* This delay should be sufficient to allow the power supply
|