Skip to content

Commit

Permalink
watchdog: Add watchdog support for W83627DHG chip
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
bammitzb authored and Wim Van Sebroeck committed Jan 12, 2011
1 parent df278da commit 9c67bea
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 7 deletions.
9 changes: 5 additions & 4 deletions drivers/watchdog/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
6 changes: 3 additions & 3 deletions drivers/watchdog/w83627hf_wdt.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */

Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 9c67bea

Please sign in to comment.