summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorRasmus Villemoes <rasmus.villemoes@prevas.dk>2021-08-19 11:57:03 +0200
committerStefan Roese <sr@denx.de>2021-08-31 12:04:03 +0200
commit492ee6b8d0e780a2ded5d9df7efc916eb4913734 (patch)
tree883f8efe008fd52f02dfb7649c980316b5abb6ac /include
parent1c5aedcd9ac419199983e5e0ef398170843f6976 (diff)
downloadu-boot-492ee6b8d0e780a2ded5d9df7efc916eb4913734.tar.gz
u-boot-492ee6b8d0e780a2ded5d9df7efc916eb4913734.tar.bz2
u-boot-492ee6b8d0e780a2ded5d9df7efc916eb4913734.zip
watchdog: wdt-uclass.c: handle all DM watchdogs in watchdog_reset()
A board can have and make use of more than one watchdog device, say one built into the SOC and an external gpio-petted one. Having wdt-uclass only handle the first is both a little arbitrary and unexpected. So change initr_watchdog() so we visit (probe) all DM watchdog devices, and call the init_watchdog_dev helper for each. Similarly let watchdog_reset() loop over the whole uclass - each having their own ratelimiting metadata, and a separate "is this device running" flag. This gets rid of the watchdog_dev member of struct global_data. We do, however, still need the GD_FLG_WDT_READY set in initr_watchdog(). This is because watchdog_reset() can get called before DM is ready, and I don't think we can call uclass_get() that early. The current code just returns 0 if "getting" the first device fails - that can of course happen because there are no devices, but it could also happen if its ->probe call failed. In keeping with that, continue with the handling of the remaining devices even if one fails to probe. This is also why we cannot use uclass_probe_all(). If desired, it's possible to later add a per-device "u-boot,autostart" boolean property, so that one can do CONFIG_WATCHDOG_AUTOSTART per-device. Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Stefan Roese <sr@denx.de> Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Diffstat (limited to 'include')
-rw-r--r--include/asm-generic/global_data.h6
1 files changed, 0 insertions, 6 deletions
diff --git a/include/asm-generic/global_data.h b/include/asm-generic/global_data.h
index a4cf7fd58c..16fd305a65 100644
--- a/include/asm-generic/global_data.h
+++ b/include/asm-generic/global_data.h
@@ -447,12 +447,6 @@ struct global_data {
*/
fdt_addr_t translation_offset;
#endif
-#if CONFIG_IS_ENABLED(WDT)
- /**
- * @watchdog_dev: watchdog device
- */
- struct udevice *watchdog_dev;
-#endif
#ifdef CONFIG_GENERATE_ACPI_TABLE
/**
* @acpi_ctx: ACPI context pointer