zephyr/drivers/watchdog/CMakeLists.txt

40 lines
2.0 KiB
CMake
Raw Normal View History

# SPDX-License-Identifier: Apache-2.0
zephyr_library()
zephyr_library_sources_ifdef(CONFIG_IWDG_STM32 wdt_iwdg_stm32.c)
zephyr_library_sources_ifdef(CONFIG_WWDG_STM32 wdt_wwdg_stm32.c)
zephyr_library_sources_ifdef(CONFIG_FWDGT_GD32 wdt_fwdgt_gd32.c)
zephyr_library_sources_ifdef(CONFIG_WWDGT_GD32 wdt_wwdgt_gd32.c)
zephyr_library_sources_ifdef(CONFIG_WDOG_CMSDK_APB wdt_cmsdk_apb.c)
zephyr_library_sources_ifdef(CONFIG_WDT_CC32XX wdt_cc32xx.c)
zephyr_library_sources_ifdef(CONFIG_WDT_CC13XX_CC26XX wdt_cc13xx_cc26xx.c)
zephyr_library_sources_ifdef(CONFIG_WDT_ESP32 wdt_esp32.c)
zephyr_library_sources_ifdef(CONFIG_WDT_GECKO wdt_gecko.c)
zephyr_library_sources_ifdef(CONFIG_WDT_ITE_IT8XXX2 wdt_ite_it8xxx2.c)
zephyr_library_sources_ifdef(CONFIG_WDT_MCUX_IMX_WDOG wdt_mcux_imx_wdog.c)
zephyr_library_sources_ifdef(CONFIG_WDT_MCUX_WDOG wdt_mcux_wdog.c)
zephyr_library_sources_ifdef(CONFIG_WDT_MCUX_WDOG32 wdt_mcux_wdog32.c)
zephyr_library_sources_ifdef(CONFIG_WDT_MCUX_WWDT wdt_mcux_wwdt.c)
zephyr_library_sources_ifdef(CONFIG_WDT_NPCX wdt_npcx.c)
zephyr_library_sources_ifdef(CONFIG_WDT_NPM6001 wdt_npm6001.c)
zephyr_library_sources_ifdef(CONFIG_WDT_NRFX wdt_nrfx.c)
zephyr_library_sources_ifdef(CONFIG_WDT_RPI_PICO wdt_rpi_pico.c)
zephyr_library_sources_ifdef(CONFIG_WDT_SAM wdt_sam.c)
zephyr_library_sources_ifdef(CONFIG_WDT_SAM0 wdt_sam0.c)
zephyr_library_sources_ifdef(CONFIG_WDT_SIFIVE wdt_sifive.c)
zephyr_library_sources_ifdef(CONFIG_WDT_TCO wdt_tco.c)
zephyr_library_sources_ifdef(CONFIG_WDT_XEC wdt_mchp_xec.c)
zephyr_library_sources_ifdef(CONFIG_WDT_COUNTER wdt_counter.c)
zephyr_library_sources_ifdef(CONFIG_WDT_NXP_S32 wdt_nxp_s32.c)
zephyr_library_sources_ifdef(CONFIG_WDT_SMARTBOND wdt_smartbond.c)
zephyr_library_sources_ifdef(CONFIG_WDT_TI_TPS382X wdt_ti_tps382x.c)
zephyr_library_sources_ifdef(CONFIG_WDT_DW wdt_dw.c wdt_dw_common.c)
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
zephyr_library_sources_ifdef(CONFIG_WDT_INTEL_ADSP wdt_intel_adsp.c wdt_dw_common.c)
zephyr_library_sources_ifdef(CONFIG_USERSPACE wdt_handlers.c)