summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Weitzel <J.Weitzel@phytec.de>2009-08-03 09:36:34 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2009-08-03 10:23:29 +0200
commitd36dd1dcc405802bc000d2e0cdc18dbc54292350 (patch)
tree49a2745e1b27a1bdedc3e1bbf5106863c399bb89
parent6192788170adf63701a710851d6664b189dcb889 (diff)
downloadbarebox-d36dd1dcc405802bc000d2e0cdc18dbc54292350.tar.gz
barebox-d36dd1dcc405802bc000d2e0cdc18dbc54292350.tar.xz
i.mx35 fix clock calc
u-boot-2.0.0-rc8 Correct arm and ahb clock calculation. Write CLKO divider to register Signed-off-by: Andreas Adam <A.Adam@phytec.de> Signed-off-by: Jan Weitzel <J.Weitzel@phytec.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--arch/arm/mach-imx/speed-imx35.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/arm/mach-imx/speed-imx35.c b/arch/arm/mach-imx/speed-imx35.c
index a16c0fa70d..61d10f6701 100644
--- a/arch/arm/mach-imx/speed-imx35.c
+++ b/arch/arm/mach-imx/speed-imx35.c
@@ -65,7 +65,7 @@ unsigned long imx_get_armclk(void)
/* consumer path is selected */
aad = &clk_consumer[(pdr0 >> 16) & 0xf];
if (aad->sel)
- fref = fref * 2 / 3;
+ fref = fref * 3 / 4;
return fref / aad->arm;
}
@@ -74,7 +74,7 @@ unsigned long imx_get_ahbclk(void)
{
unsigned long pdr0 = readl(IMX_CCM_BASE + CCM_PDR0);
struct arm_ahb_div *aad;
- unsigned long fref = imx_get_mpllclk();
+ unsigned long fref = imx_get_armclk();
aad = &clk_consumer[(pdr0 >> 16) & 0xf];
@@ -158,6 +158,8 @@ int imx_clko_set_div(int div)
cosr &= ~(0x3f << 10);
cosr |= div << 10;
+ writel(cosr, IMX_CCM_BASE + CCM_COSR);
+
return div + 1;
}