# Copyright (c) 2021 ITE Corporation. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0

config WDT_ITE_IT8XXX2
	bool "ITE it8xxx2 Watchdog Timer (WDT) driver"
	depends on SOC_IT8XXX2
	default y
	help
	  This option enables the Watchdog Timer driver for ITE it8xxx2.
	  This driver supports only one channel that id is 0 and 16-bits
	  resolution WDT.

config WDT_ITE_WARNING_LEADING_TIME_MS
	int "Number of ms before generating watchdog event/signal"
	default 500
	help
	  This option defines the window in which a watchdog event must be
	  handled. After this time window, the watchdog reset triggers
	  immediately.

config WDT_ITE_REDUCE_WARNING_LEADING_TIME
	bool "Reduce warning leading time"
	depends on SOC_IT8XXX2
	default n
	help
	  Once warning timer triggered, if watchdog timer isn't reloaded,
	  then we will reduce interval of warning timer to 30ms to print
	  more warning messages before watchdog reset.
