diff options
author | Jan Weitzel <J.Weitzel@phytec.de> | 2009-08-03 09:36:34 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2009-08-03 10:23:29 +0200 |
commit | d36dd1dcc405802bc000d2e0cdc18dbc54292350 (patch) | |
tree | 49a2745e1b27a1bdedc3e1bbf5106863c399bb89 | |
parent | 6192788170adf63701a710851d6664b189dcb889 (diff) | |
download | barebox-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.c | 6 |
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; } |