summaryrefslogtreecommitdiff
path: root/arch/arm/mach-w90x900/cpu.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2011-11-05 18:50:25 +0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-01-05 16:57:21 +0400
commitfe76daea9ede24f9f53cb847563c2fa7a50cedf2 (patch)
treeb6dbe02cb5169b90aa6bf786a0179516e3a1c253 /arch/arm/mach-w90x900/cpu.c
parentf5733a1e80fa0b40bea815ddf605ece272c6dac1 (diff)
downloadlinux-fe76daea9ede24f9f53cb847563c2fa7a50cedf2.tar.xz
ARM: restart: w90x900: use new restart hook
Hook these platforms restart code into the new restart hook rather than using arch_reset(). Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-w90x900/cpu.c')
-rw-r--r--arch/arm/mach-w90x900/cpu.c16
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 @@
#include <mach/regs-serial.h>
#include <mach/regs-clock.h>
#include <mach/regs-ebi.h>
+#include <mach/regs-timer.h>
#include "cpu.h"
#include "clock.h"
+#include "nuc9xx.h"
/* Initial IO mappings */
@@ -222,3 +224,17 @@ void __init nuc900_init_clocks(void)
clkdev_add_table(nuc900_clkregs, ARRAY_SIZE(nuc900_clkregs));
}
+#define WTCR (TMR_BA + 0x1C)
+#define WTCLK (1 << 10)
+#define WTE (1 << 7)
+#define WTRE (1 << 1)
+
+void nuc9xx_restart(char mode, const char *cmd)
+{
+ if (mode == 's') {
+ /* Jump into ROM at address 0 */
+ soft_restart(0);
+ } else {
+ __raw_writel(WTE | WTRE | WTCLK, WTCR);
+ }
+}