diff options
Diffstat (limited to 'arch/arm/mach-tegra/sleep.S')
-rw-r--r-- | arch/arm/mach-tegra/sleep.S | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/sleep.S b/arch/arm/mach-tegra/sleep.S index 26afa7cbed11..364d84523fba 100644 --- a/arch/arm/mach-tegra/sleep.S +++ b/arch/arm/mach-tegra/sleep.S | |||
@@ -34,7 +34,10 @@ | |||
34 | #include "flowctrl.h" | 34 | #include "flowctrl.h" |
35 | #include "sleep.h" | 35 | #include "sleep.h" |
36 | 36 | ||
37 | #ifdef CONFIG_PM_SLEEP | 37 | #define CLK_RESET_CCLK_BURST 0x20 |
38 | #define CLK_RESET_CCLK_DIVIDER 0x24 | ||
39 | |||
40 | #if defined(CONFIG_HOTPLUG_CPU) || defined(CONFIG_PM_SLEEP) | ||
38 | /* | 41 | /* |
39 | * tegra_disable_clean_inv_dcache | 42 | * tegra_disable_clean_inv_dcache |
40 | * | 43 | * |
@@ -60,7 +63,9 @@ ENTRY(tegra_disable_clean_inv_dcache) | |||
60 | 63 | ||
61 | ldmfd sp!, {r0, r4-r5, r7, r9-r11, pc} | 64 | ldmfd sp!, {r0, r4-r5, r7, r9-r11, pc} |
62 | ENDPROC(tegra_disable_clean_inv_dcache) | 65 | ENDPROC(tegra_disable_clean_inv_dcache) |
66 | #endif | ||
63 | 67 | ||
68 | #ifdef CONFIG_PM_SLEEP | ||
64 | /* | 69 | /* |
65 | * tegra_sleep_cpu_finish(unsigned long v2p) | 70 | * tegra_sleep_cpu_finish(unsigned long v2p) |
66 | * | 71 | * |
@@ -108,4 +113,20 @@ ENTRY(tegra_shut_off_mmu) | |||
108 | mov pc, r0 | 113 | mov pc, r0 |
109 | ENDPROC(tegra_shut_off_mmu) | 114 | ENDPROC(tegra_shut_off_mmu) |
110 | .popsection | 115 | .popsection |
116 | |||
117 | /* | ||
118 | * tegra_switch_cpu_to_pllp | ||
119 | * | ||
120 | * In LP2 the normal cpu clock pllx will be turned off. Switch the CPU to pllp | ||
121 | */ | ||
122 | ENTRY(tegra_switch_cpu_to_pllp) | ||
123 | /* in LP2 idle (SDRAM active), set the CPU burst policy to PLLP */ | ||
124 | mov32 r5, TEGRA_CLK_RESET_BASE | ||
125 | mov r0, #(2 << 28) @ burst policy = run mode | ||
126 | orr r0, r0, #(4 << 4) @ use PLLP in run mode burst | ||
127 | str r0, [r5, #CLK_RESET_CCLK_BURST] | ||
128 | mov r0, #0 | ||
129 | str r0, [r5, #CLK_RESET_CCLK_DIVIDER] | ||
130 | mov pc, lr | ||
131 | ENDPROC(tegra_switch_cpu_to_pllp) | ||
111 | #endif | 132 | #endif |