[U-Boot] [PATCH 2/2 v2] watchdog: cadence: Remove driver specific "timeout-sec" handling

Michal Simek michal.simek at xilinx.com
Tue Apr 9 10:44:09 UTC 2019


On 08. 04. 19 11:28, Stefan Roese wrote:
> Now that we have a generic DT property "timeout-sec" handling, the
> driver specific implementation can be dropped.
> 
> This patch also changes the timeout restriction to the min and max
> values (clipping). Before this patch, the value provided via
> "timeout-sec" was used if the parameter was too high or low. Now
> the driver specific min and max values are used instead.
> 
> Signed-off-by: Stefan Roese <sr at denx.de>
> Cc: Michal Simek <michal.simek at xilinx.com>
> ---
> v2:
> - New patch
> 
>  drivers/watchdog/cdns_wdt.c | 13 ++++---------
>  1 file changed, 4 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/watchdog/cdns_wdt.c b/drivers/watchdog/cdns_wdt.c
> index fc85fbcec2..3ba3c8501c 100644
> --- a/drivers/watchdog/cdns_wdt.c
> +++ b/drivers/watchdog/cdns_wdt.c
> @@ -23,7 +23,6 @@ struct cdns_regs {
>  
>  struct cdns_wdt_priv {
>  	bool rst;
> -	u32 timeout;
>  	struct cdns_regs *regs;
>  };
>  
> @@ -142,10 +141,9 @@ static int cdns_wdt_start(struct udevice *dev, u64 timeout, ulong flags)
>  		return -1;
>  	}
>  
> -	if ((timeout < CDNS_WDT_MIN_TIMEOUT) ||
> -	    (timeout > CDNS_WDT_MAX_TIMEOUT)) {
> -		timeout = priv->timeout;
> -	}

here should be timeout /= 1000;
because the whole timeout is handled in seconds not miliseconds.

> +	/* Restrict timeout to min and max value */
> +	timeout = max_t(u64, timeout, CDNS_WDT_MIN_TIMEOUT);
> +	timeout = min_t(u64, timeout, CDNS_WDT_MAX_TIMEOUT);
>  
>  	debug("%s: CLK_FREQ %ld, timeout %lld\n", __func__, clk_f, timeout);
>  
> @@ -235,12 +233,9 @@ static int cdns_wdt_ofdata_to_platdata(struct udevice *dev)
>  	if (IS_ERR(priv->regs))
>  		return PTR_ERR(priv->regs);
>  
> -	priv->timeout = dev_read_u32_default(dev, "timeout-sec",
> -					     CDNS_WDT_DEFAULT_TIMEOUT);
> -
>  	priv->rst = dev_read_bool(dev, "reset-on-timeout");
>  
> -	debug("%s: timeout %d, reset %d\n", __func__, priv->timeout, priv->rst);
> +	debug("%s: reset %d\n", __func__, priv->rst);
>  
>  	return 0;
>  }
> 

M



More information about the U-Boot mailing list