diff options
author | Florian Fainelli <florian@openwrt.org> | 2009-08-04 23:09:36 +0200 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2009-11-02 12:00:03 +0100 |
commit | 72838a170372d6bb44bcb04a81aa2c83312cfbc0 (patch) | |
tree | 36f416b9a26fab0a07a2d08958f2a398a9e1472b /arch/mips/ar7 | |
parent | 2cfac7f7f2e6d11bcba105b3d6ba4d96ba5ad349 (diff) |
MIPS: AR7: register watchdog device only if enabled in hw configuration
This patch checks if the watchdog enable bit is set in the DCL register
meaning that the hardware watchdog actually works and if so, register the
ar7_wdt platform_device.
Signed-off-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/ar7')
-rw-r--r-- | arch/mips/ar7/platform.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/mips/ar7/platform.c b/arch/mips/ar7/platform.c index e2278c04459d..835f3f0319ca 100644 --- a/arch/mips/ar7/platform.c +++ b/arch/mips/ar7/platform.c @@ -503,6 +503,7 @@ static int __init ar7_register_devices(void) { u16 chip_id; int res; + u32 *bootcr, val; #ifdef CONFIG_SERIAL_8250 static struct uart_port uart_port[2]; @@ -595,7 +596,13 @@ static int __init ar7_register_devices(void) ar7_wdt_res.end = ar7_wdt_res.start + 0x20; - res = platform_device_register(&ar7_wdt); + bootcr = (u32 *)ioremap_nocache(AR7_REGS_DCL, 4); + val = *bootcr; + iounmap(bootcr); + + /* Register watchdog only if enabled in hardware */ + if (val & AR7_WDT_HW_ENA) + res = platform_device_register(&ar7_wdt); return res; } |