[RFC PATCH 6/9] watchdog: rzv2h: Refactor WDTDCR start/stop handling
From: Prabhakar
Date: Mon May 11 2026 - 14:52:05 EST
From: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
Refactor the WDTDCR start/stop helpers by introducing a common
rzt2h_wdt_wdtdcr_count_ctrl() function that controls the WDTSTOPCTRL
bit based on a boolean parameter.
This is in preparation for switching WDTDCR access to regmap-based
handling, where consolidating the control path simplifies the
conversion.
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
---
drivers/watchdog/rzv2h_wdt.c | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/drivers/watchdog/rzv2h_wdt.c b/drivers/watchdog/rzv2h_wdt.c
index 3b6abb66a1da..e9545b8f5fd0 100644
--- a/drivers/watchdog/rzv2h_wdt.c
+++ b/drivers/watchdog/rzv2h_wdt.c
@@ -89,18 +89,26 @@ static int rzv2h_wdt_ping(struct watchdog_device *wdev)
return 0;
}
-static void rzt2h_wdt_wdtdcr_count_stop(struct rzv2h_wdt_priv *priv)
+static void rzt2h_wdt_wdtdcr_count_ctrl(struct rzv2h_wdt_priv *priv, bool start)
{
u32 reg = readl(priv->wdtdcr + WDTDCR);
- writel(reg | WDTDCR_WDTSTOPCTRL, priv->wdtdcr + WDTDCR);
+ if (start)
+ reg &= ~WDTDCR_WDTSTOPCTRL;
+ else
+ reg |= WDTDCR_WDTSTOPCTRL;
+
+ writel(reg, priv->wdtdcr + WDTDCR);
}
-static void rzt2h_wdt_wdtdcr_count_start(struct rzv2h_wdt_priv *priv)
+static void rzt2h_wdt_wdtdcr_count_stop(struct rzv2h_wdt_priv *priv)
{
- u32 reg = readl(priv->wdtdcr + WDTDCR);
+ rzt2h_wdt_wdtdcr_count_ctrl(priv, false);
+}
- writel(reg & ~WDTDCR_WDTSTOPCTRL, priv->wdtdcr + WDTDCR);
+static void rzt2h_wdt_wdtdcr_count_start(struct rzv2h_wdt_priv *priv)
+{
+ rzt2h_wdt_wdtdcr_count_ctrl(priv, true);
}
static void rzv2h_wdt_setup(struct watchdog_device *wdev, u16 wdtcr)
--
2.54.0