On Tue, Mar 20, 2018 at 10:36:26PM +0100, Wolfram Sang wrote: > From: Veeraiyan Chidambaram <veeraiyan.chidambaram@xxxxxxxxxxxx> > > This patch adds the WDIOF_CARDRESET support for the Renessas platform > watchdog, to know if the board reboot is due to a watchdog reset. > > This is done via the WOVF bit (bit 4) of the RWTCSRA register, which > indicates if RWTCNT overflowed, triggering the reset in last boot. > > Signed-off-by: Veeraiyan Chidambaram <veeraiyan.chidambaram@xxxxxxxxxxxx> > [takeshi.kihara.df: changed to read the RWTCSRA register while clock is > enabled] > Signed-off-by: Takeshi Kihara <takeshi.kihara.df@xxxxxxxxxxx> > Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx> Reviewed-by: Guenetr Roeck <linux@xxxxxxxxxxxx> > --- > drivers/watchdog/renesas_wdt.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/watchdog/renesas_wdt.c b/drivers/watchdog/renesas_wdt.c > index 6b8c6ddfe30b31..514db5cc159511 100644 > --- a/drivers/watchdog/renesas_wdt.c > +++ b/drivers/watchdog/renesas_wdt.c > @@ -121,7 +121,8 @@ static int rwdt_restart(struct watchdog_device *wdev, unsigned long action, > } > > static const struct watchdog_info rwdt_ident = { > - .options = WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT, > + .options = WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT | > + WDIOF_CARDRESET, > .identity = "Renesas WDT Watchdog", > }; > > @@ -197,9 +198,10 @@ static int rwdt_probe(struct platform_device *pdev) > return PTR_ERR(clk); > > pm_runtime_enable(&pdev->dev); > - > pm_runtime_get_sync(&pdev->dev); > priv->clk_rate = clk_get_rate(clk); > + priv->wdev.bootstatus = (readb_relaxed(priv->base + RWTCSRA) & > + RWTCSRA_WOVF) ? WDIOF_CARDRESET : 0; > pm_runtime_put(&pdev->dev); > > if (!priv->clk_rate) { > -- > 2.11.0 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html