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

Michal Simek michal.simek at xilinx.com
Fri Apr 12 08:17:42 UTC 2019


On 11. 04. 19 15:58, 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>
> ---
> v4:
> - No Change
> 
> v3:
> - Divide timeout in _start() by 1000 to get value in seconds
> 
> v2:
> - New patch
> 
>  drivers/watchdog/cdns_wdt.c | 15 ++++++---------
>  1 file changed, 6 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/watchdog/cdns_wdt.c b/drivers/watchdog/cdns_wdt.c
> index fc85fbcec2..6a608b6371 100644
> --- a/drivers/watchdog/cdns_wdt.c
> +++ b/drivers/watchdog/cdns_wdt.c
> @@ -10,6 +10,7 @@
>  #include <dm.h>
>  #include <wdt.h>
>  #include <clk.h>
> +#include <div64.h>
>  #include <linux/io.h>
>  
>  DECLARE_GLOBAL_DATA_PTR;
> @@ -23,7 +24,6 @@ struct cdns_regs {
>  
>  struct cdns_wdt_priv {
>  	bool rst;
> -	u32 timeout;
>  	struct cdns_regs *regs;
>  };
>  
> @@ -142,10 +142,10 @@ 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;
> -	}
> +	/* Calculate timeout in seconds and restrict to min and max value */
> +	do_div(timeout, 1000);
> +	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 +235,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;
>  }
> 

Reviewed-by: Michal Simek <michal.simek at xilinx.com>
Tested-by: Michal Simek <michal.simek at xilinx.com> (on zcu100)

Thanks,
Michal


More information about the U-Boot mailing list