eMMC: enable cmd strobe mode. [1/1]

PD#SWPL-142343

Problem:
not support cmd strobe mode.

Solution:
enable emmc cmd strobe mode.

Verify:
txhd2

Change-Id: Ifcf2aba8808875f0499fab7df58830b9efa0922f
Signed-off-by: Long <long.yu@amlogic.com>
This commit is contained in:
Long
2023-10-12 15:19:01 +08:00
committed by gerrit autosubmit
parent b852e8c024
commit 3d2a42eea7
+20
View File
@@ -1381,6 +1381,10 @@ static void meson_mmc_check_resampling(struct meson_host *host,
writel(val, host->regs + SD_EMMC_IRQ_EN);
val = readl(host->regs + SD_EMMC_INTF3);
val |= SD_INTF3;
if (host->mmc->caps2 & MMC_CAP2_HS400_ES) {
ios->clock = host->mmc->f_max;
val |= RESP_DS;
}
writel(val, host->regs + SD_EMMC_INTF3);
mmc_phase_set = &host->sd_mmc.hs4;
break;
@@ -2679,6 +2683,21 @@ static void aml_post_hs400_timming(struct mmc_host *mmc)
aml_save_tuning_para(mmc);
}
/* disable enhanced_strobe mode when initialization
* enable enhanced_strobe mode and tuning intf3 when mmc_select_hs400es
*/
static void meson_mmc_enhance_strobe(struct mmc_host *mmc, struct mmc_ios *ios)
{
struct meson_host *host = mmc_priv(mmc);
if (!host->mmc->ios.enhanced_strobe)
return;
mmc->retune_crc_disable = true;
aml_sd_emmc_clktest(mmc);
emmc_ds_manual_sht(mmc);
dev_notice(host->dev, "[%s] done.\n", __func__);
}
static void aml_sd_emmc_enable_sdio_irq(struct mmc_host *mmc, int enable)
{
struct meson_host *host = mmc_priv(mmc);
@@ -3596,6 +3615,7 @@ static const struct mmc_host_ops meson_mmc_ops = {
.hs400_complete = aml_post_hs400_timming,
.card_busy = meson_mmc_card_busy,
.start_signal_voltage_switch = meson_mmc_voltage_switch,
.hs400_enhanced_strobe = meson_mmc_enhance_strobe,
// .init_card = sdio_get_card,
};