watchdog: Add watchdog support for W83627DHG chip
The following adds watchdog support for the Winbond W83627DHG chip. I have tested it on a PQ7-M102XL (Intel Atom) board. Signed-off-by: Benny Lønstrup Ammitzbøll <benny@ammitzboell-consult.dk> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
This commit is contained in:
parent
df278dac20
commit
9c67bea419
|
@ -722,14 +722,15 @@ config SMSC37B787_WDT
|
|||
Most people will say N.
|
||||
|
||||
config W83627HF_WDT
|
||||
tristate "W83627HF Watchdog Timer"
|
||||
tristate "W83627HF/W83627DHG Watchdog Timer"
|
||||
depends on X86
|
||||
---help---
|
||||
This is the driver for the hardware watchdog on the W83627HF chipset
|
||||
as used in Advantech PC-9578 and Tyan S2721-533 motherboards
|
||||
(and likely others). This watchdog simply watches your kernel to
|
||||
make sure it doesn't freeze, and if it does, it reboots your computer
|
||||
after a certain amount of time.
|
||||
(and likely others). The driver also supports the W83627DHG chip.
|
||||
This watchdog simply watches your kernel to make sure it doesn't
|
||||
freeze, and if it does, it reboots your computer after a certain
|
||||
amount of time.
|
||||
|
||||
To compile this driver as a module, choose M here: the
|
||||
module will be called w83627hf_wdt.
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
|
||||
#include <asm/system.h>
|
||||
|
||||
#define WATCHDOG_NAME "w83627hf/thf/hg WDT"
|
||||
#define WATCHDOG_NAME "w83627hf/thf/hg/dhg WDT"
|
||||
#define PFX WATCHDOG_NAME ": "
|
||||
#define WATCHDOG_TIMEOUT 60 /* 60 sec default timeout */
|
||||
|
||||
|
@ -89,7 +89,7 @@ static void w83627hf_select_wd_register(void)
|
|||
c = ((inb_p(WDT_EFDR) & 0xf7) | 0x04); /* select WDT0 */
|
||||
outb_p(0x2b, WDT_EFER);
|
||||
outb_p(c, WDT_EFDR); /* set GPIO3 to WDT0 */
|
||||
} else if (c == 0x88) { /* W83627EHF */
|
||||
} else if (c == 0x88 || c == 0xa0) { /* W83627EHF / W83627DHG */
|
||||
outb_p(0x2d, WDT_EFER); /* select GPIO5 */
|
||||
c = inb_p(WDT_EFDR) & ~0x01; /* PIN77 -> WDT0# */
|
||||
outb_p(0x2d, WDT_EFER);
|
||||
|
@ -321,7 +321,7 @@ static int __init wdt_init(void)
|
|||
{
|
||||
int ret;
|
||||
|
||||
printk(KERN_INFO "WDT driver for the Winbond(TM) W83627HF/THF/HG Super I/O chip initialising.\n");
|
||||
printk(KERN_INFO "WDT driver for the Winbond(TM) W83627HF/THF/HG/DHG Super I/O chip initialising.\n");
|
||||
|
||||
if (wdt_set_heartbeat(timeout)) {
|
||||
wdt_set_heartbeat(WATCHDOG_TIMEOUT);
|
||||
|
|
Loading…
Reference in New Issue