On 21.11.24 09:03, A. Sverdlin wrote:
From: Alexander Sverdlin <[email protected]>

The hack itself seems to be copied from Linux rti_wdt.c, but the WDT reset
principle is different in U-Boot. While Linux relies on correct frequencies
and timers and doesn't check the actual WDT counter value U-Boot driver
seems to be more robust: it does compare RTIDWDCNTR vs RTIDWDPRLD.

Now the root cause of the original motivation to manipulate the clock rate
is said to be understood and fixed in Linux commit cae58516534e
("watchdog: rti_wdt: Set min_hw_heartbeat_ms to accommodate a safety margin")
which simultaneously removed the hack itself.

While is fix part of the mentioned patch is neither applicable nor requried
for the U-Boot driver just drop the hack setting WDT clock rate to 90% of
the real rate. This has a nice effect that the WDT timeout is now as
requested and not 10% shorter.

Signed-off-by: Alexander Sverdlin <[email protected]>
Reviewed-by: Jan Kiszka <[email protected]>

Applied to u-boot-watchdog/master

Thanks,
Stefan

---
Changelog:
v2: 2 typos pointed by Jan corrected

  drivers/watchdog/rti_wdt.c | 8 --------
  1 file changed, 8 deletions(-)

diff --git a/drivers/watchdog/rti_wdt.c b/drivers/watchdog/rti_wdt.c
index 99168d0cad03..f806e24e53da 100644
--- a/drivers/watchdog/rti_wdt.c
+++ b/drivers/watchdog/rti_wdt.c
@@ -186,14 +186,6 @@ static int rti_wdt_probe(struct udevice *dev)
priv->clk_hz = clk_get_rate(&clk); - /*
-        * If watchdog is running at 32k clock, it is not accurate.
-        * Adjust frequency down in this case so that it does not expire
-        * earlier than expected.
-        */
-       if (priv->clk_hz < 32768)
-               priv->clk_hz = priv->clk_hz * 9 / 10;
-
        return 0;
  }

Viele Grüße,
Stefan Roese

--
DENX Software Engineering GmbH,      Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: [email protected]

Reply via email to