watchdog: omap_wdt: Fix WDT target reset when booted from emmc
authorSuniel Mahesh <sunil.m@techveda.org>
Mon, 16 Sep 2019 08:09:17 +0000 (13:39 +0530)
committerTom Rini <trini@konsulko.com>
Thu, 19 Sep 2019 16:54:29 +0000 (12:54 -0400)
AM335X based beaglebone black target gets reset by DM converted watchdog
if booted from emmc around 60sec. Fixed this by moving driver's private struct
variable initialization at different places in the driver to driver's probe.
Tested on Beaglebone Black.

Cc: Grygorii Strashko <grygorii.strashko@ti.com>
Fixes: 7659ea32 ("watchdog: omap_wdt: Convert watchdog driver to use DT and DM")
Reported-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Suniel Mahesh <sunil.m@techveda.org>
Acked-by: Grygorii Strashko <grygorii.strashko@ti.com>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
drivers/watchdog/omap_wdt.c

index d5857be8679b82a49cea779ac6a705fd93f01478..284cfbb2a891b57825ce1b713ea44d887719d255 100644 (file)
@@ -150,7 +150,6 @@ static int omap3_wdt_reset(struct udevice *dev)
 {
        struct omap3_wdt_priv *priv = dev_get_priv(dev);
 
-       priv->wdt_trgr_pattern = 0x1234;
 /*
  * Somebody just triggered watchdog reset and write to WTGR register
  * is in progress. It is resetting right now, no need to trigger it
@@ -231,6 +230,7 @@ static int omap3_wdt_probe(struct udevice *dev)
        if (!priv->regs)
                return -EINVAL;
 
+       priv->wdt_trgr_pattern = 0x1234;
        debug("%s: Probing wdt%u\n", __func__, dev->seq);
        return 0;
 }