rk312x: the bug of ddr-resume. phy soft de-reset dll
author许盛飞 <xsf@rock-chips.com>
Fri, 16 Jan 2015 00:47:06 +0000 (08:47 +0800)
committer许盛飞 <xsf@rock-chips.com>
Fri, 16 Jan 2015 00:47:06 +0000 (08:47 +0800)
Signed-off-by: 许盛飞 <xsf@rock-chips.com>
arch/arm/mach-rockchip/rk312x_sleep.S

index 0b9a278c0b31cd8803b84e1f5b6a60cecea48498..01aa1ecfa5bf0f75a0ddfd7f2115eb9f20c7dcde 100755 (executable)
@@ -112,14 +112,33 @@ delay_loop:
 
        ldr r2,=0x2000a000
        ldr r3,[r2,#0]
-       orr r3, r3, #0xc;/*phy soft de-reset*/
+       orr r3, r3, #0x4;/*phy soft de-reset dll*/
+       str r3,[r2,#0]
+       mov r0,#5
+       mov r1,#5
+       mul r0, r0, r1
+delay5us_loop:
+       subs r0, r0, #1
+       bne delay5us_loop
+       orr r3, r3, #0x8;/*phy soft de-reset*/
        str r3,[r2,#0]
-       sub r2, r2, #0x2000; /*0x20008000*/
-       ldr r3,=0x40004
-       str r3,[r2,#0x148]
 
+       sub r2,r2,#0x2000;/*0x20008000*/
+       ldr r3,[r2,#0x300];/*get chip id*/
+       sub r3,r3,#0x3100
+       subs r3,r3,#0x12
+       bne rk3126b_buffer_en;/*RK3126B*/
+       ldr r3,=0x40004
+       str r3,[r2,#0x148];/*buffer en*/
+       b move_access
+rk3126b_buffer_en:
+       ldr r2,=0x2000a000
+       mov r3,#0x2
+       str r3,[r2,#0x264]
+
+move_access:
        /*move to access status*/
-       sub r2, r2, #0x4000;/*0x20004000*/
+       ldr r2,=0x20004000
        mov r3, #4
        str r3,[r2,#0x4];/*wake up */
        dsb sy