menu "Watchdog Timer Support"

config WATCHDOG
	bool "Enable U-Boot watchdog reset"
	depends on !HW_WATCHDOG
	select CYCLIC
	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_AUTOSTART
	bool "Automatically start watchdog timer"
	depends on WDT
	default n if ARCH_SUNXI
	default y
	help
	  Automatically start watchdog timer and start servicing it during
	  init phase. Enabled by default. Disable this option if you want
	  to compile U-Boot with CONFIG_WDT support but do not want to
	  activate watchdog, like when CONFIG_WDT option is disabled. You
	  would be able to start watchdog manually by 'wdt' command. Useful
	  when you want to have support for 'wdt' command but do not want
	  to have watchdog enabled by default.

config WATCHDOG_TIMEOUT_MSECS
	int "Watchdog timeout in msec"
	default 128000 if ARCH_MX31 || ARCH_MX5 || ARCH_MX6
	default 128000 if ARCH_MX7 || ARCH_VF610
	default 30000 if ARCH_SOCFPGA
	default 16000 if ARCH_SUNXI
	default 5376 if ULP_WATCHDOG
	default 15000 if ARCH_BCM283X
	default 60000
	help
	  Watchdog timeout in msec

config HW_WATCHDOG
	bool

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 WATCHDOG_RESET_DISABLE
	bool "Disable reset watchdog"
	depends on IMX_WATCHDOG
	help
	  Disable reset watchdog, which can let WATCHDOG_RESET invalid, so
	  that the watchdog will not be fed in u-boot.

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"
	depends on WDT
	default y if 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
	select CYCLIC
	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_APPLE
	bool "Apple watchdog timer support"
	depends on WDT
	default y if ARCH_APPLE
	help
	  Enable support for the watchdog timer on Apple SoCs.
	  The watchdog will perform a full SoC reset resulting in a
	  reboot of the entire system.

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_AST2600
	bool "Aspeed AST2600 watchdog timer support"
	depends on WDT
	default y if ASPEED_AST2600
	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.

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 || BCM6856 || \
			   BCM6858 || BCM63158 || BCM6855)
	help
	  Select this to enable watchdog timer for BCM6345 SoCs.
	  The watchdog timer is stopped when initialized.
	  It performs full SoC reset.

config WDT_BOOKE
	bool "PowerPC Book-E watchdog driver"
	depends on WDT && MPC85xx
	help
	  Watchdog driver for PowerPC Book-E chips, such as the Freescale
	  MPC85xx SOCs and the IBM PowerPC 440.

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_GPIO
	bool "External gpio watchdog support"
	depends on WDT
	depends on DM_GPIO
	help
	  Support for external watchdog fed by toggling a gpio. See
	  doc/device-tree-bindings/watchdog/gpio-wdt.txt for
	  information on how to describe the watchdog in device tree.

config WDT_MAX6370
	bool "MAX6370 watchdog timer support"
	depends on WDT
	select DM_GPIO
	help
	  Select this to enable max6370 watchdog timer.

config WDT_MCF
	bool "ColdFire family watchdog timer support"
	depends on WDT
	help
	  Select this to enable ColdFire watchdog timer,
	  which supports mcf52x2 mcf532x mcf523x families.

config WDT_MESON_GXBB
	bool "Amlogic watchdog timer support"
	depends on WDT
	help
	  Select this to enable Meson watchdog timer,
	  which can be found on some Amlogic platforms.

config WDT_MPC8xxx
	bool "MPC8xxx watchdog timer support"
	depends on WDT && (MPC8xx || MPC83xx)
	help
	  Select this to enable mpc8xxx watchdog timer

config WDT_MPC8xxx_BME
	bool "Enable MPC8xx Bus Monitoring"
	depends on WDT_MPC8xxx && MPC8xx
	help
	  Select this to enable mpc8xx Bus Monitor.

config WDT_MPC8xxx_BMT
	int "MPC8xx Bus Monitor Timing" if WDT_MPC8xxx_BME
	range 0 255
	default 255
	depends on WDT_MPC8xxx
	help
	  Bus monitor timing. Defines the timeout period, in 8 system clock
	  resolution, for the bus monitor.

	  Maximum timeout is 2,040 clocks (255 x 8).

config WDT_MT7620
	bool "MediaTek MT7620 watchdog timer support"
	depends on WDT && SOC_MT7620
	help
	  Select this to enable watchdog timer on MediaTek MT7620 and earlier
	  SoC chips.

config WDT_MT7621
	bool "MediaTek MT7621 watchdog timer support"
	depends on WDT && (SOC_MT7621 || 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_NPCM
	bool "Nuvoton watchdog timer support"
	depends on WDT && ARCH_NPCM
	help
	  This enables Nuvoton npcm7xx/npcm8xx watchdog timer driver,
	  The watchdog timer is stopped when initialized.
	  It performs full SoC reset.

config WDT_OCTEONTX
	bool "Octeon core watchdog support"
	depends on WDT && (ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2)
	default y
	imply WATCHDOG
	help
	  This enables the Octeon watchdog driver, which can be found on
	  various Octeon parts such as Octeon II/III and OcteonTX/TX2.

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_K3_RTI
	bool "Texas Instruments K3 RTI watchdog"
	depends on WDT && ARCH_K3
	help
	  Say Y here if you want to include support for the K3 watchdog
	  timer (RTI module) available in the K3 generation of processors.

if WDT_K3_RTI

config WDT_K3_RTI_LOAD_FW
	bool "Load watchdog firmware"
	depends on REMOTEPROC
	help
	  Automatically load the specified firmware image into the MCU R5F
	  core 0. On the AM65x, this firmware is supposed to handle the expiry
	  of the watchdog timer, typically by resetting the system.

config WDT_K3_RTI_FW_FILE
	string "Watchdog firmware image file"
	default "k3-rti-wdt.fw"
	depends on WDT_K3_RTI_LOAD_FW
	help
	  Firmware image to be embedded into U-Boot and loaded on watchdog
	  start.

endif

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_ALARM_SANDBOX
	bool "Enable SIGALRM-based Watchdog Timer support for Sandbox"
	depends on SANDBOX && WDT
	help
	  Enable support for a SIGALRM-based watchdog timer in Sandbox. This is
	  a watchdog device based on the host OS' alarm() function, which will
	  kill the sandbox with SIGALRM unless properly maintained.

config WDT_SBSA
	bool "SBSA watchdog timer support"
	depends on WDT
	help
	   Select this to enable SBSA watchdog timer.
	   This driver can operate ARM SBSA Generic Watchdog as a single stage.
	   In the single stage mode, when the timeout is reached, your system
	   will be reset by WS1. The first signal (WS0) is ignored.

config WDT_SL28CPLD
	bool "sl28cpld watchdog timer support"
	depends on WDT && SL28CPLD
	help
	  Enable support for the watchdog timer in the Kontron sl28cpld
	  management controller.

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 WDT_SUNXI
	bool "Allwinner sunxi watchdog timer support"
	depends on WDT && ARCH_SUNXI
	default y
	help
	  Enable support for the watchdog timer in Allwinner sunxi SoCs.

config WDT_BCM2835
	bool "Broadcom 2835 watchdog timer support"
	depends on WDT && ARCH_BCM283X
	default y
	help
	  Enable support for the watchdog timer in Broadcom 283X SoCs such
	  as Raspberry Pi boards.

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 WDT_ARM_SMC
	bool "ARM SMC watchdog timer support"
	depends on WDT && ARM_SMCCC
	imply WATCHDOG
	help
	  Select this to enable Arm SMC watchdog timer. This watchdog will manage
	  a watchdog based on ARM SMCCC communication.

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.

config WDT_FTWDT010
	bool "Faraday Technology ftwdt010 watchdog timer support"
	depends on WDT
	imply WATCHDOG
	help
	  Faraday Technology ftwdt010 watchdog is an architecture independent
	  watchdog. It is usually used in SoC chip design.
endmenu
