ARM: 5864/1: Implement arch_reset() in NUC900
[linux-2.6.git] / arch / arm / mach-w90x900 / include / mach / system.h
index 9406400..ce228bd 100644 (file)
  *
  */
 
+#include <linux/io.h>
 #include <asm/proc-fns.h>
+#include <mach/map.h>
+#include <mach/regs-timer.h>
+
+#define        WTCR    (TMR_BA + 0x1C)
+#define        WTCLK   (1 << 10)
+#define        WTE     (1 << 7)
+#define        WTRE    (1 << 1)
 
 static void arch_idle(void)
 {
@@ -23,6 +31,11 @@ static void arch_idle(void)
 
 static void arch_reset(char mode, const char *cmd)
 {
-       cpu_reset(0);
+       if (mode == 's') {
+               /* Jump into ROM at address 0 */
+               cpu_reset(0);
+       } else {
+               __raw_writel(WTE | WTRE | WTCLK, WTCR);
+       }
 }