How to deal with VIO_SD of W8997 when using sdio SDR104 connect to imx8mp's sdhc2?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to deal with VIO_SD of W8997 when using sdio SDR104 connect to imx8mp's sdhc2?

767 Views
changbaoma
Contributor III

we know imx8mp's NVCC_SD2 of sdhc2 can auto switch voltage 1.8v and 3.3v accroding to Speed Mode(DS/HS or UHS).

changbaoma_1-1632661740278.png

changbaoma_0-1632661215501.png

1. we notice that VIO_SD pin of W8997 can supply 1.8V or 3.3V, but we don't know how to choose the voltage correctly?

2. Is it necessary to make VIO_SD voltage follow NVCC_SD2 voltage? eg. connect NVCC_SD2 to  VIO_SD directly.

3. How about this situation that if our hardwre already fixed 1.8V power supply to VIO_SD?  can SDR104 work?

0 Kudos
3 Replies

748 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

1、both work on 1.8V  or both work on 3.3V.

2、No

3、It will be ok, you need to add the "no-1-8-v; "

0 Kudos

581 Views
changbaoma
Contributor III

@Rita_Wang , any suggestion?

0 Kudos

744 Views
changbaoma
Contributor III

Thank you for your reply, @Rita_Wang 

 

1、both work on 1.8V  or both work on 3.3V.

->> Can sdio SDR104 work? when both work on 3.3V. 

2、No

->> Can you parse it?

3、It will be ok, you need to add the "no-1-8-v; "

->> As i know adding "no-1-8-v" to sdhc node in dts then the imx8 sdhc driver will disable all UHS mode include SDR104 . Can you check it for me?

linux-imx-5.4.24/drivers/mmc/host/sdhci-esdhc-imx.c:
static int
sdhci_esdhc_imx_probe_dt(struct platform_device *pdev,
struct sdhci_host *host,
struct pltfm_imx_data *imx_data)
{
...
if (of_find_property(np, "no-1-8-v", NULL))
      host->quirks2 |= SDHCI_QUIRK2_NO_1_8_V;
...
}
linux-imx-5.4.24/drivers/mmc/host/sdhci.c:
if (host->quirks2 & SDHCI_QUIRK2_NO_1_8_V) {
host->caps1 &= ~(SDHCI_SUPPORT_SDR104 | SDHCI_SUPPORT_SDR50 |
SDHCI_SUPPORT_DDR50);
/*
* The SDHCI controller in a SoC might support HS200/HS400
* (indicated using mmc-hs200-1_8v/mmc-hs400-1_8v dt property),
* but if the board is modeled such that the IO lines are not
* connected to 1.8v then HS200/HS400 cannot be supported.
* Disable HS200/HS400 if the board does not have 1.8v connected
* to the IO lines. (Applicable for other modes in 1.8v)
*/
mmc->caps2 &= ~(MMC_CAP2_HSX00_1_8V | MMC_CAP2_HS400_ES);
mmc->caps &= ~(MMC_CAP_1_8V_DDR | MMC_CAP_UHS);
}
0 Kudos