summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2015-10-22 11:45:49 +0300
committerJeremy Kerr <jk@ozlabs.org>2015-10-22 11:49:41 +0300
commit2f1711908ac92968e2d533616c4cdb8d7b848677 (patch)
tree43594c01cbffe208294fec5d66a8319ff8798c97
parent0c67549936feb8cfa7a78238eed3ca1112901702 (diff)
downloadlinux-2f1711908ac92968e2d533616c4cdb8d7b848677.tar.xz
watchdog/aspeed_wdt: Set system reset mode to 'full chip'
Currently, the watchdog timer does nothing on expiry - the 'SoC system' reset type doesn't seem to have any effect. This change uses the 'full chip' reset type instead. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
-rw-r--r--drivers/watchdog/aspeed_wdt.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/watchdog/aspeed_wdt.c b/drivers/watchdog/aspeed_wdt.c
index 57503beca8f6..9b82420f9025 100644
--- a/drivers/watchdog/aspeed_wdt.c
+++ b/drivers/watchdog/aspeed_wdt.c
@@ -37,6 +37,7 @@ MODULE_DEVICE_TABLE(of, aspeed_wdt_of_table);
#define WDT_RELOAD_VALUE 0x04
#define WDT_RESTART 0x08
#define WDT_CTRL 0x0C
+#define WDT_CTRL_RESET_MODE_FULL_CHIP (0x01 << 5)
#define WDT_CTRL_RESET_SYSTEM (0x1 << 1)
#define WDT_CTRL_ENABLE (0x1 << 0)
@@ -44,7 +45,8 @@ MODULE_DEVICE_TABLE(of, aspeed_wdt_of_table);
static void aspeed_wdt_enable(struct aspeed_wdt *wdt, int count)
{
- u32 ctrl = WDT_CTRL_RESET_SYSTEM | WDT_CTRL_ENABLE;
+ u32 ctrl = WDT_CTRL_RESET_MODE_FULL_CHIP | WDT_CTRL_RESET_SYSTEM |
+ WDT_CTRL_ENABLE;
writel(0, wdt->base + WDT_CTRL);
writel(count, wdt->base + WDT_RELOAD_VALUE);