|
|
@@ -1484,6 +1484,17 @@ int mmc_set_signal_voltage(struct mmc_host *host, int signal_voltage)
|
|
|
|
|
|
}
|
|
|
|
|
|
+void mmc_set_initial_signal_voltage(struct mmc_host *host)
|
|
|
+{
|
|
|
+ /* 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))
|
|
|
+ dev_dbg(mmc_dev(host), "Initial signal voltage of 3.3v\n");
|
|
|
+ else if (!mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_180))
|
|
|
+ dev_dbg(mmc_dev(host), "Initial signal voltage of 1.8v\n");
|
|
|
+ else if (!mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_120))
|
|
|
+ dev_dbg(mmc_dev(host), "Initial signal voltage of 1.2v\n");
|
|
|
+}
|
|
|
+
|
|
|
int mmc_host_set_uhs_voltage(struct mmc_host *host)
|
|
|
{
|
|
|
u32 clock;
|
|
|
@@ -1646,13 +1657,7 @@ void mmc_power_up(struct mmc_host *host, u32 ocr)
|
|
|
/* Set initial state and call mmc_set_ios */
|
|
|
mmc_set_initial_state(host);
|
|
|
|
|
|
- /* 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))
|
|
|
- dev_dbg(mmc_dev(host), "Initial signal voltage of 3.3v\n");
|
|
|
- else if (!mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_180))
|
|
|
- dev_dbg(mmc_dev(host), "Initial signal voltage of 1.8v\n");
|
|
|
- else if (!mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_120))
|
|
|
- dev_dbg(mmc_dev(host), "Initial signal voltage of 1.2v\n");
|
|
|
+ mmc_set_initial_signal_voltage(host);
|
|
|
|
|
|
/*
|
|
|
* This delay should be sufficient to allow the power supply
|