mobile ddr change frequency
authorroot <root@dxj.(none)>
Fri, 16 Jul 2010 10:07:44 +0000 (18:07 +0800)
committerroot <root@dxj.(none)>
Fri, 16 Jul 2010 10:07:44 +0000 (18:07 +0800)
arch/arm/mach-rk2818/ddr.c

index ade6e835325c452c977b379750adce717d20a865..937591b23f844e464f9f712834e2981c620ecf0e 100644 (file)
@@ -1208,6 +1208,28 @@ static void __tcmfunc SDRAM_BeforeUpdateFreq(uint32 SDRAMnewKHz, uint32 DDRnewKH
             //WAIT_ME();
             while(!(pDDR_Reg->CTRL_REG_03 & 0x100));
             pDDR_Reg->CTRL_REG_10 &= ~(0x1);
+            if(memType == DDRII)
+            {
+                if(333000 < KHz)
+                {
+                    pDDR_Reg->CTRL_REG_82 = 0x00885555;
+                }
+                else
+                {
+                    pDDR_Reg->CTRL_REG_82 = 0x00685555;
+                }
+            }
+            else
+            {
+                if(133000 < KHz)
+                {
+                    pDDR_Reg->CTRL_REG_82 = 0x00840000; 
+                }
+                else
+                {
+                    pDDR_Reg->CTRL_REG_82 = 0x00640000; 
+                }
+            }
             if(110000 > KHz)
             {
                 DLLBypass(KHz);
@@ -1727,7 +1749,7 @@ static int __init update_frq(void)
 #endif
        return 0;       
 }
-//core_initcall_sync(update_frq);
+core_initcall_sync(update_frq);
 
 #endif //endi of #ifdef DRIVERS_SDRAM