watchdog: da9063_wdt: don't trigger watchdog too fast
authorStefan Christ <s.christ@phytec.de>
Wed, 6 Jul 2016 08:40:11 +0000 (10:40 +0200)
committerWim Van Sebroeck <wim@iguana.be>
Sun, 17 Jul 2016 19:02:42 +0000 (21:02 +0200)
Triggering the watchdog faster than T_WDMIN=256ms leads to resets of the
DA9063 chip. The datasheet says that the watchdog must only be triggered
in the timeframe T_WDMIN to T_WDMAX. The T_WDMAX is configured in the
driver.

Signed-off-by: Stefan Christ <s.christ@phytec.de>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
drivers/watchdog/da9063_wdt.c

index a100f648880d85315e4354176c890706a38e58cb..5d6b4e5f7989ccc4d63a88e8b366f9b6d48b63bb 100644 (file)
@@ -34,6 +34,7 @@ static const unsigned int wdt_timeout[] = { 0, 2, 4, 8, 16, 32, 65, 131 };
 #define DA9063_WDT_MIN_TIMEOUT         wdt_timeout[DA9063_TWDSCALE_MIN]
 #define DA9063_WDT_MAX_TIMEOUT         wdt_timeout[DA9063_TWDSCALE_MAX]
 #define DA9063_WDG_TIMEOUT             wdt_timeout[3]
+#define DA9063_RESET_PROTECTION_MS     256
 
 struct da9063_watchdog {
        struct da9063 *da9063;
@@ -171,6 +172,7 @@ static int da9063_wdt_probe(struct platform_device *pdev)
        wdt->wdtdev.ops = &da9063_watchdog_ops;
        wdt->wdtdev.min_timeout = DA9063_WDT_MIN_TIMEOUT;
        wdt->wdtdev.max_timeout = DA9063_WDT_MAX_TIMEOUT;
+       wdt->wdtdev.min_hw_heartbeat_ms = DA9063_RESET_PROTECTION_MS;
        wdt->wdtdev.timeout = DA9063_WDG_TIMEOUT;
        wdt->wdtdev.parent = &pdev->dev;
 
This page took 0.043417 seconds and 5 git commands to generate.