s5pc110: goto INFORM0 if it's waking up from deep idle (C110 only)
authorMyungJoo Ham <MyungJoo.Ham@samsung.com>
Thu, 25 Mar 2010 03:27:58 +0000 (12:27 +0900)
committerMyungJoo Ham <MyungJoo.Ham@samsung.com>
Thu, 25 Mar 2010 03:27:58 +0000 (12:27 +0900)
board/samsung/universal/lowlevel_init.S

index 86769c9..75f963b 100644 (file)
@@ -64,6 +64,16 @@ lowlevel_init:
 100:
        /* Turn on KEY_LED_ON [GPJ4(1)] XMSMWEN */
        cmp     r7, r8
+       beq     skip_check_didle                        @Support C110 only
+
+       ldr     r0, =S5PC110_RST_STAT
+       ldr     r1, [r0]
+       bic     r1, r1, #0xfff6ffff
+       cmp     r1, #0x80000
+       beq     didle_wakeup
+       cmp     r7, r8
+skip_check_didle:
+
 #ifndef DEBUG_PM_C110
        addeq   r0, r8, #0x280                          @S5PC100_GPIO_J4_OFFSET
        addne   r0, r8, #0x2C0                          @S5PC110_GPIO_J4_OFFSET
@@ -390,6 +400,27 @@ wakeup:
        str     r1, [r0]
 
 #endif
+       b       1f
+
+didle_wakeup:
+       /* Wait when APLL is locked */
+       ldr     r0, =S5PC110_APLL_CON
+lockloop:
+       ldr     r1, [r0]
+       and     r1, r1, #(1<<29)
+       cmp     r1, #(1<<29)
+       bne     lockloop
+
+       ldr     r0, =S5PC110_INFORM0
+       ldr     r1, [r0]
+       mov     pc, r1
+       nop
+       nop
+       nop
+       nop
+       nop
+
+
 1:
        mov     lr, r11
        mov     pc, lr