[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