diff options
Diffstat (limited to 'arch/arm/mach-pxa/tosa.c')
-rw-r--r-- | arch/arm/mach-pxa/tosa.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/arm/mach-pxa/tosa.c b/arch/arm/mach-pxa/tosa.c index c2cbd66db814..9ae2271f93c4 100644 --- a/arch/arm/mach-pxa/tosa.c +++ b/arch/arm/mach-pxa/tosa.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <linux/gpio_keys.h> | 24 | #include <linux/gpio_keys.h> |
25 | #include <linux/input.h> | 25 | #include <linux/input.h> |
26 | #include <linux/gpio.h> | 26 | #include <linux/gpio.h> |
27 | #include <linux/reboot.h> | ||
27 | 28 | ||
28 | #include <asm/setup.h> | 29 | #include <asm/setup.h> |
29 | #include <asm/memory.h> | 30 | #include <asm/memory.h> |
@@ -467,11 +468,7 @@ static struct platform_device *devices[] __initdata = { | |||
467 | 468 | ||
468 | static void tosa_poweroff(void) | 469 | static void tosa_poweroff(void) |
469 | { | 470 | { |
470 | pxa_gpio_mode(TOSA_GPIO_ON_RESET | GPIO_OUT); | 471 | arm_machine_restart('g'); |
471 | GPSR(TOSA_GPIO_ON_RESET) = GPIO_bit(TOSA_GPIO_ON_RESET); | ||
472 | |||
473 | mdelay(1000); | ||
474 | arm_machine_restart('h'); | ||
475 | } | 472 | } |
476 | 473 | ||
477 | static void tosa_restart(char mode) | 474 | static void tosa_restart(char mode) |
@@ -489,6 +486,8 @@ static void __init tosa_init(void) | |||
489 | gpio_set_wake(MFP_PIN_GPIO1, 1); | 486 | gpio_set_wake(MFP_PIN_GPIO1, 1); |
490 | /* We can't pass to gpio-keys since it will drop the Reset altfunc */ | 487 | /* We can't pass to gpio-keys since it will drop the Reset altfunc */ |
491 | 488 | ||
489 | init_gpio_reset(TOSA_GPIO_ON_RESET); | ||
490 | |||
492 | pm_power_off = tosa_poweroff; | 491 | pm_power_off = tosa_poweroff; |
493 | arm_pm_restart = tosa_restart; | 492 | arm_pm_restart = tosa_restart; |
494 | 493 | ||