diff --git a/arch/arm/mach-imx/speed-imx35.c b/arch/arm/mach-imx/speed-imx35.c index a16c0fa..61d10f6 100644 --- a/arch/arm/mach-imx/speed-imx35.c +++ b/arch/arm/mach-imx/speed-imx35.c @@ -65,7 +65,7 @@ /* 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 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 @@ cosr &= ~(0x3f << 10); cosr |= div << 10; + writel(cosr, IMX_CCM_BASE + CCM_COSR); + return div + 1; }