This series is an attempt at expanding the wdt-uclass provided watchdog_reset() to handle all DM watchdogs, not just the first one. As a sort of nice side effect, it turns out that doing that makes wdt-uclass fit better into the uclass model, in that we now do the work that was previously done in the ad hoc initr_watchdog for one device in .pre_probe and .post_probe hooks instead.
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.villem...@prevas.dk/ Changes in v3: - Rebase to master (b7ad721c83) - Add various R-b tags from Stefan and Simon - Add comments to members of struct wdt_priv in patches 2 and 5. - Change a newly introduced printf(), for failing uclass_get(), in patch 7 to log_debug (but keep existing printfs as-is, apart from the inclusion of device names). - Add another log_debug in patch 7 if device probing fails. - Add comment before uclass_foreach_dev() loop in watchdog_reset(), and furthermore include a device_active() check inside the loop. - Drop unneeded <common.h> include in patch 8. - Use timer_test_add_offset() instead of mdelay() in patch 10. 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 | 172 ++++++++++++------ include/asm-generic/global_data.h | 6 - test/dm/wdt.c | 90 ++++++++- 10 files changed, 316 insertions(+), 61 deletions(-) create mode 100644 doc/device-tree-bindings/watchdog/gpio-wdt.txt create mode 100644 drivers/watchdog/gpio_wdt.c -- 2.31.1