[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