[ARM] S3C64XX: Use common watchdog reset for system reset.
authorBen Dooks <ben-linux@fluff.org>
Sun, 17 May 2009 22:40:30 +0000 (23:40 +0100)
committerBen Dooks <ben-linux@fluff.org>
Sun, 17 May 2009 22:40:30 +0000 (23:40 +0100)
Use the newly moved <plat/watchdog-reset.h> to perform the
arch_reset() call which has been unimplemented for a while.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
arch/arm/mach-s3c6400/include/mach/map.h
arch/arm/mach-s3c6400/include/mach/system.h
arch/arm/plat-s3c/include/plat/watchdog-reset.h
arch/arm/plat-s3c64xx/cpu.c

index 99d5e3b420ad53ea8006eeaba2de87e979175d6f..7a1e5a2455b31bfa1f9a0acee10b35398daad7a2 100644 (file)
@@ -40,6 +40,7 @@
 
 #define S3C64XX_PA_FB          (0x77100000)
 #define S3C64XX_PA_USB_HSOTG   (0x7C000000)
+#define S3C64XX_PA_WATCHDOG    (0x7E004000)
 #define S3C64XX_PA_SYSCON      (0x7E00F000)
 #define S3C64XX_PA_TIMER       (0x7F006000)
 #define S3C64XX_PA_IIC0                (0x7F004000)
index 090cfd969bc7f4b572e54a722064d83baa9fd2fa..2e58cb7a71479d79181416714990cc6fb3a4509a 100644 (file)
@@ -11,6 +11,8 @@
 #ifndef __ASM_ARCH_SYSTEM_H
 #define __ASM_ARCH_SYSTEM_H __FILE__
 
+#include <plat/watchdog-reset.h>
+
 static void arch_idle(void)
 {
        /* nothing here yet */
@@ -18,7 +20,11 @@ static void arch_idle(void)
 
 static void arch_reset(char mode, const char *cmd)
 {
-       /* nothing here yet */
+       if (mode != 's')
+               arch_wdt_reset();
+
+       /* if all else fails, or mode was for soft, jump to 0 */
+       cpu_reset(0);
 }
 
 #endif /* __ASM_ARCH_IRQ_H */
index 277506aa0d5184f40cb5d5533fa9d0d9c2339263..54b762acb5a0f9624140ed16e650df1452bd9612 100644 (file)
@@ -11,6 +11,7 @@
 */
 
 #include <plat/regs-watchdog.h>
+#include <mach/map.h>
 
 #include <linux/clk.h>
 #include <linux/err.h>
index 19f68b5f0d36e494afaa58d900af3f8ed2778b8b..b1fdd83940a623558c6e46bc407f882d073f70c4 100644 (file)
@@ -102,6 +102,11 @@ static struct map_desc s3c_iodesc[] __initdata = {
                .pfn            = __phys_to_pfn(S3C64XX_PA_MODEM),
                .length         = SZ_4K,
                .type           = MT_DEVICE,
+       }, {
+               .virtual        = (unsigned long)S3C_VA_WATCHDOG,
+               .pfn            = __phys_to_pfn(S3C64XX_PA_WATCHDOG),
+               .length         = SZ_4K,
+               .type           = MT_DEVICE,
        },
 };
 
This page took 0.027318 seconds and 5 git commands to generate.