
This series is an attempt at expanding the wdt-uclass provided watchdog_reset() to handle all DM watchdogs, not just the first one. Some of the ad hoc work done for the first DM watchdog in initr_watchdog() is now moved to a .pre_probe hook so it is automatically done for all devices.
It also includes a patch adding a driver for a gpio-petted watchdog device (and a sandbox test of that) - it is included here because that also gives a relatively easy way to have more than one (kind of) watchdog device in the sandbox, which is then used at the end to test that watchdog_reset() behaves as expected.
v2 here: https://lore.kernel.org/u-boot/20210527220017.1266765-1-rasmus.villemoes@pre...
v3 here: https://lore.kernel.org/u-boot/20210702124510.124401-1-rasmus.villemoes@prev...
Changes in v4:
- Do not make init_watchdog_dev() into a .post_probe hook, but call it from within the probing loop in initr_watchdog().
Rasmus Villemoes (10): watchdog: wdt-uclass.c: use wdt_start() in wdt_expire_now() watchdog: wdt-uclass.c: introduce struct wdt_priv watchdog: wdt-uclass.c: neaten UCLASS_DRIVER definition watchdog: wdt-uclass.c: refactor initr_watchdog() watchdog: wdt-uclass.c: keep track of each device's running state sandbox: disable CONFIG_WATCHDOG_AUTOSTART watchdog: wdt-uclass.c: handle all DM watchdogs in watchdog_reset() watchdog: add gpio watchdog driver sandbox: add test of wdt_gpio driver sandbox: add test of wdt-uclass' watchdog_reset()
arch/sandbox/dts/test.dts | 8 + configs/sandbox64_defconfig | 2 + configs/sandbox_defconfig | 2 + .../watchdog/gpio-wdt.txt | 19 ++ drivers/watchdog/Kconfig | 9 + drivers/watchdog/Makefile | 1 + drivers/watchdog/gpio_wdt.c | 68 +++++++ drivers/watchdog/wdt-uclass.c | 167 ++++++++++++------ include/asm-generic/global_data.h | 6 - test/dm/wdt.c | 90 +++++++++- 10 files changed, 314 insertions(+), 58 deletions(-) create mode 100644 doc/device-tree-bindings/watchdog/gpio-wdt.txt create mode 100644 drivers/watchdog/gpio_wdt.c