zephyr/drivers/watchdog/Kconfig

138 lines
3.2 KiB
Plaintext
Raw Permalink Normal View History

# Watchdog configuration options
# Copyright (c) 2015 Intel Corporation
# Copyright (c) 2017 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
menuconfig WATCHDOG
bool "Watchdog drivers"
help
Include support for watchdogs.
if WATCHDOG
config HAS_WDT_DISABLE_AT_BOOT
bool
config WDT_DISABLE_AT_BOOT
bool "Disable at boot"
depends on HAS_WDT_DISABLE_AT_BOOT
help
Disable watchdog at Zephyr system startup.
module = WDT
module-str = watchdog
source "subsys/logging/Kconfig.template.log_config"
config HAS_WDT_MULTISTAGE
bool
config WDT_MULTISTAGE
bool "Multistage timeouts"
depends on HAS_WDT_MULTISTAGE
help
Enable multistage operation of watchdog timeouts.
config WDT_COUNTER
bool "Counter based watchdog"
default y
depends on DT_HAS_ZEPHYR_COUNTER_WATCHDOG_ENABLED
select COUNTER
help
Watchdog emulated with counter device. If counter device supports using
zero latency interrupts (ZLI) then expiration callback can be called from
that context. This watchdog can be used along hardware watchdog to
overcome hardware watchdog limitations, e.g. Nordic devices reset
unconditionally at fixed time after hitting watchdog interrupt, leaving
no time to print debug information. Watchdog has limitations since it
cannot interrupt same or higher priorities so it cannot fully replace
hardware based watchdog.
if WDT_COUNTER
config WDT_COUNTER_CH_COUNT
int "Maximum number of supported channel"
default 4
range 1 $(UINT8_MAX)
help
Note that actual channel count will be limited to number of channels
supported by the counter device which is used for watchdog.
endif # WDT_COUNTER
source "drivers/watchdog/Kconfig.stm32"
source "drivers/watchdog/Kconfig.cmsdk_apb"
source "drivers/watchdog/Kconfig.sam"
source "drivers/watchdog/Kconfig.esp32"
source "drivers/watchdog/Kconfig.sam0"
source "drivers/watchdog/Kconfig.nrfx"
source "drivers/watchdog/Kconfig.mcux"
source "drivers/watchdog/Kconfig.mcux_imx"
source "drivers/watchdog/Kconfig.xec"
source "drivers/watchdog/Kconfig.gecko"
source "drivers/watchdog/Kconfig.sifive"
source "drivers/watchdog/Kconfig.npcx"
source "drivers/watchdog/Kconfig.cc32xx"
source "drivers/watchdog/Kconfig.cc13xx_cc26xx"
source "drivers/watchdog/Kconfig.it8xxx2"
source "drivers/watchdog/Kconfig.rpi_pico"
source "drivers/watchdog/Kconfig.gd32"
source "drivers/watchdog/Kconfig.npm1300"
source "drivers/watchdog/Kconfig.npm6001"
source "drivers/watchdog/Kconfig.nxp_s32"
source "drivers/watchdog/Kconfig.dw"
drivers: wdt: Add wdt_intel_adsp driver Added a new watchdog driver which can handle a multiple wdt_dw instances and can control the pause signal. The mlt platform has three designware watchdogs, one for each core. I decided to create a separate intel watchdog driver for the following reasons: 1. All three devices share the same interrupt number. Each watchdog reports an interrupt to the core to which it has been assigned. The same interrupt number cannot be used by multiple devices in the device tree. So, it would be assigned to only one device. The other dw watchdog devices would use this assignment, even though it would not be described for them in the dt. The interrupt handler function in dw watchdog checks the interrupt flag. If the interrupt was connected to the first watchdog, and the second or third watchdog signal an interrupt, the interrupt handler of the first device would ignore it because it would not have set the interrupt flag. The watchdog device don't knows anything about the existence of the others devices. 2. The designware watchdog only supports a hardware pause signal. It cannot be paused programmatically. On the mtl platform, there is a separate group of control registers for all per-core watchdogs. There are GPIO-like registers that allows control of a hardware pause signal for subordinate watchdogs. This separate block is shared by all three watchdogs. 3. The base addresses of the subordinate watchdogs are read from the aforementioned control registers. As a result, in the device tree we have only one base address for the intel watchdog, which points to the pause control registers and containing the base addresses of the subordinate devices. Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
2023-01-10 16:35:17 +08:00
source "drivers/watchdog/Kconfig.intel_adsp"
source "drivers/watchdog/Kconfig.smartbond"
source "drivers/watchdog/Kconfig.ti_tps382x"
source "drivers/watchdog/Kconfig.tco"
source "drivers/watchdog/Kconfig.xlnx"
source "drivers/watchdog/Kconfig.ifx_cat1"
source "drivers/watchdog/Kconfig.opentitan"
source "drivers/watchdog/Kconfig.andes_atcwdt200"
source "drivers/watchdog/Kconfig.nxp_fs26"
source "drivers/watchdog/Kconfig.ambiq"
source "drivers/watchdog/Kconfig.shell"
source "drivers/watchdog/Kconfig.max32"
source "drivers/watchdog/Kconfig.xmc4xxx"
source "drivers/watchdog/Kconfig.numaker"
source "drivers/watchdog/Kconfig.ene"
source "drivers/watchdog/Kconfig.litex"
endif # WATCHDOG