[PATCH 2/2] i.MX35: remove get_3_3_div helper function

Sergei Shtylyov sshtylyov at mvista.com
Fri Apr 23 06:12:51 EDT 2010


Hello.

Sascha Hauer wrote:
> In the v2 reference manual there are no dividers combined of two
> dividers. Instead, all dividers are simple 6bit dividers. I assume
> the combined dividers only exist in preliminary hardware.
>
> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> ---
>  arch/arm/mach-mx3/clock-imx35.c |   13 ++++---------
>  1 files changed, 4 insertions(+), 9 deletions(-)
>
> diff --git a/arch/arm/mach-mx3/clock-imx35.c b/arch/arm/mach-mx3/clock-imx35.c
> index 5c87338..c6ef64e 100644
> --- a/arch/arm/mach-mx3/clock-imx35.c
> +++ b/arch/arm/mach-mx3/clock-imx35.c
> @@ -178,16 +178,11 @@ static unsigned long get_rate_ipg(struct clk *clk)
>  	return get_rate_ahb(NULL) >> 1;
>  }
>  
> -static unsigned long get_3_3_div(unsigned long in)
> -{
> -	return (((in >> 3) & 0x7) + 1) * ((in & 0x7) + 1);
> -}
> -
>  static unsigned long get_rate_uart(struct clk *clk)
>  {
>  	unsigned long pdr3 = __raw_readl(CCM_BASE + CCM_PDR3);
>  	unsigned long pdr4 = __raw_readl(CCM_BASE + CCM_PDR4);
> -	unsigned long div = get_3_3_div(pdr4 >> 10);
> +	unsigned long div = ((pdr4 >> 10) & 0x3f) + 1;
>  
>  	if (pdr3 & (1 << 14))
>  		return get_rate_arm() / div;
> @@ -218,7 +213,7 @@ static unsigned long get_rate_sdhc(struct clk *clk)
>  		break;
>  	}
>  
> -	return rate / get_3_3_div(div);
> +	return rate / (div + 1);
>   

   You're adding 1 to divisor twice here...

>  }
>  
>  static unsigned long get_rate_mshc(struct clk *clk)
> @@ -272,7 +267,7 @@ static unsigned long get_rate_csi(struct clk *clk)
>  	else
>  		rate = get_rate_ppll();
>  
> -	return rate / get_3_3_div((pdr2 >> 16) & 0x3f);
> +	return rate / (((pdr2 >> 16) & 0x3f) + 1);
>  }
>  
>  static unsigned long get_rate_otg(struct clk *clk)
> @@ -285,7 +280,7 @@ static unsigned long get_rate_otg(struct clk *clk)
>  	else
>  		rate = get_rate_ppll();
>  
> -	return rate / get_3_3_div((pdr4 >> 22) & 0x3f);
> +	return rate / (((pdr4 >> 22) & 0x3f) + 1);
>   

   ... but not here. Is that right?

WBR, Sergei




More information about the linux-arm-kernel mailing list