def METHOD_NAME(self, seconds):
    """
    Arm the hardware watchdog with a timeout of <seconds> seconds.
    If the watchdog is currently armed, calling this function will
    simply reset the timer to the provided value. If the underlying
    hardware does not support the value provided in <seconds>, this
    method should arm the watchdog with the *next greater*
    available value.
    Returns:
        An integer specifying the *actual* number of seconds the
        watchdog was armed with. On failure returns -1.
    """
    timer_offset = -1
    for key,timer_seconds in enumerate(self.TIMERS):
        if seconds > 0 and seconds <= timer_seconds:
            timer_offset = key
            seconds = timer_seconds
            break
    if timer_offset == -1:
        return -1
    cpld_version = Component.get_cpld0_version()
    wd_enabled_version = "0.8"
    if cpld_version < wd_enabled_version:
        syslog.syslog(syslog.LOG_ERR,
                'Older System CPLD ver, Update to 0.8 to support watchdog ')
        return -1
    # Extracting 5th to 8th bits for WD timer values
    reg_val = self._get_reg_val()
    wd_timer_offset = (reg_val >> 4) & 0xf
    if wd_timer_offset != timer_offset:
        # Setting 5th to 7th bits
        # value from timer_offset
        self.disarm()
        self._set_reg_val((reg_val & 0x07) | (timer_offset << 4))
    if self.is_armed():
        # Setting last bit to WD Timer punch
        # Last bit = WD Timer punch
        self._set_reg_val(reg_val & 0xFE)
    else:
        # Setting 4th bit to enable WD
        # 4th bit = Enable WD
        reg_val = self._get_reg_val()
        self._set_reg_val(reg_val | 0x8)
    self.armed_time = self._get_time()
    self.timeout = seconds
    return seconds