On 10/07/20 2:11 pm, Ben Chuang wrote:
> From: AKASHI Takahiro <[email protected]>
> 
> sdhci_start_signal_voltage_switch() should be called only in UHS-I mode,
> and not for UHS-II mode.
> 
> Signed-off-by: Ben Chuang <[email protected]>
> Signed-off-by: AKASHI Takahiro <[email protected]>
> ---
>  drivers/mmc/host/sdhci.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
> index 5511649946b9..7f2537648a08 100644
> --- a/drivers/mmc/host/sdhci.c
> +++ b/drivers/mmc/host/sdhci.c
> @@ -2623,8 +2623,13 @@ int sdhci_start_signal_voltage_switch(struct mmc_host 
> *mmc,
>       /*
>        * Signal Voltage Switching is only applicable for Host Controllers
>        * v3.00 and above.
> +      * But for UHS2, the signal voltage is supplied by vdd2 which is
> +      * already 1.8v so no voltage switch required.
>        */
> -     if (host->version < SDHCI_SPEC_300)
> +     if (host->version < SDHCI_SPEC_300 ||
> +         (IS_ENABLED(CONFIG_MMC_SDHCI_UHS2) &&
> +          host->version >= SDHCI_SPEC_400 &&
> +          host->mmc->flags & MMC_UHS2_SUPPORT))

Please look at hooking ->start_signal_voltage_switch() instead


>               return 0;
>  
>       ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2);
> 

Reply via email to