#define QUIRK_HAS_RST_STAT                     (1 << 1)
 #define QUIRK_HAS_WTCLRINT_REG                 (1 << 2)
 #define QUIRK_HAS_PMU_AUTO_DISABLE             (1 << 3)
+#define QUIRK_HAS_PMU_CNT_EN                   (1 << 4)
 
 /* These quirks require that we have a PMU register map */
 #define QUIRKS_HAVE_PMUREG                     (QUIRK_HAS_PMU_CONFIG | \
                                                 QUIRK_HAS_RST_STAT | \
-                                                QUIRK_HAS_PMU_AUTO_DISABLE)
+                                                QUIRK_HAS_PMU_AUTO_DISABLE | \
+                                                QUIRK_HAS_PMU_CNT_EN)
 
 static bool nowayout   = WATCHDOG_NOWAYOUT;
 static int tmr_margin;
  * @rst_stat_reg: Offset in pmureg for the register that has the reset status.
  * @rst_stat_bit: Bit number in the rst_stat register indicating a watchdog
  * reset.
+ * @cnt_en_reg: Offset in pmureg for the register that enables WDT counter.
+ * @cnt_en_bit: Bit number for "watchdog counter enable" in cnt_en register.
  * @quirks: A bitfield of quirks.
  */
 
        int mask_bit;
        int rst_stat_reg;
        int rst_stat_bit;
+       int cnt_en_reg;
+       int cnt_en_bit;
        u32 quirks;
 };
 
        return ret;
 }
 
+static int s3c2410wdt_enable_counter(struct s3c2410_wdt *wdt, bool en)
+{
+       const u32 mask_val = BIT(wdt->drv_data->cnt_en_bit);
+       const u32 val = en ? mask_val : 0;
+       int ret;
+
+       ret = regmap_update_bits(wdt->pmureg, wdt->drv_data->cnt_en_reg,
+                                mask_val, val);
+       if (ret < 0)
+               dev_err(wdt->dev, "failed to update reg(%d)\n", ret);
+
+       return ret;
+}
+
 static int s3c2410wdt_mask_and_disable_reset(struct s3c2410_wdt *wdt, bool mask)
 {
        int ret;
                        return ret;
        }
 
+       if (wdt->drv_data->quirks & QUIRK_HAS_PMU_CNT_EN) {
+               ret = s3c2410wdt_enable_counter(wdt, !mask);
+               if (ret < 0)
+                       return ret;
+       }
+
        return 0;
 }