RE: [PATCH] mmc: omap: remove clock rate hard coding

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

 



On Tue, Dec 20, 2011 at 15:12, S, Venkatraman wrote:
> From: Balaji TK <balajitk@xxxxxx>
> 
> MMC master clock rate can vary for each instance of the MMC controller
> on the device. Use clk_get_rate instead to get the value.
> 
>   Signed-off-by: Balaji TK  <balajitk@xxxxxx>
>   Reviewed-by: Venkatraman S <svenkatr@xxxxxx>
> ---
>  drivers/mmc/host/omap_hsmmc.c |    7 +++----
>  1 files changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
> index d5fe43d..5b35c7e 100644
> --- a/drivers/mmc/host/omap_hsmmc.c
> +++ b/drivers/mmc/host/omap_hsmmc.c
> @@ -120,7 +120,6 @@
>  
>  #define MMC_AUTOSUSPEND_DELAY	100
>  #define MMC_TIMEOUT_MS		20
> -#define OMAP_MMC_MASTER_CLOCK	96000000
>  #define OMAP_MMC_MIN_CLOCK	400000
>  #define OMAP_MMC_MAX_CLOCK	52000000
>  #define DRIVER_NAME		"omap_hsmmc"
> @@ -598,12 +597,12 @@ static void omap_hsmmc_disable_irq(struct omap_hsmmc_host *host)
>  }
>  
>  /* Calculate divisor for the given clock frequency */
> -static u16 calc_divisor(struct mmc_ios *ios)
> +static u16 calc_divisor(struct omap_hsmmc_host *host, struct mmc_ios *ios)
>  {
>  	u16 dsor = 0;
>  
>  	if (ios->clock) {
> -		dsor = DIV_ROUND_UP(OMAP_MMC_MASTER_CLOCK, ios->clock);
> +		dsor = DIV_ROUND_UP(clk_get_rate(host->fclk), ios->clock);
>  		if (dsor > 250)
>  			dsor = 250;
>  	}
> @@ -623,7 +622,7 @@ static void omap_hsmmc_set_clock(struct omap_hsmmc_host *host)
>  
>  	regval = OMAP_HSMMC_READ(host->base, SYSCTL);
>  	regval = regval & ~(CLKD_MASK | DTO_MASK);
> -	regval = regval | (calc_divisor(ios) << 6) | (DTO << 16);
> +	regval = regval | (calc_divisor(host, ios) << 6) | (DTO << 16);
>  	OMAP_HSMMC_WRITE(host->base, SYSCTL, regval);
>  	OMAP_HSMMC_WRITE(host->base, SYSCTL,
>  		OMAP_HSMMC_READ(host->base, SYSCTL) | ICE);
> -- 
> 1.7.1
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

Tested on AM335x platform.

Tested-by: Hebbar, Gururaja <gururaja.hebbar@xxxxxx>

Regards, 
Gururaja
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux