diff options
Diffstat (limited to 'arch/arm/mach-pxa/palmld.c')
-rw-r--r-- | arch/arm/mach-pxa/palmld.c | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/arch/arm/mach-pxa/palmld.c b/arch/arm/mach-pxa/palmld.c index 8587477a9bb7..ecf5910e39d7 100644 --- a/arch/arm/mach-pxa/palmld.c +++ b/arch/arm/mach-pxa/palmld.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <linux/gpio.h> | 24 | #include <linux/gpio.h> |
25 | #include <linux/wm97xx_batt.h> | 25 | #include <linux/wm97xx_batt.h> |
26 | #include <linux/power_supply.h> | 26 | #include <linux/power_supply.h> |
27 | #include <linux/sysdev.h> | ||
27 | 28 | ||
28 | #include <asm/mach-types.h> | 29 | #include <asm/mach-types.h> |
29 | #include <asm/mach/arch.h> | 30 | #include <asm/mach/arch.h> |
@@ -68,10 +69,10 @@ static unsigned long palmld_pin_config[] __initdata = { | |||
68 | GPIO47_FICP_TXD, | 69 | GPIO47_FICP_TXD, |
69 | 70 | ||
70 | /* MATRIX KEYPAD */ | 71 | /* MATRIX KEYPAD */ |
71 | GPIO100_KP_MKIN_0, | 72 | GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH, |
72 | GPIO101_KP_MKIN_1, | 73 | GPIO101_KP_MKIN_1 | WAKEUP_ON_LEVEL_HIGH, |
73 | GPIO102_KP_MKIN_2, | 74 | GPIO102_KP_MKIN_2 | WAKEUP_ON_LEVEL_HIGH, |
74 | GPIO97_KP_MKIN_3, | 75 | GPIO97_KP_MKIN_3 | WAKEUP_ON_LEVEL_HIGH, |
75 | GPIO103_KP_MKOUT_0, | 76 | GPIO103_KP_MKOUT_0, |
76 | GPIO104_KP_MKOUT_1, | 77 | GPIO104_KP_MKOUT_1, |
77 | GPIO105_KP_MKOUT_2, | 78 | GPIO105_KP_MKOUT_2, |
@@ -507,6 +508,33 @@ static struct pxafb_mach_info palmld_lcd_screen = { | |||
507 | }; | 508 | }; |
508 | 509 | ||
509 | /****************************************************************************** | 510 | /****************************************************************************** |
511 | * Power management - standby | ||
512 | ******************************************************************************/ | ||
513 | #ifdef CONFIG_PM | ||
514 | static u32 *addr __initdata; | ||
515 | static u32 resume[3] __initdata = { | ||
516 | 0xe3a00101, /* mov r0, #0x40000000 */ | ||
517 | 0xe380060f, /* orr r0, r0, #0x00f00000 */ | ||
518 | 0xe590f008, /* ldr pc, [r0, #0x08] */ | ||
519 | }; | ||
520 | |||
521 | static int __init palmld_pm_init(void) | ||
522 | { | ||
523 | int i; | ||
524 | |||
525 | /* this is where the bootloader jumps */ | ||
526 | addr = phys_to_virt(PALMLD_STR_BASE); | ||
527 | |||
528 | for (i = 0; i < 3; i++) | ||
529 | addr[i] = resume[i]; | ||
530 | |||
531 | return 0; | ||
532 | } | ||
533 | |||
534 | device_initcall(palmld_pm_init); | ||
535 | #endif | ||
536 | |||
537 | /****************************************************************************** | ||
510 | * Machine init | 538 | * Machine init |
511 | ******************************************************************************/ | 539 | ******************************************************************************/ |
512 | static struct platform_device *devices[] __initdata = { | 540 | static struct platform_device *devices[] __initdata = { |