diff options
-rw-r--r-- | arch/arm/mach-s5pc100/common.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-s5pc100/common.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-s5pc100/mach-smdkc100.c | 1 |
3 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/mach-s5pc100/common.c b/arch/arm/mach-s5pc100/common.c index e6eadacc108..73594a2fcf2 100644 --- a/arch/arm/mach-s5pc100/common.c +++ b/arch/arm/mach-s5pc100/common.c @@ -45,6 +45,7 @@ #include <plat/iic-core.h> #include <plat/onenand-core.h> #include <plat/regs-serial.h> +#include <plat/watchdog-reset.h> #include "common.h" @@ -221,3 +222,11 @@ void __init s5pc100_init_uarts(struct s3c2410_uartcfg *cfg, int no) { s3c24xx_init_uartdevs("s3c6400-uart", s5p_uart_resources, cfg, no); } + +void s5pc100_restart(char mode, const char *cmd) +{ + if (mode != 's') + arch_wdt_reset(); + + soft_restart(0); +} diff --git a/arch/arm/mach-s5pc100/common.h b/arch/arm/mach-s5pc100/common.h index 4822b872a46..9fbd3ae2b40 100644 --- a/arch/arm/mach-s5pc100/common.h +++ b/arch/arm/mach-s5pc100/common.h @@ -18,6 +18,8 @@ void s5pc100_init_irq(void); void s5pc100_register_clocks(void); void s5pc100_setup_clocks(void); +void s5pc100_restart(char mode, const char *cmd); + #ifdef CONFIG_CPU_S5PC100 extern int s5pc100_init(void); diff --git a/arch/arm/mach-s5pc100/mach-smdkc100.c b/arch/arm/mach-s5pc100/mach-smdkc100.c index e1c41772c7b..ead292ce1e0 100644 --- a/arch/arm/mach-s5pc100/mach-smdkc100.c +++ b/arch/arm/mach-s5pc100/mach-smdkc100.c @@ -254,4 +254,5 @@ MACHINE_START(SMDKC100, "SMDKC100") .map_io = smdkc100_map_io, .init_machine = smdkc100_machine_init, .timer = &s3c24xx_timer, + .restart = s5pc100_restart, MACHINE_END |