zephyr/drivers/watchdog
Adrian Warecki ea405eb49e 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-03-29 09:45:49 -04:00
..
CMakeLists.txt drivers: wdt: Add wdt_intel_adsp driver 2023-03-29 09:45:49 -04:00
Kconfig drivers: wdt: Add wdt_intel_adsp driver 2023-03-29 09:45:49 -04:00
Kconfig.cc13xx_cc26xx drivers: ti: cc13xx/cc26xx: implement watchdog timer 2023-01-31 16:08:00 -05:00
Kconfig.cc32xx drivers: watchdog: Update drivers to use devicetree Kconfig symbol 2022-07-22 14:06:00 +00:00
Kconfig.cmsdk_apb drivers: watchdog: Update drivers to use devicetree Kconfig symbol 2022-07-22 14:06:00 +00:00
Kconfig.dw drivers: watchdog: Add a new driver for Synopsys DesignWare watchdog 2023-02-19 20:42:52 -05:00
Kconfig.esp32 drivers: watchdog: Update drivers to use devicetree Kconfig symbol 2022-07-22 14:06:00 +00:00
Kconfig.gd32 drivers: watchdog: Add GD32 Window watchdog timer driver 2022-10-03 18:07:16 +02:00
Kconfig.gecko drivers: watchdog: Update drivers to use devicetree Kconfig symbol 2022-07-22 14:06:00 +00:00
Kconfig.intel_adsp drivers: wdt: Add wdt_intel_adsp driver 2023-03-29 09:45:49 -04:00
Kconfig.it8xxx2 drivers: watchdog: Update drivers to use devicetree Kconfig symbol 2022-07-22 14:06:00 +00:00
Kconfig.mcux drivers: watchdog: Update drivers to use devicetree Kconfig symbol 2022-07-22 14:06:00 +00:00
Kconfig.mcux_imx drivers: watchdog: Update drivers to use devicetree Kconfig symbol 2022-07-22 14:06:00 +00:00
Kconfig.npcx drivers: watchdog: Update drivers to use devicetree Kconfig symbol 2022-07-22 14:06:00 +00:00
Kconfig.npm6001 drivers: watchdog: npm6001: initial version 2022-11-22 11:05:19 +01:00
Kconfig.nrfx drivers: watchdog: Update drivers to use devicetree Kconfig symbol 2022-07-22 14:06:00 +00:00
Kconfig.nxp_s32 drivers: watchdog: add support for NXP S32 S32ZE 2022-12-27 10:36:42 +01:00
Kconfig.rpi_pico drivers: watchdog: Update drivers to use devicetree Kconfig symbol 2022-07-22 14:06:00 +00:00
Kconfig.sam drivers: watchdog: Update drivers to use devicetree Kconfig symbol 2022-07-22 14:06:00 +00:00
Kconfig.sam0 drivers: watchdog: Update drivers to use devicetree Kconfig symbol 2022-07-22 14:06:00 +00:00
Kconfig.sifive drivers: watchdog: Update drivers to use devicetree Kconfig symbol 2022-07-22 14:06:00 +00:00
Kconfig.smartbond drivers: watchdog: implement Smartbond watchdog driver 2023-03-03 11:02:37 +01:00
Kconfig.stm32 drivers: watchdog: Update drivers to use devicetree Kconfig symbol 2022-07-22 14:06:00 +00:00
Kconfig.tco drivers: watchdog: Add Intel TCO Watchdog driver 2023-03-22 11:38:59 +01:00
Kconfig.ti_tps382x drivers: watchdog: Add TI TPS382x driver 2023-03-21 09:35:58 +01:00
Kconfig.xec drivers: watchdog: Update drivers to use devicetree Kconfig symbol 2022-07-22 14:06:00 +00:00
wdt_cc13xx_cc26xx.c drivers: ti: cc13xx/cc26xx: implement watchdog timer 2023-01-31 16:08:00 -05:00
wdt_cc32xx.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
wdt_cmsdk_apb.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
wdt_counter.c drivers: watchdog: Make SOC reset as an option in counter watchdog 2023-01-09 10:15:33 +01:00
wdt_dw.c wdt: dw: Extraction of common functions from the wdt_dw driver 2023-03-29 09:45:49 -04:00
wdt_dw.h drivers: watchdog: Add a new driver for Synopsys DesignWare watchdog 2023-02-19 20:42:52 -05:00
wdt_dw_common.c wdt: dw: Extraction of common functions from the wdt_dw driver 2023-03-29 09:45:49 -04:00
wdt_dw_common.h wdt: dw: Extraction of common functions from the wdt_dw driver 2023-03-29 09:45:49 -04:00
wdt_esp32.c drivers: watchdog: check if clock device is ready before accessing 2022-08-09 17:16:16 +02:00
wdt_fwdgt_gd32.c include: add missing sys_clock.h include 2022-10-11 18:05:17 +02:00
wdt_gecko.c drivers: watchdog: Enable Gecko wdt driver efr32bg_sltb010a 2023-01-20 12:22:56 +01:00
wdt_handlers.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
wdt_intel_adsp.c drivers: wdt: Add wdt_intel_adsp driver 2023-03-29 09:45:49 -04:00
wdt_intel_adsp.h drivers: wdt: Add wdt_intel_adsp driver 2023-03-29 09:45:49 -04:00
wdt_ite_it8xxx2.c include: fix includes for IT8xxx2 SoC 2022-10-12 16:10:05 -04:00
wdt_iwdg_stm32.c drivers: watchdog: add watchdog support on STM32C0-series 2023-03-20 10:19:29 +00:00
wdt_iwdg_stm32.h drivers: watchdog: stm32 iwdt enable and update during setup 2023-01-30 15:05:39 +00:00
wdt_mchp_xec.c arm: add missing includes 2022-10-11 18:37:53 -04:00
wdt_mcux_imx_wdog.c include: add missing zephyr/sys_clock.h 2022-10-20 22:52:09 +09:00
wdt_mcux_wdog.c include: add missing irq.h include 2022-10-11 18:05:17 +02:00
wdt_mcux_wdog32.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
wdt_mcux_wwdt.c include: add missing sys_clock.h include 2022-10-11 18:05:17 +02:00
wdt_npcx.c include: fix includes for NPCX drivers 2022-10-12 16:10:05 -04:00
wdt_npm6001.c drivers: watchdog: npm6001: initial version 2022-11-22 11:05:19 +01:00
wdt_nrfx.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
wdt_nxp_s32.c drivers: watchdog: add support for NXP S32 S32ZE 2022-12-27 10:36:42 +01:00
wdt_rpi_pico.c drivers: watchdog: Fix RP2040 watchdog load time 2023-01-24 19:01:34 -08:00
wdt_sam.c include: add missing irq.h include 2022-10-11 18:05:17 +02:00
wdt_sam0.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
wdt_sifive.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
wdt_smartbond.c drivers: watchdog: implement Smartbond watchdog driver 2023-03-03 11:02:37 +01:00
wdt_tco.c drivers: watchdog: Add Intel TCO Watchdog driver 2023-03-22 11:38:59 +01:00
wdt_ti_tps382x.c drivers: watchdog: Add TI TPS382x driver 2023-03-21 09:35:58 +01:00
wdt_wwdg_stm32.c drivers: watchdog: add watchdog support on STM32C0-series 2023-03-20 10:19:29 +00:00
wdt_wwdg_stm32.h drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
wdt_wwdgt_gd32.c include: add missing sys_clock.h include 2022-10-11 18:05:17 +02:00