aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-pxa/palmld.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-04-08 15:24:09 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2009-04-08 15:24:09 -0700
commit139ef17a464a222aadf7b543d734a4001d06b720 (patch)
treef962bb78ce87de00fc8035e29efbb1f288cc3ab2 /arch/arm/mach-pxa/palmld.c
parentd2e2d7ca14f123cb1d03408c2bc6db8d402f416d (diff)
parent3d6fdf7563d0a67c6973cf421f7405524ed8bdaf (diff)
Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] 5446/1: ohci-at91: Limit vbus_pin assignment to the size of the array [ARM] 5445/1: AT91: Remove flexible array from USBH platform data [ARM] 5447/1: Add SZ_32K [ARM] omap: fix omap1 clock usecount decrement bug [ARM] pxa: register AC97 controller devices [ARM] pxa/csb701: do not register devices on non-csb726 boads [ARM] pxa/colibri: get rid of set_irq_type() [ARM] pxa/colibri: provide MAC address from ATAG_SERIAL [ARM] pxa/cm-x2xx: fix ucb1400 not being registered [ARM] pxa: Add support for suspend on PalmTX, T5 and LD [ARM] pxa: PalmTE2 support for battery, UDC, IrDA and backlight [ARM] pxa: Palm Tungsten E2 basic support [ARM] pxa/em-x270: add libertas device registration [ARM] pxa/magician: Enable bq24022 regulator for gpio_vbus and pda_power
Diffstat (limited to 'arch/arm/mach-pxa/palmld.c')
-rw-r--r--arch/arm/mach-pxa/palmld.c36
1 files changed, 32 insertions, 4 deletions
diff --git a/arch/arm/mach-pxa/palmld.c b/arch/arm/mach-pxa/palmld.c
index 8587477a9bb..ecf5910e39d 100644
--- a/arch/arm/mach-pxa/palmld.c
+++ b/arch/arm/mach-pxa/palmld.c
@@ -24,6 +24,7 @@
#include <linux/gpio.h>
#include <linux/wm97xx_batt.h>
#include <linux/power_supply.h>
+#include <linux/sysdev.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
@@ -68,10 +69,10 @@ static unsigned long palmld_pin_config[] __initdata = {
GPIO47_FICP_TXD,
/* MATRIX KEYPAD */
- GPIO100_KP_MKIN_0,
- GPIO101_KP_MKIN_1,
- GPIO102_KP_MKIN_2,
- GPIO97_KP_MKIN_3,
+ GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH,
+ GPIO101_KP_MKIN_1 | WAKEUP_ON_LEVEL_HIGH,
+ GPIO102_KP_MKIN_2 | WAKEUP_ON_LEVEL_HIGH,
+ GPIO97_KP_MKIN_3 | WAKEUP_ON_LEVEL_HIGH,
GPIO103_KP_MKOUT_0,
GPIO104_KP_MKOUT_1,
GPIO105_KP_MKOUT_2,
@@ -507,6 +508,33 @@ static struct pxafb_mach_info palmld_lcd_screen = {
};
/******************************************************************************
+ * Power management - standby
+ ******************************************************************************/
+#ifdef CONFIG_PM
+static u32 *addr __initdata;
+static u32 resume[3] __initdata = {
+ 0xe3a00101, /* mov r0, #0x40000000 */
+ 0xe380060f, /* orr r0, r0, #0x00f00000 */
+ 0xe590f008, /* ldr pc, [r0, #0x08] */
+};
+
+static int __init palmld_pm_init(void)
+{
+ int i;
+
+ /* this is where the bootloader jumps */
+ addr = phys_to_virt(PALMLD_STR_BASE);
+
+ for (i = 0; i < 3; i++)
+ addr[i] = resume[i];
+
+ return 0;
+}
+
+device_initcall(palmld_pm_init);
+#endif
+
+/******************************************************************************
* Machine init
******************************************************************************/
static struct platform_device *devices[] __initdata = {