[PATCH v2] omap2: fix DPLL_FREQSEL calculation

John Ogness john.ogness at linutronix.de
Thu Jan 20 09:29:50 EST 2011

On 2011-01-20, Felipe Balbi <balbi at ti.com> wrote:
> scripts/get_maintainer.pl would've helped you getting a better Cc
> list. I'm adding linux-omap and lakml


After investigating the issue further it seems that I had it
backwards. The value of "n" is the value to divide by, not the value
that goes in the register. This means that it is _dpll_test_fint()
that is doing it incorrectly. Here is a new version of the patch to
fix the right function.

This patch fixes the calculation of the internal frequency. The value
of "n" is the actual divider to use.

This patch is against linux-next-20110120.

Signed-off-by: John Ogness <john.ogness at linutronix.de>
 arch/arm/mach-omap2/clkt_dpll.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-omap2/clkt_dpll.c b/arch/arm/mach-omap2/clkt_dpll.c
index 337392c..acb7ae5 100644
--- a/arch/arm/mach-omap2/clkt_dpll.c
+++ b/arch/arm/mach-omap2/clkt_dpll.c
@@ -77,7 +77,7 @@ static int _dpll_test_fint(struct clk *clk, u8 n)
 	dd = clk->dpll_data;
 	/* DPLL divider must result in a valid jitter correction val */
-	fint = clk->parent->rate / (n + 1);
+	fint = clk->parent->rate / n;
 	if (fint < DPLL_FINT_BAND1_MIN) {
 		pr_debug("rejecting n=%d due to Fint failure, "

More information about the linux-arm-kernel mailing list