Hi! Igor,
I also discovered that we found there is no change of VSELECT signal even we inserted an High speed card to SD3 slot. I checked the code and found there is a section inside sdhci-esdhci-imx.c
======================
static void esdhc_writeb_le(struct sdhci_host *host, u8 val, int reg)
{
u32 new_val;
switch (reg) {
case SDHCI_POWER_CONTROL:
/*
* FSL put some DMA bits here
* If your board has a regulator, code should be here
*/
if (val == (SDHCI_POWER_ON | SDHCI_POWER_180)) {
u32 reg;
/* stop sd clock */
reg = readl(host->ioaddr + SDHCI_VENDOR_SPEC);
writel(reg & ~SDHCI_VENDOR_SPEC_FRC_SDCLK_ON, \
host->ioaddr + SDHCI_VENDOR_SPEC);
/* switch to 1.8V */
reg = readl(host->ioaddr + SDHCI_VENDOR_SPEC);
reg |= SDHCI_VENDOR_SPEC_VSELECT;
writel(reg, host->ioaddr + SDHCI_VENDOR_SPEC);
} else {
u32 reg;
reg = readl(host->ioaddr + SDHCI_VENDOR_SPEC);
reg &= ~SDHCI_VENDOR_SPEC_VSELECT;
writel(reg, host->ioaddr + SDHCI_VENDOR_SPEC);
}
return;
=========================
Should we modify the code inside the mmc driver to switch the voltage by ourself?
Vincent