diff options
Diffstat (limited to 'arch/arm/mach-w90x900/cpu.c')
-rw-r--r-- | arch/arm/mach-w90x900/cpu.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/mach-w90x900/cpu.c b/arch/arm/mach-w90x900/cpu.c index 0a235e502330..604e1db266e8 100644 --- a/arch/arm/mach-w90x900/cpu.c +++ b/arch/arm/mach-w90x900/cpu.c | |||
@@ -33,9 +33,11 @@ | |||
33 | #include <mach/regs-serial.h> | 33 | #include <mach/regs-serial.h> |
34 | #include <mach/regs-clock.h> | 34 | #include <mach/regs-clock.h> |
35 | #include <mach/regs-ebi.h> | 35 | #include <mach/regs-ebi.h> |
36 | #include <mach/regs-timer.h> | ||
36 | 37 | ||
37 | #include "cpu.h" | 38 | #include "cpu.h" |
38 | #include "clock.h" | 39 | #include "clock.h" |
40 | #include "nuc9xx.h" | ||
39 | 41 | ||
40 | /* Initial IO mappings */ | 42 | /* Initial IO mappings */ |
41 | 43 | ||
@@ -222,3 +224,17 @@ void __init nuc900_init_clocks(void) | |||
222 | clkdev_add_table(nuc900_clkregs, ARRAY_SIZE(nuc900_clkregs)); | 224 | clkdev_add_table(nuc900_clkregs, ARRAY_SIZE(nuc900_clkregs)); |
223 | } | 225 | } |
224 | 226 | ||
227 | #define WTCR (TMR_BA + 0x1C) | ||
228 | #define WTCLK (1 << 10) | ||
229 | #define WTE (1 << 7) | ||
230 | #define WTRE (1 << 1) | ||
231 | |||
232 | void nuc9xx_restart(char mode, const char *cmd) | ||
233 | { | ||
234 | if (mode == 's') { | ||
235 | /* Jump into ROM at address 0 */ | ||
236 | soft_restart(0); | ||
237 | } else { | ||
238 | __raw_writel(WTE | WTRE | WTCLK, WTCR); | ||
239 | } | ||
240 | } | ||