aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-pxa
diff options
context:
space:
mode:
authorVasily Khoruzhick <anarsoul@gmail.com>2011-03-15 16:11:17 -0400
committerEric Miao <eric.y.miao@gmail.com>2011-07-12 07:50:34 -0400
commit41646b24993590c49d21e6cc0f4378505e1f94a6 (patch)
tree9d3d205217dbb04c2f474ac7b7a39a961c6b1fb6 /arch/arm/mach-pxa
parent8a97ae2f554d762a4bc67b5d13b52ef39c8d6baa (diff)
ARM: pxa/z2: add poweroff function
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
Diffstat (limited to 'arch/arm/mach-pxa')
-rw-r--r--arch/arm/mach-pxa/z2.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/arm/mach-pxa/z2.c b/arch/arm/mach-pxa/z2.c
index e9b38cdc926..6c9275a20c9 100644
--- a/arch/arm/mach-pxa/z2.c
+++ b/arch/arm/mach-pxa/z2.c
@@ -40,6 +40,7 @@
40#include <mach/pxafb.h> 40#include <mach/pxafb.h>
41#include <mach/mmc.h> 41#include <mach/mmc.h>
42#include <plat/pxa27x_keypad.h> 42#include <plat/pxa27x_keypad.h>
43#include <mach/pm.h>
43 44
44#include "generic.h" 45#include "generic.h"
45#include "devices.h" 46#include "devices.h"
@@ -677,6 +678,20 @@ static void __init z2_pmic_init(void)
677static inline void z2_pmic_init(void) {} 678static inline void z2_pmic_init(void) {}
678#endif 679#endif
679 680
681#ifdef CONFIG_PM
682static void z2_power_off(void)
683{
684 /* We're using deep sleep as poweroff, so clear PSPR to ensure that
685 * bootloader will jump to its entry point in resume handler
686 */
687 PSPR = 0x0;
688 local_irq_disable();
689 pxa27x_cpu_suspend(PWRMODE_DEEPSLEEP, PLAT_PHYS_OFFSET - PAGE_OFFSET);
690}
691#else
692#define z2_power_off NULL
693#endif
694
680/****************************************************************************** 695/******************************************************************************
681 * Machine init 696 * Machine init
682 ******************************************************************************/ 697 ******************************************************************************/
@@ -698,6 +713,8 @@ static void __init z2_init(void)
698 z2_leds_init(); 713 z2_leds_init();
699 z2_keys_init(); 714 z2_keys_init();
700 z2_pmic_init(); 715 z2_pmic_init();
716
717 pm_power_off = z2_power_off;
701} 718}
702 719
703MACHINE_START(ZIPIT2, "Zipit Z2") 720MACHINE_START(ZIPIT2, "Zipit Z2")