[PATCH v6 00/12] handling all DM watchdogs in watchdog_reset()

Rasmus Villemoes
2021-08-19T09:57:26Z

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: https://lore.kernel.org/u-boot/20210527220017.1266765-1-rasmus.villemoes@prevas.dk/

v3: https://lore.kernel.org/u-boot/20210702124510.124401-1-rasmus.villemoes@prevas.dk/

v4: https://lore.kernel.org/u-boot/20210802150016.588750-1-rasmus.villemoes@prevas.dk/

v5: https://lore.kernel.org/u-boot/20210811124800.2593226-1-rasmus.villemoes@prevas.dk/

Changes in v6: Make wdt_stop_all() return the first error encountered
(if any), yet still visit all watchdog devices.

Rasmus Villemoes (12):
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: add wdt_stop_all() helper
board: x530: switch to wdt_stop_all()
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 +
board/alliedtelesis/x530/x530.c | 5 +-
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 | 192 +++++++++++++-----
include/asm-generic/global_data.h | 6 -
include/wdt.h | 8 +
test/dm/wdt.c | 90 +++++++-
12 files changed, 349 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