80a18573ce
Patch from Todd Poynor Add symbols for PXA2xx PWRMODE register M field that selects low-power mode, replace unadorned constants. Honor power mode parameter of pxa_cpu_suspend(mode), no longer force to 3 (sleep). Full Deep Sleep low-power mode support for PXA27x is pending generic PM interfaces to select more than 2 suspend-to-RAM-style power modes, but this is expected soon. This can be hardcoded in the meantime by replacing the pxa_cpu_suspend() parameter value. From David Burrage and Todd Poynor. Try #2 removes one of the register copies and moves the code to save the pxa_cpu_suspend parameter to immediately surround the call that requires the parameter value be preserved. Signed-off-by: Todd Poynor <tpoynor@mvista.com> Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
32 lines
730 B
ArmAsm
32 lines
730 B
ArmAsm
/*
|
|
* PXA27x standby mode
|
|
*
|
|
* Author: David Burrage
|
|
*
|
|
* 2005 (c) MontaVista Software, Inc. This file is licensed under
|
|
* the terms of the GNU General Public License version 2. This program
|
|
* is licensed "as is" without any warranty of any kind, whether express
|
|
* or implied.
|
|
*/
|
|
|
|
#include <linux/config.h>
|
|
#include <linux/linkage.h>
|
|
#include <asm/assembler.h>
|
|
#include <asm/hardware.h>
|
|
|
|
#include <asm/arch/pxa-regs.h>
|
|
|
|
.text
|
|
|
|
ENTRY(pxa_cpu_standby)
|
|
ldr r0, =PSSR
|
|
mov r1, #(PSSR_PH | PSSR_STS)
|
|
mov r2, #PWRMODE_STANDBY
|
|
mov r3, #UNCACHED_PHYS_0 @ Read mem context in.
|
|
ldr ip, [r3]
|
|
b 1f
|
|
|
|
.align 5
|
|
1: mcr p14, 0, r2, c7, c0, 0 @ put the system into Standby
|
|
str r1, [r0] @ make sure PSSR_PH/STS are clear
|
|
mov pc, lr
|