From: "Herve Codina (Schneider Electric)" <herve.codina@bootlin.com>
To: Wim Van Sebroeck <wim@linux-watchdog.org>,
Guenter Roeck <linux@roeck-us.net>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Geert Uytterhoeven <geert+renesas@glider.be>,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>,
Magnus Damm <magnus.damm@gmail.com>,
Wolfram Sang <wsa+renesas@sang-engineering.com>
Cc: linux-watchdog@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
linux-clk@vger.kernel.org,
Pascal Eberhard <pascal.eberhard@se.com>,
Miquel Raynal <miquel.raynal@bootlin.com>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
"Herve Codina (Schneider Electric)" <herve.codina@bootlin.com>
Subject: [PATCH 4/5] clk: renesas: r9a06g032: Introduce a helper to set rsten register
Date: Tue, 10 Mar 2026 18:32:45 +0100 [thread overview]
Message-ID: <20260310173249.161354-5-herve.codina@bootlin.com> (raw)
In-Reply-To: <20260310173249.161354-1-herve.codina@bootlin.com>
The rsten register is part of the system controller address range.
This register controls the reset sources allowed to reset the system.
Among them, watchdogs can be configured to be able to perform this
reset.
Introduce a new helper r9a06g032_sysctrl_enable_rst() in order to set
specific sources in the rsten register from the watchdog driver.
Signed-off-by: Herve Codina (Schneider Electric) <herve.codina@bootlin.com>
---
drivers/clk/renesas/r9a06g032-clocks.c | 32 +++++++++++++++++++
include/linux/soc/renesas/r9a06g032-sysctrl.h | 12 +++++++
2 files changed, 44 insertions(+)
diff --git a/drivers/clk/renesas/r9a06g032-clocks.c b/drivers/clk/renesas/r9a06g032-clocks.c
index 7407a4183a6c..517d46ff150e 100644
--- a/drivers/clk/renesas/r9a06g032-clocks.c
+++ b/drivers/clk/renesas/r9a06g032-clocks.c
@@ -705,6 +705,38 @@ int r9a06g032_sysctrl_set_dmamux(u32 mask, u32 val)
}
EXPORT_SYMBOL_GPL(r9a06g032_sysctrl_set_dmamux);
+int r9a06g032_sysctrl_enable_rst(enum r9a06g032_sysctrl_rst_src rst_src)
+{
+ unsigned long flags;
+ u32 rsten;
+ u32 val;
+
+ switch (rst_src) {
+ case R9A06G032_RST_WATCHDOG_CA7_0:
+ val = R9A06G032_SYSCTRL_WDA7RST_0;
+ break;
+
+ case R9A06G032_RST_WATCHDOG_CA7_1:
+ val = R9A06G032_SYSCTRL_WDA7RST_1;
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ if (!sysctrl_priv)
+ return -EPROBE_DEFER;
+
+ spin_lock_irqsave(&sysctrl_priv->lock, flags);
+
+ rsten = readl(sysctrl_priv->reg + R9A06G032_SYSCTRL_RSTEN);
+ writel(rsten | val, sysctrl_priv->reg + R9A06G032_SYSCTRL_RSTEN);
+
+ spin_unlock_irqrestore(&sysctrl_priv->lock, flags);
+
+ return 0;
+}
+EXPORT_SYMBOL_GPL(r9a06g032_sysctrl_enable_rst);
+
static void clk_rdesc_set(struct r9a06g032_priv *clocks,
struct regbit rb, unsigned int on)
{
diff --git a/include/linux/soc/renesas/r9a06g032-sysctrl.h b/include/linux/soc/renesas/r9a06g032-sysctrl.h
index 066dfb15cbdd..25542b49eb55 100644
--- a/include/linux/soc/renesas/r9a06g032-sysctrl.h
+++ b/include/linux/soc/renesas/r9a06g032-sysctrl.h
@@ -4,8 +4,20 @@
#ifdef CONFIG_CLK_R9A06G032
int r9a06g032_sysctrl_set_dmamux(u32 mask, u32 val);
+
+enum r9a06g032_sysctrl_rst_src {
+ R9A06G032_RST_WATCHDOG_CA7_0,
+ R9A06G032_RST_WATCHDOG_CA7_1,
+};
+
+int r9a06g032_sysctrl_enable_rst(enum r9a06g032_sysctrl_rst_src rst_src);
+
#else
static inline int r9a06g032_sysctrl_set_dmamux(u32 mask, u32 val) { return -ENODEV; }
+static inline int r9a06g032_sysctrl_enable_rst(enum r9a06g032_sysctrl_rst_src rst_src)
+{
+ return -ENODEV;
+}
#endif
#endif /* __LINUX_SOC_RENESAS_R9A06G032_SYSCTRL_H__ */
--
2.53.0
next prev parent reply other threads:[~2026-03-10 17:33 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-10 17:32 [PATCH 0/5] watchdog: rzn1: Add support for direct hardware reset Herve Codina (Schneider Electric)
2026-03-10 17:32 ` [PATCH 1/5] watchdog: rzn1: Fix reverse xmas tree declaration Herve Codina (Schneider Electric)
2026-03-10 17:32 ` [PATCH 2/5] watchdog: rzn1: Use dev_err_probe() Herve Codina (Schneider Electric)
2026-03-10 17:32 ` [PATCH 3/5] dt-bindings: watchdog: renesas,rzn1-wdt: Document the reset line Herve Codina (Schneider Electric)
2026-03-10 17:38 ` Krzysztof Kozlowski
2026-03-10 18:12 ` Herve Codina
2026-03-10 20:14 ` Krzysztof Kozlowski
2026-03-10 17:32 ` Herve Codina (Schneider Electric) [this message]
2026-03-10 17:32 ` [PATCH 5/5] watchdog: rzn1: Add support for direct hardware reset Herve Codina (Schneider Electric)
2026-03-11 2:12 ` kernel test robot
2026-03-11 6:07 ` kernel test robot
2026-03-10 21:53 ` [PATCH 0/5] " Wolfram Sang
2026-03-11 15:09 ` Herve Codina
2026-03-11 15:27 ` Wolfram Sang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260310173249.161354-5-herve.codina@bootlin.com \
--to=herve.codina@bootlin.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=geert+renesas@glider.be \
--cc=krzk+dt@kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=magnus.damm@gmail.com \
--cc=miquel.raynal@bootlin.com \
--cc=mturquette@baylibre.com \
--cc=pascal.eberhard@se.com \
--cc=robh@kernel.org \
--cc=sboyd@kernel.org \
--cc=thomas.petazzoni@bootlin.com \
--cc=wim@linux-watchdog.org \
--cc=wsa+renesas@sang-engineering.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox