watchdog: aspeed: restore default value of reset_mask
authorCédric Le Goater <clg@kaod.org>
Tue, 16 Oct 2018 11:57:11 +0000 (13:57 +0200)
committerTom Rini <trini@konsulko.com>
Mon, 22 Oct 2018 13:18:49 +0000 (09:18 -0400)
This is required for the current Linux kernel to reboot. It should also
probably be fixed in Linux.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
arch/arm/include/asm/arch-aspeed/wdt.h
drivers/watchdog/ast_wdt.c

index 8d6f292..fb04d41 100644 (file)
 #define WDT_RESET_SPI                  (1 << 24)
 #define WDT_RESET_MISC                 (1 << 25)
 
+#define WDT_RESET_DEFAULT                                              \
+       (WDT_RESET_ARM | WDT_RESET_COPROC | WDT_RESET_I2C |             \
+        WDT_RESET_MAC1 | WDT_RESET_MAC2 | WDT_RESET_GCRT |             \
+        WDT_RESET_USB20 | WDT_RESET_USB11_HOST | WDT_RESET_USB11_EHCI2 | \
+        WDT_RESET_VIDEO | WDT_RESET_HAC | WDT_RESET_LPC |              \
+        WDT_RESET_SDSDIO | WDT_RESET_MIC | WDT_RESET_CRT2C |           \
+        WDT_RESET_PWM | WDT_RESET_PECI | WDT_RESET_JTAG |              \
+        WDT_RESET_ADC | WDT_RESET_GPIO | WDT_RESET_MISC)
+
 #ifndef __ASSEMBLY__
 struct ast_wdt {
        u32 counter_status;
index 477605e..59afa21 100644 (file)
@@ -50,6 +50,7 @@ static int ast_wdt_stop(struct udevice *dev)
 
        clrbits_le32(&priv->regs->ctrl, WDT_CTRL_EN);
 
+       writel(WDT_RESET_DEFAULT, &priv->regs->reset_mask);
        return 0;
 }