static void
 w83697hf_init(void)
 {
-       unsigned char t;
+       unsigned char bbuf;
 
        w83697hf_select_wdt();
 
-       w83697hf_set_reg(0x29, 0x20);   /* Set pin 119 to WDTO# mode (= CR29, WDT0) */
+       bbuf = w83697hf_get_reg(0x29);
+       bbuf &= ~0x60;
+       bbuf |= 0x20;
+       w83697hf_set_reg(0x29, bbuf);   /* Set pin 119 to WDTO# mode (= CR29, WDT0) */
 
-       t = w83697hf_get_reg(0xF3);     /* Read CRF3 */
-       if (t != 0) {
-               printk (KERN_INFO PFX "Watchdog already running. Resetting timeout to %d sec\n", timeout);
-               w83697hf_set_reg(0xF3, timeout);        /* Write new timeout */
-       }
-       t = w83697hf_get_reg(0xF4);     /* Read CRF4 */
-       t&=~0x0C;                       /* set second mode & disable keyboard turning off watchdog */
-       w83697hf_set_reg(0xF4, t);      /* Write back to CRF4 */
+       bbuf = w83697hf_get_reg(0xF3);
+       bbuf &= ~0x04;
+       w83697hf_set_reg(0xF3, bbuf);   /* Count mode is seconds */
 
        w83697hf_deselect_wdt();
 }