[PATCH 21/38] mmc: sdhci: hack up driver to make it more compliant with UHS-1
Ulf Hansson
ulf.hansson at linaro.org
Mon Apr 28 03:50:54 PDT 2014
On 25 April 2014 14:38, Markus Pargmann <mpa at pengutronix.de> wrote:
> Hi,
>
> On Wed, Apr 23, 2014 at 08:07:57PM +0100, Russell King wrote:
>> Patch suggested by Dong Aisheng <dongas86 at gmail.com>, this avoids
>> additional clock start/stop cycles during the transition to 1.8V
>> signalling mode.
>>
>> Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
>
> I tested the series on imx6s with a RIoT board. With this patch applied
> the RIoT board emmc does not work. Here is the output of the board:
Hi Markus,
Thanks for helping out testing!
Does that mean patch 1->20 works fine for you? May I add your tested-by tag?
Kind regards
Ulf Hansson
>
> # dmesg | grep mmc2
> mmc2: no vqmmc regulator found
> mmc2: no vmmc regulator found
> mmc2: SDHCI controller on 219c000.usdhc [219c000.usdhc] using ADMA
> mmc2: BKOPS_EN bit is not set
> mmc2: Timeout waiting for hardware interrupt.
> mmc2: Timeout waiting for hardware interrupt.
> mmc2: Timeout waiting for hardware interrupt.
> mmc2: Timeout waiting for hardware interrupt.
> mmc2: error -110 whilst initialising MMC card
> mmc2: BKOPS_EN bit is not set
> mmc2: Timeout waiting for hardware interrupt.
> mmc2: Timeout waiting for hardware interrupt.
> mmc2: Timeout waiting for hardware interrupt.
> mmc2: Timeout waiting for hardware interrupt.
> mmc2: error -110 whilst initialising MMC card
> mmc2: BKOPS_EN bit is not set
>
> Any ideas?
>
> Regards,
>
> Markus
>
>> ---
>> drivers/mmc/host/sdhci.c | 12 ------------
>> 1 file changed, 12 deletions(-)
>>
>> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
>> index 748333ba6e96..0bcef2d42da4 100644
>> --- a/drivers/mmc/host/sdhci.c
>> +++ b/drivers/mmc/host/sdhci.c
>> @@ -1507,12 +1507,6 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
>> host->ops->set_clock(host, host->clock);
>> }
>>
>> -
>> - /* Reset SD Clock Enable */
>> - clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL);
>> - clk &= ~SDHCI_CLOCK_CARD_EN;
>> - sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL);
>> -
>> if (host->ops->set_uhs_signaling)
>> host->ops->set_uhs_signaling(host, ios->timing);
>> else {
>> @@ -1546,9 +1540,6 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
>> ios->drv_type = (preset & SDHCI_PRESET_DRV_MASK)
>> >> SDHCI_PRESET_DRV_SHIFT;
>> }
>> -
>> - /* Re-enable SD Clock */
>> - host->ops->set_clock(host, host->clock);
>> } else
>> sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
>>
>> @@ -1757,9 +1748,6 @@ static int sdhci_do_start_signal_voltage_switch(struct sdhci_host *host,
>> ctrl |= SDHCI_CTRL_VDD_180;
>> sdhci_writew(host, ctrl, SDHCI_HOST_CONTROL2);
>>
>> - /* Wait for 5ms */
>> - usleep_range(5000, 5500);
>> -
>> /* 1.8V regulator output should be stable within 5 ms */
>> ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2);
>> if (ctrl & SDHCI_CTRL_VDD_180)
>> --
>> 1.8.3.1
>>
>>
>> _______________________________________________
>> linux-arm-kernel mailing list
>> linux-arm-kernel at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>>
>
> --
> Pengutronix e.K. | |
> Industrial Linux Solutions | http://www.pengutronix.de/ |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
> Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the linux-arm-kernel
mailing list