[WATCHDOG] max63xx: be careful when disabling the watchdog

When shutting down the watchdog timer, special care must be taken
not to overwrite other bits in the register, as it may be shared
with other peripherals.

For example, on the Arcom Vulcan, the register is shared between
the watchdog and the PCI reset line...

Signed-off-by: Marc Zyngier <maz@misterjones.org>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
This commit is contained in:
Marc Zyngier 2010-04-09 17:43:33 +01:00 коммит произвёл Wim Van Sebroeck
Родитель 0fb06571bb
Коммит b1183e064a
1 изменённых файлов: 6 добавлений и 1 удалений

Просмотреть файл

@ -154,9 +154,14 @@ static void max63xx_wdt_enable(struct max63xx_timeout *entry)
static void max63xx_wdt_disable(void)
{
u8 val;
spin_lock(&io_lock);
__raw_writeb(3, wdt_base);
val = __raw_readb(wdt_base);
val &= ~MAX6369_WDSET;
val |= 3;
__raw_writeb(val, wdt_base);
spin_unlock(&io_lock);