menu "Watchdog Timer Support"

config WATCHDOG
	bool "Enable U-Boot watchdog reset"
	depends on !HW_WATCHDOG
	help
	  This option enables U-Boot watchdog support where U-Boot is using
	  watchdog_reset function to service watchdog device in U-Boot. Enable
	  this option if you want to service enabled watchdog by U-Boot. Disable
	  this option if you want U-Boot to start watchdog but never service it.

config WATCHDOG_TIMEOUT_MSECS
	int "Watchdog timeout in msec"
	default 128000 if ARCH_MX25 || ARCH_MX31 || ARCH_MX5 || ARCH_MX6
	default 128000 if ARCH_MX7 || ARCH_VF610
	default 30000 if ARCH_SOCFPGA
	default 60000
	help
	  Watchdog timeout in msec

config HW_WATCHDOG
	bool

config WATCHDOG_RESET_DISABLE
	bool "Disable reset watchdog"
	help
	  Disable reset watchdog, which can let WATCHDOG_RESET invalid, so
	  that the watchdog will not be fed in u-boot.

config IMX_WATCHDOG
	bool "Enable Watchdog Timer support for IMX and LSCH2 of NXP"
	select HW_WATCHDOG if !WDT
	help
	  Select this to enable the IMX and LSCH2 of Layerscape watchdog
	  driver.

config OMAP_WATCHDOG
	bool "TI OMAP watchdog driver"
	depends on ARCH_OMAP2PLUS
	select HW_WATCHDOG
	help
	  Say Y here to enable the OMAP3+ watchdog driver.

config ULP_WATCHDOG
	bool "i.MX7ULP watchdog"
	help
	  Say Y here to enable i.MX7ULP watchdog driver.

config DESIGNWARE_WATCHDOG
	bool "Designware watchdog timer support"
	select HW_WATCHDOG if !WDT
	default y if WDT && ROCKCHIP_RK3399
	help
	  Enable this to support Designware Watchdog Timer IP, present e.g.
	  on Altera SoCFPGA SoCs.

config WDT
	bool "Enable driver model for watchdog timer drivers"
	depends on DM
	imply WATCHDOG
	help
	  Enable driver model for watchdog timer. At the moment the API
	  is very simple and only supports four operations:
	  start, stop, reset and expire_now (expire immediately).
	  What exactly happens when the timer expires is up to a particular
	  device/driver.

config WDT_ARMADA_37XX
	bool "Marvell Armada 37xx watchdog timer support"
	depends on WDT && ARMADA_3700
	help
	  Enable this to support Watchdog Timer on Marvell Armada 37xx SoC.
	  There are 4 possible clocks which can be used on these SoCs. This
	  driver uses the second clock (ID 1), assuming that so will also
	  Linux's driver.

config WDT_ASPEED
	bool "Aspeed ast2400/ast2500 watchdog timer support"
	depends on WDT
	default y if ARCH_ASPEED
	help
	  Select this to enable watchdog timer for Aspeed ast2500/ast2400 devices.
	  The watchdog timer is stopped when initialized. It performs reset, either
	  full SoC reset or CPU or just some peripherals, based on the flags.
	  It currently does not support Boot Flash Addressing Mode Detection or
	  Second Boot.

config WDT_AT91
	bool "AT91 watchdog timer support"
	depends on WDT
	help
	  Select this to enable Microchip watchdog timer, which can be found on
	  some AT91 devices.

config WDT_BCM6345
	bool "BCM6345 watchdog timer support"
	depends on WDT && (ARCH_BMIPS || ARCH_BCM68360 || \
			   ARCH_BCM6858 || ARCH_BCM63158)
	help
	  Select this to enable watchdog timer for BCM6345 SoCs.
	  The watchdog timer is stopped when initialized.
	  It performs full SoC reset.

config WDT_CDNS
	bool "Cadence watchdog timer support"
	depends on WDT
	imply WATCHDOG
	help
	  Select this to enable Cadence watchdog timer, which can be found on some
	  Xilinx Microzed Platform.

config WDT_CORTINA
	bool "Cortina Access CAxxxx watchdog timer support"
	depends on WDT
	help
	  Cortina Access CAxxxx watchdog timer support.
	  This driver support all CPU ISAs supported by Cortina
	  Access CAxxxx SoCs.

config WDT_MPC8xx
	bool "MPC8xx watchdog timer support"
	depends on WDT && MPC8xx
	select HW_WATCHDOG
	help
	  Select this to enable mpc8xx watchdog timer

config WDT_MT7621
	bool "MediaTek MT7621 watchdog timer support"
	depends on WDT && SOC_MT7628
	help
	  Select this to enable Ralink / Mediatek watchdog timer,
	  which can be found on some MediaTek chips.

config WDT_MTK
	bool "MediaTek watchdog timer support"
	depends on WDT && ARCH_MEDIATEK
	help
	  Select this to enable watchdog timer for MediaTek SoCs.
	  The watchdog timer is stopped when initialized.
	  It performs full SoC reset.

config WDT_OMAP3
	bool "TI OMAP watchdog timer support"
	depends on WDT && ARCH_OMAP2PLUS
	default y if AM33XX
	help
	  This enables OMAP3+ watchdog timer driver, which can be
	  found on some TI chipsets and inline with driver model.

config WDT_ORION
	bool "Orion watchdog timer support"
	depends on WDT
	select CLK
	help
	  Select this to enable Orion watchdog timer, which can be found on some
	  Marvell Armada chips.

config WDT_SANDBOX
	bool "Enable Watchdog Timer support for Sandbox"
	depends on SANDBOX && WDT
	help
	  Enable Watchdog Timer support in Sandbox. This is a dummy device that
	  can be probed and supports all of the methods of WDT, but does not
	  really do anything.

config WDT_SP805
	bool "SP805 watchdog timer support"
	depends on WDT
	help
	  Select this to enable SP805 watchdog timer, which can be found on some
	  nxp layerscape chips.

config WDT_STM32MP
	bool "IWDG watchdog driver for STM32 MP's family"
	depends on WDT
	imply WATCHDOG
	help
	  Enable the STM32 watchdog (IWDG) driver. Enable support to
	  configure STM32's on-SoC watchdog.

config XILINX_TB_WATCHDOG
	bool "Xilinx Axi watchdog timer support"
	depends on WDT
	imply WATCHDOG
	help
	  Select this to enable Xilinx Axi watchdog timer, which can be found on some
	  Xilinx Microblaze Platforms.

config WDT_XILINX
	bool "Xilinx window watchdog timer support"
	depends on WDT && ARCH_VERSAL
	select REGMAP
	imply WATCHDOG
	help
	  Select this to enable Xilinx window watchdog timer, which can be found on
	  Xilinx Versal Platforms.

config WDT_TANGIER
	bool "Intel Tangier watchdog timer support"
	depends on WDT && INTEL_MID
	help
	  This enables support for watchdog controller available on
	  Intel Tangier SoC. If you're using a board with Intel Tangier
	  SoC, say Y here.

config SPL_WDT
	bool "Enable driver model for watchdog timer drivers in SPL"
	depends on SPL_DM
	help
	  Enable driver model for watchdog timer in SPL.
	  This is similar to CONFIG_WDT in U-Boot.

endmenu
