diff options
Diffstat (limited to 'arch/arm/mach-tegra/sleep.S')
-rw-r--r-- | arch/arm/mach-tegra/sleep.S | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/sleep.S b/arch/arm/mach-tegra/sleep.S index addae357da3f..364d84523fba 100644 --- a/arch/arm/mach-tegra/sleep.S +++ b/arch/arm/mach-tegra/sleep.S | |||
@@ -34,6 +34,9 @@ | |||
34 | #include "flowctrl.h" | 34 | #include "flowctrl.h" |
35 | #include "sleep.h" | 35 | #include "sleep.h" |
36 | 36 | ||
37 | #define CLK_RESET_CCLK_BURST 0x20 | ||
38 | #define CLK_RESET_CCLK_DIVIDER 0x24 | ||
39 | |||
37 | #if defined(CONFIG_HOTPLUG_CPU) || defined(CONFIG_PM_SLEEP) | 40 | #if defined(CONFIG_HOTPLUG_CPU) || defined(CONFIG_PM_SLEEP) |
38 | /* | 41 | /* |
39 | * tegra_disable_clean_inv_dcache | 42 | * tegra_disable_clean_inv_dcache |
@@ -110,4 +113,20 @@ ENTRY(tegra_shut_off_mmu) | |||
110 | mov pc, r0 | 113 | mov pc, r0 |
111 | ENDPROC(tegra_shut_off_mmu) | 114 | ENDPROC(tegra_shut_off_mmu) |
112 | .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) | ||
113 | #endif | 132 | #endif |