Re: [PATCH v4] mmc: sdhci-xenon: wait 5ms after set 1.8V signal enable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 18 December 2017 at 23:38, Zhoujie Wu <zjwu@xxxxxxxxxxx> wrote:
> According to SD spec 3.00 3.6.1 signal voltage switch
> procedure step 6~8,
> (6) Set 1.8V Signal Enable in the Host Control 2 register.
> (7) Wait 5ms. 1.8V voltage regulator shall be stable within this period.
> (8) If 1.8V Signal Enable is cleared by Host Controller, go to step (12).
> Host should wait 5ms after set 1.8V signal enable bit in
> Host Control 2 register and check if 1.8V is stable or not.
>
> But current code checks this bit right after set it.
> On some platforms with xenon controller found the bit is
> cleared right away and host reports "1.8V regulator output
> did not became stable" and 5ms delay can help.
>
> Implement voltage_switch callback for xenon controller to add 5ms
> delay to make sure the 1.8V signal enable bit is set by controller.
>
> Signed-off-by: Zhoujie Wu <zjwu@xxxxxxxxxxx>

Thanks, applied for next!

Kind regards
Uffe

> ---
> v4: move the 5ms delay from sdhci.c to xenon driver.
> v3: give more details in comments.
> v2: remove undeliverable cc list email.
>
>  drivers/mmc/host/sdhci-xenon.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/drivers/mmc/host/sdhci-xenon.c b/drivers/mmc/host/sdhci-xenon.c
> index 0842bbc..4d0791f 100644
> --- a/drivers/mmc/host/sdhci-xenon.c
> +++ b/drivers/mmc/host/sdhci-xenon.c
> @@ -230,7 +230,14 @@ static void xenon_set_power(struct sdhci_host *host, unsigned char mode,
>                 mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, vdd);
>  }
>
> +static void xenon_voltage_switch(struct sdhci_host *host)
> +{
> +       /* Wait for 5ms after set 1.8V signal enable bit */
> +       usleep_range(5000, 5500);
> +}
> +
>  static const struct sdhci_ops sdhci_xenon_ops = {
> +       .voltage_switch         = xenon_voltage_switch,
>         .set_clock              = sdhci_set_clock,
>         .set_power              = xenon_set_power,
>         .set_bus_width          = sdhci_set_bus_width,
> --
> 1.9.1
>
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux