@@ -5,6 +5,9 @@ Required properties:
- reg : Should contain WDT registers location and length
- interrupts : Should contain WDT interrupt
+Optional properties:
+- fsl,use-wre: set if watchdog reset out (WDOG_B) signal shall be asserted
+
Examples:
wdt@73f98000 {
@@ -58,6 +58,7 @@ struct imx2_wdt_device {
struct regmap *regmap;
struct timer_list timer; /* Pings the watchdog when closed */
struct watchdog_device wdog;
+ unsigned int use_wre:1; /* enable WRE feature */
};
static bool nowayout = WATCHDOG_NOWAYOUT;
@@ -88,7 +89,10 @@ static inline void imx2_wdt_setup(struct watchdog_device *wdog)
/* Strip the old watchdog Time-Out value */
val &= ~IMX2_WDT_WCR_WT;
/* Generate reset if WDOG times out */
- val &= ~IMX2_WDT_WCR_WRE;
+ if (wdev->use_wre)
+ val |= IMX2_WDT_WCR_WRE;
+ else
+ val &= ~IMX2_WDT_WCR_WRE;
/* Keep Watchdog Disabled */
val &= ~IMX2_WDT_WCR_WDE;
/* Set the watchdog's Time-Out value */
@@ -219,6 +223,9 @@ static int __init imx2_wdt_probe(struct platform_device *pdev)
return PTR_ERR(wdev->clk);
}
+ (of_property_read_bool(pdev->dev.of_node, "fsl,use-wre"))
+ wdev->use_wre = 1;
+
wdog = &wdev->wdog;
wdog->info = &imx2_wdt_info;
wdog->ops = &imx2_wdt_ops;