diff options
| -rw-r--r-- | arch/sh/boards/mach-ecovec24/sdram.S | 59 | ||||
| -rw-r--r-- | arch/sh/boards/mach-ecovec24/setup.c | 3 |
2 files changed, 61 insertions, 1 deletions
diff --git a/arch/sh/boards/mach-ecovec24/sdram.S b/arch/sh/boards/mach-ecovec24/sdram.S index 833440044407..3963c6f23d52 100644 --- a/arch/sh/boards/mach-ecovec24/sdram.S +++ b/arch/sh/boards/mach-ecovec24/sdram.S | |||
| @@ -37,6 +37,10 @@ ENTRY(ecovec24_sdram_enter_end) | |||
| 37 | .balign 4 | 37 | .balign 4 |
| 38 | ENTRY(ecovec24_sdram_leave_start) | 38 | ENTRY(ecovec24_sdram_leave_start) |
| 39 | 39 | ||
| 40 | mov.l @(SH_SLEEP_MODE, r5), r0 | ||
| 41 | tst #SUSP_SH_RSTANDBY, r0 | ||
| 42 | bf resume_rstandby | ||
| 43 | |||
| 40 | /* DBSC: put memory in auto-refresh mode */ | 44 | /* DBSC: put memory in auto-refresh mode */ |
| 41 | 45 | ||
| 42 | ED 0xFD000040, 0x00000000 /* DBRFPDN0 */ | 46 | ED 0xFD000040, 0x00000000 /* DBRFPDN0 */ |
| @@ -49,4 +53,59 @@ ENTRY(ecovec24_sdram_leave_start) | |||
| 49 | rts | 53 | rts |
| 50 | nop | 54 | nop |
| 51 | 55 | ||
| 56 | resume_rstandby: | ||
| 57 | |||
| 58 | /* DBSC: re-initialize and put in auto-refresh */ | ||
| 59 | |||
| 60 | ED 0xFD000108, 0x00000181 /* DBPDCNT0 */ | ||
| 61 | ED 0xFD000020, 0x015B0002 /* DBCONF */ | ||
| 62 | ED 0xFD000030, 0x03071502 /* DBTR0 */ | ||
| 63 | ED 0xFD000034, 0x02020102 /* DBTR1 */ | ||
| 64 | ED 0xFD000038, 0x01090405 /* DBTR2 */ | ||
| 65 | ED 0xFD00003C, 0x00000002 /* DBTR3 */ | ||
| 66 | ED 0xFD000008, 0x00000005 /* DBKIND */ | ||
| 67 | ED 0xFD000040, 0x00000001 /* DBRFPDN0 */ | ||
| 68 | ED 0xFD000040, 0x00000000 /* DBRFPDN0 */ | ||
| 69 | ED 0xFD000018, 0x00000001 /* DBCKECNT */ | ||
| 70 | |||
| 71 | mov #100,r0 | ||
| 72 | WAIT_400NS: | ||
| 73 | dt r0 | ||
| 74 | bf WAIT_400NS | ||
| 75 | |||
| 76 | ED 0xFD000014, 0x00000002 /* DBCMDCNT (PALL) */ | ||
| 77 | ED 0xFD000060, 0x00020000 /* DBMRCNT (EMR2) */ | ||
| 78 | ED 0xFD000060, 0x00030000 /* DBMRCNT (EMR3) */ | ||
| 79 | ED 0xFD000060, 0x00010004 /* DBMRCNT (EMR) */ | ||
| 80 | ED 0xFD000060, 0x00000532 /* DBMRCNT (MRS) */ | ||
| 81 | ED 0xFD000014, 0x00000002 /* DBCMDCNT (PALL) */ | ||
| 82 | ED 0xFD000014, 0x00000004 /* DBCMDCNT (REF) */ | ||
| 83 | ED 0xFD000014, 0x00000004 /* DBCMDCNT (REF) */ | ||
| 84 | ED 0xFD000060, 0x00000432 /* DBMRCNT (MRS) */ | ||
| 85 | ED 0xFD000060, 0x000103c0 /* DBMRCNT (EMR) */ | ||
| 86 | ED 0xFD000060, 0x00010040 /* DBMRCNT (EMR) */ | ||
| 87 | |||
| 88 | mov #100,r0 | ||
| 89 | WAIT_400NS_2: | ||
| 90 | dt r0 | ||
| 91 | bf WAIT_400NS_2 | ||
| 92 | |||
| 93 | ED 0xFD000010, 0x00000001 /* DBEN */ | ||
| 94 | ED 0xFD000044, 0x0000050f /* DBRFPDN1 */ | ||
| 95 | ED 0xFD000048, 0x236800e6 /* DBRFPDN2 */ | ||
| 96 | |||
| 97 | mov.l DUMMY,r0 | ||
| 98 | mov.l @r0, r1 /* force single dummy read */ | ||
| 99 | |||
| 100 | ED 0xFD000014, 0x00000002 /* DBCMDCNT (PALL) */ | ||
| 101 | ED 0xFD000014, 0x00000004 /* DBCMDCNT (REF) */ | ||
| 102 | ED 0xFD000108, 0x00000080 /* DBPDCNT0 */ | ||
| 103 | ED 0xFD000040, 0x00010000 /* DBRFPDN0 */ | ||
| 104 | |||
| 105 | rts | ||
| 106 | nop | ||
| 107 | |||
| 108 | .balign 4 | ||
| 109 | DUMMY: .long 0xac400000 | ||
| 110 | |||
| 52 | ENTRY(ecovec24_sdram_leave_end) | 111 | ENTRY(ecovec24_sdram_leave_end) |
diff --git a/arch/sh/boards/mach-ecovec24/setup.c b/arch/sh/boards/mach-ecovec24/setup.c index 8cdf11e00ee6..3248406ea7ff 100644 --- a/arch/sh/boards/mach-ecovec24/setup.c +++ b/arch/sh/boards/mach-ecovec24/setup.c | |||
| @@ -850,7 +850,8 @@ static int __init arch_setup(void) | |||
| 850 | struct clk *clk; | 850 | struct clk *clk; |
| 851 | 851 | ||
| 852 | /* register board specific self-refresh code */ | 852 | /* register board specific self-refresh code */ |
| 853 | sh_mobile_register_self_refresh(SUSP_SH_STANDBY | SUSP_SH_SF, | 853 | sh_mobile_register_self_refresh(SUSP_SH_STANDBY | SUSP_SH_SF | |
| 854 | SUSP_SH_RSTANDBY, | ||
| 854 | &ecovec24_sdram_enter_start, | 855 | &ecovec24_sdram_enter_start, |
| 855 | &ecovec24_sdram_enter_end, | 856 | &ecovec24_sdram_enter_end, |
| 856 | &ecovec24_sdram_leave_start, | 857 | &ecovec24_sdram_leave_start, |
