aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/watchdog/imx2_wdt.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/watchdog/imx2_wdt.c b/drivers/watchdog/imx2_wdt.c
index c50c7d85689f..5142bbabe027 100644
--- a/drivers/watchdog/imx2_wdt.c
+++ b/drivers/watchdog/imx2_wdt.c
@@ -52,6 +52,8 @@
52#define IMX2_WDT_WRSR 0x04 /* Reset Status Register */ 52#define IMX2_WDT_WRSR 0x04 /* Reset Status Register */
53#define IMX2_WDT_WRSR_TOUT (1 << 1) /* -> Reset due to Timeout */ 53#define IMX2_WDT_WRSR_TOUT (1 << 1) /* -> Reset due to Timeout */
54 54
55#define IMX2_WDT_WMCR 0x08 /* Misc Register */
56
55#define IMX2_WDT_MAX_TIME 128 57#define IMX2_WDT_MAX_TIME 128
56#define IMX2_WDT_DEFAULT_TIME 60 /* in seconds */ 58#define IMX2_WDT_DEFAULT_TIME 60 /* in seconds */
57 59
@@ -274,6 +276,13 @@ static int __init imx2_wdt_probe(struct platform_device *pdev)
274 276
275 imx2_wdt_ping_if_active(wdog); 277 imx2_wdt_ping_if_active(wdog);
276 278
279 /*
280 * Disable the watchdog power down counter at boot. Otherwise the power
281 * down counter will pull down the #WDOG interrupt line for one clock
282 * cycle.
283 */
284 regmap_write(wdev->regmap, IMX2_WDT_WMCR, 0);
285
277 ret = watchdog_register_device(wdog); 286 ret = watchdog_register_device(wdog);
278 if (ret) { 287 if (ret) {
279 dev_err(&pdev->dev, "cannot register watchdog device\n"); 288 dev_err(&pdev->dev, "cannot register watchdog device\n");