summaryrefslogtreecommitdiff
path: root/drivers/watchdog
diff options
context:
space:
mode:
authorSebastian Siewior <bigeasy@linutronix.de>2015-03-03 17:45:43 +0100
committerStefano Babic <sbabic@denx.de>2015-03-25 16:52:16 +0100
commit5cab874052614fb130cd9b16fc6a3d27cae0741e (patch)
tree6a522b5a09486729f0139e7b65e9208ac8b5cd20 /drivers/watchdog
parent27d3608076b37f372b9ba59e1eb00114291d6558 (diff)
downloadu-boot-imx-5cab874052614fb130cd9b16fc6a3d27cae0741e.zip
u-boot-imx-5cab874052614fb130cd9b16fc6a3d27cae0741e.tar.gz
u-boot-imx-5cab874052614fb130cd9b16fc6a3d27cae0741e.tar.bz2
watchdog/imx_watchdog: do not set WCR_WDW
with WCR_WDW set, the watchdog won't trigger if we bootet linux and idle around while the watchdog is not triggered. It seems the timer makes progress very slowly if at all. I managed to remain 20minutes alive while the timeout was set to 60secs. It reboots within 60secs if I start a busyloop in userland (something like "while (1) { }"). While I don't see a reason why the WDT should not be running while the CPU is in idle, I'm dropping this bit. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Acked-by: Stefano Babic <sbabic@denx.de>
Diffstat (limited to 'drivers/watchdog')
-rw-r--r--drivers/watchdog/imx_watchdog.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/watchdog/imx_watchdog.c b/drivers/watchdog/imx_watchdog.c
index d5993b4..1d18d4b 100644
--- a/drivers/watchdog/imx_watchdog.c
+++ b/drivers/watchdog/imx_watchdog.c
@@ -20,7 +20,6 @@ struct watchdog_regs {
#define WCR_WDE 0x04 /* WDOG enable */
#define WCR_WDT 0x08
#define WCR_SRS 0x10
-#define WCR_WDW 0x80
#define SET_WCR_WT(x) (x << 8)
#ifdef CONFIG_IMX_WATCHDOG
@@ -47,7 +46,7 @@ void hw_watchdog_init(void)
#endif
timeout = (CONFIG_WATCHDOG_TIMEOUT_MSECS / 500) - 1;
writew(WCR_WDZST | WCR_WDBG | WCR_WDE | WCR_WDT | WCR_SRS |
- WCR_WDW | SET_WCR_WT(timeout), &wdog->wcr);
+ SET_WCR_WT(timeout), &wdog->wcr);
hw_watchdog_reset();
}
#endif