* [PATCH] OMAP3 clock: fix DPLL jitter correction and rate programming
@ 2008-06-24 7:11 Paul Walmsley
2008-06-26 13:50 ` Tony Lindgren
0 siblings, 1 reply; 2+ messages in thread
From: Paul Walmsley @ 2008-06-24 7:11 UTC (permalink / raw)
To: linux-omap
Fix DPLL jitter correction programming. Previously,
omap3_noncore_dpll_program() stored the FREQSEL jitter correction
parameter to the wrong register. This caused jitter correction to be set
incorrectly and also caused the DPLL divider to be programmed incorrectly.
Also, fix DPLL divider programming. An off-by-one error existed in
omap3_noncore_dpll_program(), causing DPLLs to be programmed with a higher
divider than intended.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
---
arch/arm/mach-omap2/clock34xx.c | 13 ++++++++-----
1 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-omap2/clock34xx.c
index 408b51a..8fdf8f3 100644
--- a/arch/arm/mach-omap2/clock34xx.c
+++ b/arch/arm/mach-omap2/clock34xx.c
@@ -346,14 +346,17 @@ static int omap3_noncore_dpll_program(struct clk *clk, u16 m, u8 n, u16 freqsel)
/* 3430 ES2 TRM: 4.7.6.9 DPLL Programming Sequence */
_omap3_noncore_dpll_bypass(clk);
+ /* Set jitter correction */
+ v = __raw_readl(dd->control_reg);
+ v &= ~dd->freqsel_mask;
+ v |= freqsel << __ffs(dd->freqsel_mask);
+ __raw_writel(v, dd->control_reg);
+
+ /* Set DPLL multiplier, divider */
v = __raw_readl(dd->mult_div1_reg);
v &= ~(dd->mult_mask | dd->div1_mask);
-
- /* Set mult (M), div1 (N), freqsel */
v |= m << __ffs(dd->mult_mask);
- v |= n << __ffs(dd->div1_mask);
- v |= freqsel << __ffs(dd->freqsel_mask);
-
+ v |= (n - 1) << __ffs(dd->div1_mask);
__raw_writel(v, dd->mult_div1_reg);
/* We let the clock framework set the other output dividers later */
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] OMAP3 clock: fix DPLL jitter correction and rate programming
2008-06-24 7:11 [PATCH] OMAP3 clock: fix DPLL jitter correction and rate programming Paul Walmsley
@ 2008-06-26 13:50 ` Tony Lindgren
0 siblings, 0 replies; 2+ messages in thread
From: Tony Lindgren @ 2008-06-26 13:50 UTC (permalink / raw)
To: Paul Walmsley; +Cc: linux-omap
* Paul Walmsley <paul@pwsan.com> [080624 10:11]:
>
> Fix DPLL jitter correction programming. Previously,
> omap3_noncore_dpll_program() stored the FREQSEL jitter correction
> parameter to the wrong register. This caused jitter correction to be set
> incorrectly and also caused the DPLL divider to be programmed incorrectly.
>
> Also, fix DPLL divider programming. An off-by-one error existed in
> omap3_noncore_dpll_program(), causing DPLLs to be programmed with a higher
> divider than intended.
Pushing today.
Tony
>
> Signed-off-by: Paul Walmsley <paul@pwsan.com>
> ---
>
> arch/arm/mach-omap2/clock34xx.c | 13 ++++++++-----
> 1 files changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-omap2/clock34xx.c
> index 408b51a..8fdf8f3 100644
> --- a/arch/arm/mach-omap2/clock34xx.c
> +++ b/arch/arm/mach-omap2/clock34xx.c
> @@ -346,14 +346,17 @@ static int omap3_noncore_dpll_program(struct clk *clk, u16 m, u8 n, u16 freqsel)
> /* 3430 ES2 TRM: 4.7.6.9 DPLL Programming Sequence */
> _omap3_noncore_dpll_bypass(clk);
>
> + /* Set jitter correction */
> + v = __raw_readl(dd->control_reg);
> + v &= ~dd->freqsel_mask;
> + v |= freqsel << __ffs(dd->freqsel_mask);
> + __raw_writel(v, dd->control_reg);
> +
> + /* Set DPLL multiplier, divider */
> v = __raw_readl(dd->mult_div1_reg);
> v &= ~(dd->mult_mask | dd->div1_mask);
> -
> - /* Set mult (M), div1 (N), freqsel */
> v |= m << __ffs(dd->mult_mask);
> - v |= n << __ffs(dd->div1_mask);
> - v |= freqsel << __ffs(dd->freqsel_mask);
> -
> + v |= (n - 1) << __ffs(dd->div1_mask);
> __raw_writel(v, dd->mult_div1_reg);
>
> /* We let the clock framework set the other output dividers later */
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2008-06-26 13:50 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-24 7:11 [PATCH] OMAP3 clock: fix DPLL jitter correction and rate programming Paul Walmsley
2008-06-26 13:50 ` Tony Lindgren
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox