[PATCH 1/3] watchdog: rzv2h: Refactor WDTDCR start/stop handling
Prabhakar <[email protected]>
| Newsgroups | org.kernel.vger.linux-watchdog,org.kernel.vger.linux-kernel,org.kernel.vger.linux-renesas-soc |
|---|---|
| Message-ID | <[email protected]> |
From: Lad Prabhakar <[email protected]> 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 <[email protected]> --- 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