# NPCX WDT driver configuration options

# Copyright (c) 2021 Nuvoton Technology Corporation.
# SPDX-License-Identifier: Apache-2.0

config WDT_NPCX
	bool "Nuvoton NPCX embedded controller (EC) Watchdog Timer driver"
	depends on SOC_FAMILY_NPCX
	help
	  This option enables the Watchdog Timer driver for NPCX family of
	  processors.
	  Say y if you wish to use watchdog on NPCX MCU.

config WDT_NPCX_DELAY_CYCLES
	int "Number of delay cycles before generating watchdog event/signal"
	depends on WDT_NPCX
	range 1 255
	default 10
	help
	  This option defines the window in which a watchdog event must be
	  handled, in units of 31ms. After this time window, the watchdog reset
	  triggers immediately.
