watchdog: da9063_wdt: parse DT for timeout value, too
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Sun, 14 Apr 2019 11:09:33 +0000 (13:09 +0200)
committerWim Van Sebroeck <wim@linux-watchdog.org>
Sun, 5 May 2019 19:04:57 +0000 (21:04 +0200)
And make sure the final obtained value gets properly scaled. Remove two
empty lines to group the initialization blocks while we are here.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Tested-by: Steve Twiss <stwiss.opensource@diasemi.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
drivers/watchdog/da9063_wdt.c

index 06eb9070203c8cdd752db8786e3510db19881031..3d65e92a4e3fea7dc612904cbf927957f5b5c116 100644 (file)
@@ -208,18 +208,20 @@ static int da9063_wdt_probe(struct platform_device *pdev)
        wdd->min_timeout = DA9063_WDT_MIN_TIMEOUT;
        wdd->max_timeout = DA9063_WDT_MAX_TIMEOUT;
        wdd->min_hw_heartbeat_ms = DA9063_RESET_PROTECTION_MS;
-       wdd->timeout = DA9063_WDG_TIMEOUT;
        wdd->parent = dev;
-
        wdd->status = WATCHDOG_NOWAYOUT_INIT_STATUS;
 
        watchdog_set_restart_priority(wdd, 128);
-
        watchdog_set_drvdata(wdd, da9063);
 
+       /* Set default timeout, maybe override it with DT value, scale it */
+       wdd->timeout = DA9063_WDG_TIMEOUT;
+       watchdog_init_timeout(wdd, 0, dev);
+       da9063_wdt_set_timeout(wdd, wdd->timeout);
+
        /* Change the timeout to the default value if the watchdog is running */
        if (da9063_wdt_is_running(da9063)) {
-               da9063_wdt_update_timeout(da9063, DA9063_WDG_TIMEOUT);
+               da9063_wdt_update_timeout(da9063, wdd->timeout);
                set_bit(WDOG_HW_RUNNING, &wdd->status);
        }