
On 04.11.21 04:55, Samuel Holland wrote:
Currently, the wdt_reboot driver always gets its watchdog device reference from an OF node. This prevents selecting a watchdog at runtime. Move the watchdog device reference to the plat data, so the driver can be bound with the reference pre-provided. The reference will still be acquired from the OF node if it is not already provided.
Reviewed-by: Heinrich Schuchardt heinrich.schuchardt@canonical.com Reviewed-by: Simon Glass sjg@chromium.org Signed-off-by: Samuel Holland samuel@sholland.org
Reviewed-by: Stefan Roese sr@denx.de
Thanks, Stefan
(no changes since v1)
drivers/sysreset/sysreset_watchdog.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/sysreset/sysreset_watchdog.c b/drivers/sysreset/sysreset_watchdog.c index c7ae368d41..b723f5647c 100644 --- a/drivers/sysreset/sysreset_watchdog.c +++ b/drivers/sysreset/sysreset_watchdog.c @@ -9,16 +9,16 @@ #include <sysreset.h> #include <wdt.h>
-struct wdt_reboot_priv { +struct wdt_reboot_plat { struct udevice *wdt; };
static int wdt_reboot_request(struct udevice *dev, enum sysreset_t type) {
- struct wdt_reboot_priv *priv = dev_get_priv(dev);
- struct wdt_reboot_plat *plat = dev_get_plat(dev); int ret;
- ret = wdt_expire_now(priv->wdt, 0);
- ret = wdt_expire_now(plat->wdt, 0); if (ret) return ret;
@@ -29,13 +29,13 @@ static struct sysreset_ops wdt_reboot_ops = { .request = wdt_reboot_request, };
-static int wdt_reboot_probe(struct udevice *dev) +static int wdt_reboot_of_to_plat(struct udevice *dev) {
- struct wdt_reboot_priv *priv = dev_get_priv(dev);
struct wdt_reboot_plat *plat = dev_get_plat(dev); int err;
err = uclass_get_device_by_phandle(UCLASS_WDT, dev,
"wdt", &priv->wdt);
if (err) { pr_err("unable to find wdt device\n"); return err;"wdt", &plat->wdt);
@@ -53,7 +53,7 @@ U_BOOT_DRIVER(wdt_reboot) = { .name = "wdt_reboot", .id = UCLASS_SYSRESET, .of_match = wdt_reboot_ids,
- .of_to_plat = wdt_reboot_of_to_plat,
- .plat_auto = sizeof(struct wdt_reboot_plat), .ops = &wdt_reboot_ops,
- .priv_auto = sizeof(struct wdt_reboot_priv),
- .probe = wdt_reboot_probe, };
Viele Grüße, Stefan