# Smartbond watchdog driver config

# Copyright (c) 2022 Renesas Electronics Corporation and/or its affiliates
# SPDX-License-Identifier: Apache-2.0

config WDT_SMARTBOND
	bool "Watchdog Driver for Smartbond family of MCUs"
	default y
	depends on DT_HAS_RENESAS_SMARTBOND_WATCHDOG_ENABLED
	select HAS_WDT_DISABLE_AT_BOOT
	help
	  Enable watchdog driver for Smartbond line of MCUs

config WDT_SMARTBOND_NMI
	bool "NMI pre-reset interrupt enable"
	default n
	depends on WDT_SMARTBOND
	select RUNTIME_NMI
	help
	  Watchdog timer generates NMI at value 0, and WDOG (SYS)
	  reset at <= -16. Timer can be frozen/resumed using
	  SET_FREEZE_REG[FRZ_WDOG]/RESET_FREEZE_REG[FRZ_WDOG].
	  When not set:
	  Watchdog timer generates a WDOG (SYS)
	  reset at value 0 and can not be frozen by Software.
	  Note that this bit can only be set to 1 by SW and
	  only be reset with a WDOG (SYS) reset or SW reset.
