summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2021-06-10 15:06:12 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2021-06-11 09:01:39 +0200
commit06ea3129f8564a05c8624306ca4a49f1228f64ae (patch)
treedf1a28e7e516f5166ad6f2c3d2e226a1bf641979
parentb61f19c1b86bdfb6ddbf0bd50b5993faf33b6dd5 (diff)
downloadbarebox-06ea3129f8564a05c8624306ca4a49f1228f64ae.tar.gz
barebox-06ea3129f8564a05c8624306ca4a49f1228f64ae.tar.xz
watchdog: dw_wdt: set maximum timeout
Communicate the maximum possible timeout to the watchdog core. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Link: https://lore.barebox.org/20210610130613.27983-3-s.hauer@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--drivers/watchdog/dw_wdt.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c
index bc5af810ea..e23d9cc225 100644
--- a/drivers/watchdog/dw_wdt.c
+++ b/drivers/watchdog/dw_wdt.c
@@ -159,18 +159,19 @@ static int dw_wdt_drv_probe(struct device_d *dev)
if (IS_ERR(dw_wdt->rst))
return PTR_ERR(dw_wdt->rst);
+ dw_wdt->rate = clk_get_rate(clk);
+ if (dw_wdt->rate == 0)
+ return -EINVAL;
+
wdd = &dw_wdt->wdd;
wdd->name = "dw_wdt";
wdd->hwdev = dev;
wdd->set_timeout = dw_wdt_set_timeout;
+ wdd->timeout_max = dw_wdt_top_in_seconds(dw_wdt, DW_WDT_MAX_TOP);
wdd->running = readl(dw_wdt->regs + WDOG_CONTROL_REG_OFFSET) &
WDOG_CONTROL_REG_WDT_EN_MASK ? WDOG_HW_RUNNING : WDOG_HW_NOT_RUNNING;
- dw_wdt->rate = clk_get_rate(clk);
- if (dw_wdt->rate == 0)
- return -EINVAL;
-
ret = watchdog_register(wdd);
if (ret)
goto out_disable_clk;