On 6/11/20 4:27 am, AKASHI Takahiro wrote: > For UHS2, the signal voltage is supplied by vdd2 which is already 1.8v, > so no voltage switch required. > > Signed-off-by: Ben Chuang <ben.chuang@xxxxxxxxxxxxxxxxxxx> > Signed-off-by: AKASHI Takahiro <takahiro.akashi@xxxxxxxxxx> > --- > drivers/mmc/host/sdhci-uhs2.c | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > > diff --git a/drivers/mmc/host/sdhci-uhs2.c b/drivers/mmc/host/sdhci-uhs2.c > index 2bf78cc4e9ed..1eca89359351 100644 > --- a/drivers/mmc/host/sdhci-uhs2.c > +++ b/drivers/mmc/host/sdhci-uhs2.c > @@ -178,6 +178,29 @@ void sdhci_uhs2_set_power(struct sdhci_host *host, unsigned char mode, > } > EXPORT_SYMBOL_GPL(sdhci_uhs2_set_power); > > +/*****************************************************************************\ > + * * > + * MMC callbacks * > + * * > +\*****************************************************************************/ > + > +static int sdhci_uhs2_start_signal_voltage_switch(struct mmc_host *mmc, > + struct mmc_ios *ios) > +{ > + struct sdhci_host *host = mmc_priv(mmc); > + > + /* > + * For UHS2, the signal voltage is supplied by vdd2 which is > + * already 1.8v so no voltage switch required. > + */ > + if (IS_ENABLED(CONFIG_MMC_SDHCI_UHS2) && > + host->version >= SDHCI_SPEC_400 && > + host->mmc->flags & MMC_UHS2_SUPPORT) Could this be the same helper function suggested elsewhere i.e. if (!sdhci_uhs2_mode(host)) > + return 0; > + > + return sdhci_start_signal_voltage_switch(mmc, ios); > +} > + > /*****************************************************************************\ > * * > * Driver init/exit * > @@ -186,6 +209,9 @@ EXPORT_SYMBOL_GPL(sdhci_uhs2_set_power); > > static int sdhci_uhs2_host_ops_init(struct sdhci_host *host) > { > + host->mmc_host_ops.start_signal_voltage_switch = > + sdhci_uhs2_start_signal_voltage_switch; > + > return 0; > } > >