From b87645f14cf98dc8b4911f45020c3d33bc37979b Mon Sep 17 00:00:00 2001 From: Cor Peters Date: Mon, 14 Nov 2016 08:58:17 +0100 Subject: [PATCH] watchdog: omap_wdt: retrieve bootstatus via syscon https://github.com/victronenergy/venus/issues/10 --- drivers/watchdog/omap_wdt.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/watchdog/omap_wdt.c b/drivers/watchdog/omap_wdt.c index 74d785b2b478..c943a9365e5c 100644 --- a/drivers/watchdog/omap_wdt.c +++ b/drivers/watchdog/omap_wdt.c @@ -41,6 +41,9 @@ #include #include +#include +#include + #include "omap_wdt.h" static bool nowayout = WATCHDOG_NOWAYOUT; @@ -266,6 +269,19 @@ static int omap_wdt_probe(struct platform_device *pdev) u32 rs = pdata->read_reset_sources(); if (rs & (1 << OMAP_MPU_WD_RST_SRC_ID_SHIFT)) wdev->wdog.bootstatus = WDIOF_CARDRESET; + } else { + struct regmap *rm = + syscon_regmap_lookup_by_compatible("ti,omap3-rst"); + u32 rs = 0; + int err; + + if (!IS_ERR(rm)) { + err = regmap_read(rm, 8, &rs); + if (!err) + regmap_write(rm, 8, rs); + } + + wdev->wdog.bootstatus = rs; } if (early_enable) {