mmc: am654_sdhci: Clear UHS_MODE_SELECT when <= MMC_HS_52
This clears UHS_MODE_SELECT for timing modes <= MMC_HS_52.
When initializing to HS400 mode, the host controller downgrades to non-uhs
modes so clear UHS_MODE_SELECT at modes <= MMC_HS_52.
This fixes eMMC writes on j7200 EVM.
Fixes: 6067aa66b3
("mmc: am654_sdhci: Add am654_sdhci_set_control_reg")
Signed-off-by: Judith Mendez <jm@ti.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
@@ -527,11 +527,16 @@ static int am654_sdhci_execute_tuning(struct mmc *mmc, u8 opcode)
|
|||||||
void am654_sdhci_set_control_reg(struct sdhci_host *host)
|
void am654_sdhci_set_control_reg(struct sdhci_host *host)
|
||||||
{
|
{
|
||||||
struct mmc *mmc = host->mmc;
|
struct mmc *mmc = host->mmc;
|
||||||
|
u32 reg;
|
||||||
|
|
||||||
|
reg = sdhci_readw(host, SDHCI_HOST_CONTROL2);
|
||||||
|
reg &= ~SDHCI_CTRL_UHS_MASK;
|
||||||
sdhci_set_voltage(host);
|
sdhci_set_voltage(host);
|
||||||
|
|
||||||
if (mmc->selected_mode > MMC_HS_52)
|
if (mmc->selected_mode > MMC_HS_52)
|
||||||
sdhci_set_uhs_timing(host);
|
sdhci_set_uhs_timing(host);
|
||||||
|
else
|
||||||
|
sdhci_writew(host, reg, SDHCI_HOST_CONTROL2);
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct sdhci_ops am654_sdhci_ops = {
|
const struct sdhci_ops am654_sdhci_ops = {
|
||||||
|
Reference in New Issue
Block a user