fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / arm / mach-pxa / pxa25x.c
index 4115091..c1f2173 100644 (file)
@@ -22,6 +22,7 @@
 #include <linux/pm.h>
 
 #include <asm/hardware.h>
+#include <asm/arch/pxa-regs.h>
 
 #include "generic.h"
 
@@ -101,3 +102,35 @@ unsigned int get_lcdclk_frequency_10khz(void)
 }
 
 EXPORT_SYMBOL(get_lcdclk_frequency_10khz);
+
+#ifdef CONFIG_PM
+
+int pxa_cpu_pm_prepare(suspend_state_t state)
+{
+       switch (state) {
+       case PM_SUSPEND_MEM:
+               break;
+       default:
+               return -EINVAL;
+       }
+
+       return 0;
+}
+
+void pxa_cpu_pm_enter(suspend_state_t state)
+{
+       extern void pxa_cpu_suspend(unsigned int);
+       extern void pxa_cpu_resume(void);
+
+       CKEN = 0;
+
+       switch (state) {
+       case PM_SUSPEND_MEM:
+               /* set resume return address */
+               PSPR = virt_to_phys(pxa_cpu_resume);
+               pxa_cpu_suspend(PWRMODE_SLEEP);
+               break;
+       }
+}
+
+#endif