diff options
author | Ben Dooks <ben-linux@fluff.org> | 2007-02-15 21:52:15 (GMT) |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2007-02-16 11:40:50 (GMT) |
commit | d4156d52c7464e8f25a286e1c2975e91bdbc35d6 (patch) | |
tree | dd3b2fb363f1eaf6e5816aeec33613cb90ed217c | |
parent | d9c0ebbda522b64607cd2b0064b9bb040c53bcaf (diff) | |
download | linux-d4156d52c7464e8f25a286e1c2975e91bdbc35d6.tar.xz |
[ARM] 4204/1: S3C24XX: add hook to specify cpu reset
Add hook code to specify cpu specific reset call
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | include/asm-arm/arch-s3c2410/reset.h | 22 | ||||
-rw-r--r-- | include/asm-arm/arch-s3c2410/system.h | 6 |
2 files changed, 27 insertions, 1 deletions
diff --git a/include/asm-arm/arch-s3c2410/reset.h b/include/asm-arm/arch-s3c2410/reset.h new file mode 100644 index 0000000..4f866cd --- /dev/null +++ b/include/asm-arm/arch-s3c2410/reset.h @@ -0,0 +1,22 @@ +/* linux/include/asm-arm/arch-s3c2410/reset.h + * + * Copyright (c) 2007 Simtec Electronics + * Ben Dooks <ben@simtec.co.uk> + * http://armlinux.simtec.co.uk/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * S3C2410 CPU reset controls +*/ + +#ifndef __ASM_ARCH_RESET_H +#define __ASM_ARCH_RESET_H __FILE__ + +/* This allows the over-ride of the default reset code +*/ + +extern void (*s3c24xx_reset_hook)(void); + +#endif /* __ASM_ARCH_RESET_H */ diff --git a/include/asm-arm/arch-s3c2410/system.h b/include/asm-arm/arch-s3c2410/system.h index 41aeb73..1c74ef1 100644 --- a/include/asm-arm/arch-s3c2410/system.h +++ b/include/asm-arm/arch-s3c2410/system.h @@ -15,11 +15,13 @@ #include <asm/arch/map.h> #include <asm/arch/idle.h> +#include <asm/arch/reset.h> #include <asm/arch/regs-watchdog.h> #include <asm/arch/regs-clock.h> void (*s3c24xx_idle)(void); +void (*s3c24xx_reset_hook)(void); void s3c24xx_default_idle(void) { @@ -54,7 +56,6 @@ static void arch_idle(void) s3c24xx_default_idle(); } - static void arch_reset(char mode) { @@ -62,6 +63,9 @@ arch_reset(char mode) cpu_reset(0); } + if (s3c24xx_reset_hook) + s3c24xx_reset_hook(); + printk("arch_reset: attempting watchdog reset\n"); __raw_writel(0, S3C2410_WTCON); /* disable watchdog, to be safe */ |