[PATCH] mmc: at91: fix bus speed

ludovic.desroches ludovic.desroches at atmel.com
Wed Jun 20 04:49:08 EDT 2012


Hello Jiri,

Thanks for your patch but at91-mci is now deprecated and should be 
removed in 3.7.
On one hand I don't know if we have to continue to take patches for this 
driver, on the other hand it's a fix for some SD cards.

Le 06/20/2012 10:15 AM, Prchal Jiří a écrit :
> This patch change minimum and maximum clock speed because some noname
> cards doesn't work during init even at 375kHz and new cards (SD v. 3.0)
> can run at 50 or 100 MHz.
> Also aded clkdiv register overrun fix when setting low speeds.
>
> Signed-off-by: Jiri Prchal <jiri.prchal at aksignal.cz>
> ---
>
> --- linux/linux-3.5-rc3/drivers/mmc/host/at91_mci.c.orig    2012-06-17
> 02:25:17.000000000 +0200
> +++ linux/linux-3.5-rc3/drivers/mmc/host/at91_mci.c    2012-06-18
> 11:01:49.751415984 +0200
> @@ -724,6 +724,10 @@ static void at91_mci_set_ios(struct mmc_
>           else
>               clkdiv = (at91_master_clock / ios->clock) / 2;
>
> +        /* set maximum divider */
> +        if (clkdiv > 255)
> +            clkdiv = 255;
> +
>           pr_debug("clkdiv = %d. mcck = %ld\n", clkdiv,
>               at91_master_clock / (2 * (clkdiv + 1)));
>       }
> @@ -948,8 +952,8 @@ static int __init at91_mci_probe(struct
>       }
>
>       mmc->ops = &at91_mci_ops;
> -    mmc->f_min = 375000;
> -    mmc->f_max = 25000000;
> +    mmc->f_min = 200000; /* not all cards can run at 375kHz */

I will check on atmel-mci if we have to decrease f_min.

> +    mmc->f_max = 100000000; /* new cards can run at 100MHz */

MCI operates at a rate of up to master clock divided by two so you can't 
reach 100MHz as max frequency since it means that our master clock is at 
200MHz that is not the case. I would say 50MHz is the maximum frequency 
for product compatible with at91-mci.

>       mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34;
>       mmc->caps = 0;
>
>
>

Regards

Ludovic



More information about the linux-arm-kernel mailing list