aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/clock34xx.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap2/clock34xx.c')
-rw-r--r--arch/arm/mach-omap2/clock34xx.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-omap2/clock34xx.c
index cb5e068feb56..fdfc7d582913 100644
--- a/arch/arm/mach-omap2/clock34xx.c
+++ b/arch/arm/mach-omap2/clock34xx.c
@@ -563,14 +563,17 @@ static int omap3_noncore_dpll_program(struct clk *clk, u16 m, u8 n, u16 freqsel)
563 /* 3430 ES2 TRM: 4.7.6.9 DPLL Programming Sequence */ 563 /* 3430 ES2 TRM: 4.7.6.9 DPLL Programming Sequence */
564 _omap3_noncore_dpll_bypass(clk); 564 _omap3_noncore_dpll_bypass(clk);
565 565
566 /* Set jitter correction */
567 v = __raw_readl(dd->control_reg);
568 v &= ~dd->freqsel_mask;
569 v |= freqsel << __ffs(dd->freqsel_mask);
570 __raw_writel(v, dd->control_reg);
571
572 /* Set DPLL multiplier, divider */
566 v = __raw_readl(dd->mult_div1_reg); 573 v = __raw_readl(dd->mult_div1_reg);
567 v &= ~(dd->mult_mask | dd->div1_mask); 574 v &= ~(dd->mult_mask | dd->div1_mask);
568
569 /* Set mult (M), div1 (N), freqsel */
570 v |= m << __ffs(dd->mult_mask); 575 v |= m << __ffs(dd->mult_mask);
571 v |= n << __ffs(dd->div1_mask); 576 v |= (n - 1) << __ffs(dd->div1_mask);
572 v |= freqsel << __ffs(dd->freqsel_mask);
573
574 __raw_writel(v, dd->mult_div1_reg); 577 __raw_writel(v, dd->mult_div1_reg);
575 578
576 /* We let the clock framework set the other output dividers later */ 579 /* We let the clock framework set the other output dividers later */