summaryrefslogtreecommitdiffstats
path: root/drivers/watchdog
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2021-06-10 15:06:11 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2021-06-11 09:01:39 +0200
commitb61f19c1b86bdfb6ddbf0bd50b5993faf33b6dd5 (patch)
tree858c150461505f2f0460b540b2d889ef79bd95af /drivers/watchdog
parentd1b73e6da47d330ebdf68891dddbd167e598f87a (diff)
downloadbarebox-b61f19c1b86bdfb6ddbf0bd50b5993faf33b6dd5.tar.gz
barebox-b61f19c1b86bdfb6ddbf0bd50b5993faf33b6dd5.tar.xz
watchdog: dw_wdt: Detect if running initially
Let the watchdog core know if the watchdog is currently running or not. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Link: https://lore.barebox.org/20210610130613.27983-2-s.hauer@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/watchdog')
-rw-r--r--drivers/watchdog/dw_wdt.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c
index bc5d4a889a..bc5af810ea 100644
--- a/drivers/watchdog/dw_wdt.c
+++ b/drivers/watchdog/dw_wdt.c
@@ -164,6 +164,9 @@ static int dw_wdt_drv_probe(struct device_d *dev)
wdd->hwdev = dev;
wdd->set_timeout = dw_wdt_set_timeout;
+ 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;