diff options
author | Ben Dooks <ben-linux@fluff.org> | 2007-12-23 03:09:31 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-01-28 13:20:48 +0000 |
commit | d652074ebcedd13c7ce760c7f3327f30862852fb (patch) | |
tree | c5675e72699a84c9bf10610d61852d996a20b948 /include/asm-arm/arch-s3c2410 | |
parent | cf08167c82b38ed9f6401e68b3c91fb11496f101 (diff) | |
download | kernel_samsung_smdk4412-d652074ebcedd13c7ce760c7f3327f30862852fb.zip kernel_samsung_smdk4412-d652074ebcedd13c7ce760c7f3327f30862852fb.tar.gz kernel_samsung_smdk4412-d652074ebcedd13c7ce760c7f3327f30862852fb.tar.bz2 |
[ARM] 4721/1: S3C24XX: Ensure watchdog clock is enbaled for hard reset
If the hard reset routine is using the watchdog, then
ensure that the clock for the watchdog has been enabled
before we try and issue a reset.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'include/asm-arm/arch-s3c2410')
-rw-r--r-- | include/asm-arm/arch-s3c2410/system.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/asm-arm/arch-s3c2410/system.h b/include/asm-arm/arch-s3c2410/system.h index 6389178..cb9cd9f 100644 --- a/include/asm-arm/arch-s3c2410/system.h +++ b/include/asm-arm/arch-s3c2410/system.h @@ -20,6 +20,9 @@ #include <asm/plat-s3c/regs-watchdog.h> #include <asm/arch/regs-clock.h> +#include <linux/clk.h> +#include <linux/err.h> + void (*s3c24xx_idle)(void); void (*s3c24xx_reset_hook)(void); @@ -59,6 +62,8 @@ static void arch_idle(void) static void arch_reset(char mode) { + struct clk *wdtclk; + if (mode == 's') { cpu_reset(0); } @@ -70,6 +75,12 @@ arch_reset(char mode) __raw_writel(0, S3C2410_WTCON); /* disable watchdog, to be safe */ + wdtclk = clk_get(NULL, "watchdog"); + if (!IS_ERR(wdtclk)) { + clk_enable(wdtclk); + } else + printk(KERN_WARNING "%s: warning: cannot get watchdog clock\n", __func__); + /* put initial values into count and data */ __raw_writel(0x100, S3C2410_WTCNT); __raw_writel(0x100, S3C2410_WTDAT); |