#define WDT_OUT_PWROK  0x10    /* Pulse PWROK on timeout */
 #define WDT_OUT_KRST   0x40    /* Pulse reset on timeout */
 
+static int wdt_control_reg = WDT_RESET_GAME;
+module_param(wdt_control_reg, int, 0);
+MODULE_PARM_DESC(wdt_control_reg, "Value to write to watchdog control "
+               "register. The default WDT_RESET_GAME resets the timer on "
+               "game port reads that this driver generates. You can also "
+               "use KBD, MOUSE or CIR if you have some external way to "
+               "generate those interrupts.");
+
 static int superio_inb(int reg)
 {
        outb(reg, REG);
 
 static inline void it8712f_wdt_ping(void)
 {
-       inb(address);
+       if (wdt_control_reg & WDT_RESET_GAME)
+               inb(address);
 }
 
 static void it8712f_wdt_update_margin(void)
        superio_enter();
        superio_select(LDN_GPIO);
 
-       superio_outb(WDT_RESET_GAME, WDT_CONTROL);
+       superio_outb(wdt_control_reg, WDT_CONTROL);
 
        it8712f_wdt_update_margin();