summaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorLi Jie <eltshanli@gmail.com>2009-12-31 15:50:02 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-01-05 20:52:45 +0000
commit58b2e0a2dd8e460d3b7d7f8ec5d3042253b9e08a (patch)
treeee452af3cc8bf27c129bf0bd605ddd85dccf5b38 /arch/arm
parent1368c51c501978e5c4148322b7c77d4f49549557 (diff)
ARM: 5864/1: Implement arch_reset() in NUC900
Implement arch_reset(), reboot from shell become possible. Signed-off-by: lijie <eltshanli@gmail.com> Acked-by: Wan ZongShun <mcuos.com@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-w90x900/include/mach/system.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/arch/arm/mach-w90x900/include/mach/system.h b/arch/arm/mach-w90x900/include/mach/system.h
index 94064006685..ce228bdc66d 100644
--- a/arch/arm/mach-w90x900/include/mach/system.h
+++ b/arch/arm/mach-w90x900/include/mach/system.h
@@ -15,7 +15,15 @@
*
*/
+#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);
+ }
}