[PATCH v3 3/6] sysreset: watchdog: Move watchdog reference to plat data
Stefan Roese
sr at denx.de
Thu Nov 4 08:46:56 CET 2021
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 at canonical.com>
> Reviewed-by: Simon Glass <sjg at chromium.org>
> Signed-off-by: Samuel Holland <samuel at sholland.org>
Reviewed-by: Stefan Roese <sr at 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);
> + "wdt", &plat->wdt);
> if (err) {
> pr_err("unable to find wdt device\n");
> return err;
> @@ -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
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de
More information about the U-Boot
mailing list