* [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support
@ 2024-12-18 12:23 Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 01/10] clk: renesas: r9a08g045: Add clock and reset support for watchdog Claudiu
` (11 more replies)
0 siblings, 12 replies; 14+ messages in thread
From: Claudiu @ 2024-12-18 12:23 UTC (permalink / raw)
To: nobuhiro1.iwamatsu, pavel
Cc: claudiu.beznea, cip-dev, biju.das.jz, prabhakar.mahadev-lad.rj
From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Series backports the watchdog support for the Renesas RZ/G3S SoC.
Thank you,
Claudiu Beznea
Claudiu Beznea (10):
clk: renesas: r9a08g045: Add clock and reset support for watchdog
watchdog: rzg2l_wdt: Use pm_runtime_resume_and_get()
watchdog: rzg2l_wdt: Check return status of pm_runtime_put()
watchdog: rzg2l_wdt: Remove reset de-assert from probe
watchdog: rzg2l_wdt: Remove comparison with zero
watchdog: rzg2l_wdt: Rely on the reset driver for doing proper reset
watchdog: rzg2l_wdt: Add suspend/resume support
watchdog: rzg2l_wdt: Power on the watchdog domain in the restart
handler
arm64: dts: renesas: r9a08g045: Add watchdog node
arm64: dts: renesas: rzg3s-smarc-som: Enable the watchdog interface
arch/arm64/boot/dts/renesas/r9a08g045.dtsi | 14 ++
.../boot/dts/renesas/rzg3s-smarc-som.dtsi | 5 +
drivers/clk/renesas/r9a08g045-cpg.c | 3 +
drivers/watchdog/rzg2l_wdt.c | 133 +++++++++++-------
4 files changed, 103 insertions(+), 52 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 14+ messages in thread
* [cip dev][PATCH 5.10.y-cip 01/10] clk: renesas: r9a08g045: Add clock and reset support for watchdog
2024-12-18 12:23 [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support Claudiu
@ 2024-12-18 12:23 ` Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 02/10] watchdog: rzg2l_wdt: Use pm_runtime_resume_and_get() Claudiu
` (10 subsequent siblings)
11 siblings, 0 replies; 14+ messages in thread
From: Claudiu @ 2024-12-18 12:23 UTC (permalink / raw)
To: nobuhiro1.iwamatsu, pavel
Cc: claudiu.beznea, cip-dev, biju.das.jz, prabhakar.mahadev-lad.rj
From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
commit 292d3079abf333540fef06c1533d7c21c6d21390 upstream.
RZ/G3S has a watchdog module accessible by the Cortex-A core. Add clock
and reset support for it.
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20240122111115.2861835-2-claudiu.beznea.uj@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
---
drivers/clk/renesas/r9a08g045-cpg.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/clk/renesas/r9a08g045-cpg.c b/drivers/clk/renesas/r9a08g045-cpg.c
index 2582ba95256e..c3e6da2de197 100644
--- a/drivers/clk/renesas/r9a08g045-cpg.c
+++ b/drivers/clk/renesas/r9a08g045-cpg.c
@@ -193,6 +193,8 @@ static const struct rzg2l_mod_clk r9a08g045_mod_clks[] = {
DEF_MOD("ia55_pclk", R9A08G045_IA55_PCLK, R9A08G045_CLK_P2, 0x518, 0),
DEF_MOD("ia55_clk", R9A08G045_IA55_CLK, R9A08G045_CLK_P1, 0x518, 1),
DEF_MOD("dmac_aclk", R9A08G045_DMAC_ACLK, R9A08G045_CLK_P3, 0x52c, 0),
+ DEF_MOD("wdt0_pclk", R9A08G045_WDT0_PCLK, R9A08G045_CLK_P0, 0x548, 0),
+ DEF_MOD("wdt0_clk", R9A08G045_WDT0_CLK, R9A08G045_OSCCLK, 0x548, 1),
DEF_MOD("sdhi0_imclk", R9A08G045_SDHI0_IMCLK, CLK_SD0_DIV4, 0x554, 0),
DEF_MOD("sdhi0_imclk2", R9A08G045_SDHI0_IMCLK2, CLK_SD0_DIV4, 0x554, 1),
DEF_MOD("sdhi0_clk_hs", R9A08G045_SDHI0_CLK_HS, R9A08G045_CLK_SD0, 0x554, 2),
@@ -219,6 +221,7 @@ static const struct rzg2l_reset r9a08g045_resets[] = {
DEF_RST(R9A08G045_GIC600_GICRESET_N, 0x814, 0),
DEF_RST(R9A08G045_GIC600_DBG_GICRESET_N, 0x814, 1),
DEF_RST(R9A08G045_IA55_RESETN, 0x818, 0),
+ DEF_RST(R9A08G045_WDT0_PRESETN, 0x848, 0),
DEF_RST(R9A08G045_SDHI0_IXRST, 0x854, 0),
DEF_RST(R9A08G045_SDHI1_IXRST, 0x854, 1),
DEF_RST(R9A08G045_SDHI2_IXRST, 0x854, 2),
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [cip dev][PATCH 5.10.y-cip 02/10] watchdog: rzg2l_wdt: Use pm_runtime_resume_and_get()
2024-12-18 12:23 [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 01/10] clk: renesas: r9a08g045: Add clock and reset support for watchdog Claudiu
@ 2024-12-18 12:23 ` Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 03/10] watchdog: rzg2l_wdt: Check return status of pm_runtime_put() Claudiu
` (9 subsequent siblings)
11 siblings, 0 replies; 14+ messages in thread
From: Claudiu @ 2024-12-18 12:23 UTC (permalink / raw)
To: nobuhiro1.iwamatsu, pavel
Cc: claudiu.beznea, cip-dev, biju.das.jz, prabhakar.mahadev-lad.rj
From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
commit f0ba0fcdd19943809b1a7f760f77f6673c6aa7f7 upstream.
pm_runtime_get_sync() may return with error. In case it returns with error
dev->power.usage_count needs to be decremented. pm_runtime_resume_and_get()
takes care of this. Thus use it.
Along with it the rzg2l_wdt_set_timeout() function was updated to
propagate the result of rzg2l_wdt_start() to its caller.
Fixes: 2cbc5cd0b55f ("watchdog: Add Watchdog Timer driver for RZ/G2L")
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20240531065723.1085423-4-claudiu.beznea.uj@bp.renesas.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
---
drivers/watchdog/rzg2l_wdt.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/watchdog/rzg2l_wdt.c b/drivers/watchdog/rzg2l_wdt.c
index d404953d0e0f..78d904df5f1e 100644
--- a/drivers/watchdog/rzg2l_wdt.c
+++ b/drivers/watchdog/rzg2l_wdt.c
@@ -123,8 +123,11 @@ static void rzg2l_wdt_init_timeout(struct watchdog_device *wdev)
static int rzg2l_wdt_start(struct watchdog_device *wdev)
{
struct rzg2l_wdt_priv *priv = watchdog_get_drvdata(wdev);
+ int ret;
- pm_runtime_get_sync(wdev->parent);
+ ret = pm_runtime_resume_and_get(wdev->parent);
+ if (ret)
+ return ret;
/* Initialize time out */
rzg2l_wdt_init_timeout(wdev);
@@ -150,6 +153,8 @@ static int rzg2l_wdt_stop(struct watchdog_device *wdev)
static int rzg2l_wdt_set_timeout(struct watchdog_device *wdev, unsigned int timeout)
{
+ int ret = 0;
+
wdev->timeout = timeout;
/*
@@ -159,10 +164,10 @@ static int rzg2l_wdt_set_timeout(struct watchdog_device *wdev, unsigned int time
*/
if (watchdog_active(wdev)) {
rzg2l_wdt_stop(wdev);
- rzg2l_wdt_start(wdev);
+ ret = rzg2l_wdt_start(wdev);
}
- return 0;
+ return ret;
}
static int rzg2l_wdt_restart(struct watchdog_device *wdev,
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [cip dev][PATCH 5.10.y-cip 03/10] watchdog: rzg2l_wdt: Check return status of pm_runtime_put()
2024-12-18 12:23 [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 01/10] clk: renesas: r9a08g045: Add clock and reset support for watchdog Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 02/10] watchdog: rzg2l_wdt: Use pm_runtime_resume_and_get() Claudiu
@ 2024-12-18 12:23 ` Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 04/10] watchdog: rzg2l_wdt: Remove reset de-assert from probe Claudiu
` (8 subsequent siblings)
11 siblings, 0 replies; 14+ messages in thread
From: Claudiu @ 2024-12-18 12:23 UTC (permalink / raw)
To: nobuhiro1.iwamatsu, pavel
Cc: claudiu.beznea, cip-dev, biju.das.jz, prabhakar.mahadev-lad.rj
From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
commit 471e45a33302852bf79bc140fe418782f50734f6 upstream.
pm_runtime_put() may return an error code. Check its return status.
Along with it the rzg2l_wdt_set_timeout() function was updated to
propagate the result of rzg2l_wdt_stop() to its caller.
Fixes: 2cbc5cd0b55f ("watchdog: Add Watchdog Timer driver for RZ/G2L")
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20240531065723.1085423-5-claudiu.beznea.uj@bp.renesas.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
---
drivers/watchdog/rzg2l_wdt.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/watchdog/rzg2l_wdt.c b/drivers/watchdog/rzg2l_wdt.c
index 78d904df5f1e..9b2698a4fc1a 100644
--- a/drivers/watchdog/rzg2l_wdt.c
+++ b/drivers/watchdog/rzg2l_wdt.c
@@ -144,9 +144,13 @@ static int rzg2l_wdt_start(struct watchdog_device *wdev)
static int rzg2l_wdt_stop(struct watchdog_device *wdev)
{
struct rzg2l_wdt_priv *priv = watchdog_get_drvdata(wdev);
+ int ret;
rzg2l_wdt_reset(priv);
- pm_runtime_put(wdev->parent);
+
+ ret = pm_runtime_put(wdev->parent);
+ if (ret < 0)
+ return ret;
return 0;
}
@@ -163,7 +167,10 @@ static int rzg2l_wdt_set_timeout(struct watchdog_device *wdev, unsigned int time
* to reset the module) so that it is updated with new timeout values.
*/
if (watchdog_active(wdev)) {
- rzg2l_wdt_stop(wdev);
+ ret = rzg2l_wdt_stop(wdev);
+ if (ret)
+ return ret;
+
ret = rzg2l_wdt_start(wdev);
}
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [cip dev][PATCH 5.10.y-cip 04/10] watchdog: rzg2l_wdt: Remove reset de-assert from probe
2024-12-18 12:23 [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support Claudiu
` (2 preceding siblings ...)
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 03/10] watchdog: rzg2l_wdt: Check return status of pm_runtime_put() Claudiu
@ 2024-12-18 12:23 ` Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 05/10] watchdog: rzg2l_wdt: Remove comparison with zero Claudiu
` (7 subsequent siblings)
11 siblings, 0 replies; 14+ messages in thread
From: Claudiu @ 2024-12-18 12:23 UTC (permalink / raw)
To: nobuhiro1.iwamatsu, pavel
Cc: claudiu.beznea, cip-dev, biju.das.jz, prabhakar.mahadev-lad.rj
From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
commit 064319c3fac88e04f53f3460cd24ae90de2d9fb6 upstream.
There is no need to de-assert the reset signal on probe as the watchdog
is not used prior executing start. Also, the clocks are not enabled in
probe (pm_runtime_enable() doesn't do that), thus this is another indicator
that the watchdog wasn't used previously like this. Instead, keep the
watchdog hardware in its previous state at probe (by default it is in
reset state), enable it when it is started and move it to reset state
when it is stopped. This saves some extra power when the watchdog is
unused.
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20240531065723.1085423-6-claudiu.beznea.uj@bp.renesas.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
---
drivers/watchdog/rzg2l_wdt.c | 28 +++++++++++++++++-----------
1 file changed, 17 insertions(+), 11 deletions(-)
diff --git a/drivers/watchdog/rzg2l_wdt.c b/drivers/watchdog/rzg2l_wdt.c
index 9b2698a4fc1a..a473de5ff886 100644
--- a/drivers/watchdog/rzg2l_wdt.c
+++ b/drivers/watchdog/rzg2l_wdt.c
@@ -129,6 +129,12 @@ static int rzg2l_wdt_start(struct watchdog_device *wdev)
if (ret)
return ret;
+ ret = reset_control_deassert(priv->rstc);
+ if (ret) {
+ pm_runtime_put(wdev->parent);
+ return ret;
+ }
+
/* Initialize time out */
rzg2l_wdt_init_timeout(wdev);
@@ -146,7 +152,9 @@ static int rzg2l_wdt_stop(struct watchdog_device *wdev)
struct rzg2l_wdt_priv *priv = watchdog_get_drvdata(wdev);
int ret;
- rzg2l_wdt_reset(priv);
+ ret = reset_control_assert(priv->rstc);
+ if (ret)
+ return ret;
ret = pm_runtime_put(wdev->parent);
if (ret < 0)
@@ -186,6 +194,12 @@ static int rzg2l_wdt_restart(struct watchdog_device *wdev,
clk_prepare_enable(priv->osc_clk);
if (priv->devtype == WDT_RZG2L) {
+ int ret;
+
+ ret = reset_control_deassert(priv->rstc);
+ if (ret)
+ return ret;
+
/* Generate Reset (WDTRSTB) Signal on parity error */
rzg2l_wdt_write(priv, 0, PECR);
@@ -236,13 +250,11 @@ static const struct watchdog_ops rzg2l_wdt_ops = {
.restart = rzg2l_wdt_restart,
};
-static void rzg2l_wdt_reset_assert_pm_disable(void *data)
+static void rzg2l_wdt_pm_disable(void *data)
{
struct watchdog_device *wdev = data;
- struct rzg2l_wdt_priv *priv = watchdog_get_drvdata(wdev);
pm_runtime_disable(wdev->parent);
- reset_control_assert(priv->rstc);
}
static int rzg2l_wdt_probe(struct platform_device *pdev)
@@ -285,10 +297,6 @@ static int rzg2l_wdt_probe(struct platform_device *pdev)
return dev_err_probe(&pdev->dev, PTR_ERR(priv->rstc),
"failed to get cpg reset");
- ret = reset_control_deassert(priv->rstc);
- if (ret)
- return dev_err_probe(dev, ret, "failed to deassert");
-
priv->devtype = (uintptr_t)of_device_get_match_data(dev);
if (priv->devtype == WDT_RZV2M) {
@@ -309,9 +317,7 @@ static int rzg2l_wdt_probe(struct platform_device *pdev)
priv->wdev.timeout = WDT_DEFAULT_TIMEOUT;
watchdog_set_drvdata(&priv->wdev, priv);
- ret = devm_add_action_or_reset(&pdev->dev,
- rzg2l_wdt_reset_assert_pm_disable,
- &priv->wdev);
+ ret = devm_add_action_or_reset(&pdev->dev, rzg2l_wdt_pm_disable, &priv->wdev);
if (ret < 0)
return ret;
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [cip dev][PATCH 5.10.y-cip 05/10] watchdog: rzg2l_wdt: Remove comparison with zero
2024-12-18 12:23 [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support Claudiu
` (3 preceding siblings ...)
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 04/10] watchdog: rzg2l_wdt: Remove reset de-assert from probe Claudiu
@ 2024-12-18 12:23 ` Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 06/10] watchdog: rzg2l_wdt: Rely on the reset driver for doing proper reset Claudiu
` (6 subsequent siblings)
11 siblings, 0 replies; 14+ messages in thread
From: Claudiu @ 2024-12-18 12:23 UTC (permalink / raw)
To: nobuhiro1.iwamatsu, pavel
Cc: claudiu.beznea, cip-dev, biju.das.jz, prabhakar.mahadev-lad.rj
From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
commit 900b938335f7fbd401dcba14c8069dbf38ed1f28 upstream.
devm_add_action_or_reset() could return -ENOMEM or zero. Thus, remove
comparison with zero of the returning value to make code simpler.
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20240531065723.1085423-7-claudiu.beznea.uj@bp.renesas.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
---
drivers/watchdog/rzg2l_wdt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/watchdog/rzg2l_wdt.c b/drivers/watchdog/rzg2l_wdt.c
index a473de5ff886..2c50e4c76131 100644
--- a/drivers/watchdog/rzg2l_wdt.c
+++ b/drivers/watchdog/rzg2l_wdt.c
@@ -318,7 +318,7 @@ static int rzg2l_wdt_probe(struct platform_device *pdev)
watchdog_set_drvdata(&priv->wdev, priv);
ret = devm_add_action_or_reset(&pdev->dev, rzg2l_wdt_pm_disable, &priv->wdev);
- if (ret < 0)
+ if (ret)
return ret;
watchdog_set_nowayout(&priv->wdev, nowayout);
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [cip dev][PATCH 5.10.y-cip 06/10] watchdog: rzg2l_wdt: Rely on the reset driver for doing proper reset
2024-12-18 12:23 [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support Claudiu
` (4 preceding siblings ...)
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 05/10] watchdog: rzg2l_wdt: Remove comparison with zero Claudiu
@ 2024-12-18 12:23 ` Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 07/10] watchdog: rzg2l_wdt: Add suspend/resume support Claudiu
` (5 subsequent siblings)
11 siblings, 0 replies; 14+ messages in thread
From: Claudiu @ 2024-12-18 12:23 UTC (permalink / raw)
To: nobuhiro1.iwamatsu, pavel
Cc: claudiu.beznea, cip-dev, biju.das.jz, prabhakar.mahadev-lad.rj
From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
commit d8997ed79ed7c7c32b2ae571e0d99a58bbfd01fe upstream.
The reset driver has been adapted in commit da235d2fac21
("clk: renesas: rzg2l: Check reset monitor registers") to check the reset
monitor bits before declaring reset asserts/de-asserts as
successful/failure operations. With that, there is no need to keep the
reset workaround for RZ/V2M in place in the watchdog driver.
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20240531065723.1085423-8-claudiu.beznea.uj@bp.renesas.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
---
drivers/watchdog/rzg2l_wdt.c | 39 ++++--------------------------------
1 file changed, 4 insertions(+), 35 deletions(-)
diff --git a/drivers/watchdog/rzg2l_wdt.c b/drivers/watchdog/rzg2l_wdt.c
index 2c50e4c76131..ea535739f8b6 100644
--- a/drivers/watchdog/rzg2l_wdt.c
+++ b/drivers/watchdog/rzg2l_wdt.c
@@ -8,7 +8,6 @@
#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/io.h>
-#include <linux/iopoll.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/of_device.h>
@@ -54,35 +53,11 @@ struct rzg2l_wdt_priv {
struct reset_control *rstc;
unsigned long osc_clk_rate;
unsigned long delay;
- unsigned long minimum_assertion_period;
struct clk *pclk;
struct clk *osc_clk;
enum rz_wdt_type devtype;
};
-static int rzg2l_wdt_reset(struct rzg2l_wdt_priv *priv)
-{
- int err, status;
-
- if (priv->devtype == WDT_RZV2M) {
- /* WDT needs TYPE-B reset control */
- err = reset_control_assert(priv->rstc);
- if (err)
- return err;
- ndelay(priv->minimum_assertion_period);
- err = reset_control_deassert(priv->rstc);
- if (err)
- return err;
- err = read_poll_timeout(reset_control_status, status,
- status != 1, 0, 1000, false,
- priv->rstc);
- } else {
- err = reset_control_reset(priv->rstc);
- }
-
- return err;
-}
-
static void rzg2l_wdt_wait_delay(struct rzg2l_wdt_priv *priv)
{
/* delay timer when change the setting register */
@@ -189,13 +164,12 @@ static int rzg2l_wdt_restart(struct watchdog_device *wdev,
unsigned long action, void *data)
{
struct rzg2l_wdt_priv *priv = watchdog_get_drvdata(wdev);
+ int ret;
clk_prepare_enable(priv->pclk);
clk_prepare_enable(priv->osc_clk);
if (priv->devtype == WDT_RZG2L) {
- int ret;
-
ret = reset_control_deassert(priv->rstc);
if (ret)
return ret;
@@ -207,7 +181,9 @@ static int rzg2l_wdt_restart(struct watchdog_device *wdev,
rzg2l_wdt_write(priv, PEEN_FORCE, PEEN);
} else {
/* RZ/V2M doesn't have parity error registers */
- rzg2l_wdt_reset(priv);
+ ret = reset_control_reset(priv->rstc);
+ if (ret)
+ return ret;
wdev->timeout = 0;
@@ -299,13 +275,6 @@ static int rzg2l_wdt_probe(struct platform_device *pdev)
priv->devtype = (uintptr_t)of_device_get_match_data(dev);
- if (priv->devtype == WDT_RZV2M) {
- priv->minimum_assertion_period = RZV2M_A_NSEC +
- 3 * F2CYCLE_NSEC(pclk_rate) + 5 *
- max(F2CYCLE_NSEC(priv->osc_clk_rate),
- F2CYCLE_NSEC(pclk_rate));
- }
-
pm_runtime_enable(&pdev->dev);
priv->wdev.info = &rzg2l_wdt_ident;
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [cip dev][PATCH 5.10.y-cip 07/10] watchdog: rzg2l_wdt: Add suspend/resume support
2024-12-18 12:23 [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support Claudiu
` (5 preceding siblings ...)
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 06/10] watchdog: rzg2l_wdt: Rely on the reset driver for doing proper reset Claudiu
@ 2024-12-18 12:23 ` Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 08/10] watchdog: rzg2l_wdt: Power on the watchdog domain in the restart handler Claudiu
` (4 subsequent siblings)
11 siblings, 0 replies; 14+ messages in thread
From: Claudiu @ 2024-12-18 12:23 UTC (permalink / raw)
To: nobuhiro1.iwamatsu, pavel
Cc: claudiu.beznea, cip-dev, biju.das.jz, prabhakar.mahadev-lad.rj
From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
commit 0aad7c4438b2e87359cd7b42c3e11b17f477ab8f upstream.
The RZ/G3S supports deep sleep states where power to most of the IP blocks
is cut off. To ensure proper working of the watchdog when resuming from
such states, the suspend function is stopping the watchdog and the resume
function is starting it. There is no need to configure the watchdog
in case the watchdog was stopped prior to starting suspend.
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20240531065723.1085423-9-claudiu.beznea.uj@bp.renesas.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
[claudiu.beznea: replaced LATE_SYSTEM_SLEEP_PM_OPS() with
SET_LATE_SYSTEM_SLEEP_PM_OPS()
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
---
drivers/watchdog/rzg2l_wdt.c | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/drivers/watchdog/rzg2l_wdt.c b/drivers/watchdog/rzg2l_wdt.c
index ea535739f8b6..afc1e9f1bf04 100644
--- a/drivers/watchdog/rzg2l_wdt.c
+++ b/drivers/watchdog/rzg2l_wdt.c
@@ -286,6 +286,7 @@ static int rzg2l_wdt_probe(struct platform_device *pdev)
priv->wdev.timeout = WDT_DEFAULT_TIMEOUT;
watchdog_set_drvdata(&priv->wdev, priv);
+ dev_set_drvdata(dev, priv);
ret = devm_add_action_or_reset(&pdev->dev, rzg2l_wdt_pm_disable, &priv->wdev);
if (ret)
return ret;
@@ -307,10 +308,35 @@ static const struct of_device_id rzg2l_wdt_ids[] = {
};
MODULE_DEVICE_TABLE(of, rzg2l_wdt_ids);
+static int rzg2l_wdt_suspend_late(struct device *dev)
+{
+ struct rzg2l_wdt_priv *priv = dev_get_drvdata(dev);
+
+ if (!watchdog_active(&priv->wdev))
+ return 0;
+
+ return rzg2l_wdt_stop(&priv->wdev);
+}
+
+static int rzg2l_wdt_resume_early(struct device *dev)
+{
+ struct rzg2l_wdt_priv *priv = dev_get_drvdata(dev);
+
+ if (!watchdog_active(&priv->wdev))
+ return 0;
+
+ return rzg2l_wdt_start(&priv->wdev);
+}
+
+static const struct dev_pm_ops rzg2l_wdt_pm_ops = {
+ SET_LATE_SYSTEM_SLEEP_PM_OPS(rzg2l_wdt_suspend_late, rzg2l_wdt_resume_early)
+};
+
static struct platform_driver rzg2l_wdt_driver = {
.driver = {
.name = "rzg2l_wdt",
.of_match_table = rzg2l_wdt_ids,
+ .pm = &rzg2l_wdt_pm_ops,
},
.probe = rzg2l_wdt_probe,
};
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [cip dev][PATCH 5.10.y-cip 08/10] watchdog: rzg2l_wdt: Power on the watchdog domain in the restart handler
2024-12-18 12:23 [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support Claudiu
` (6 preceding siblings ...)
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 07/10] watchdog: rzg2l_wdt: Add suspend/resume support Claudiu
@ 2024-12-18 12:23 ` Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 09/10] arm64: dts: renesas: r9a08g045: Add watchdog node Claudiu
` (3 subsequent siblings)
11 siblings, 0 replies; 14+ messages in thread
From: Claudiu @ 2024-12-18 12:23 UTC (permalink / raw)
To: nobuhiro1.iwamatsu, pavel
Cc: claudiu.beznea, cip-dev, biju.das.jz, prabhakar.mahadev-lad.rj
From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
commit bad201b2ac4e238c6d4b6966a220240e3861640c upstream.
On RZ/G3S the watchdog can be part of a software-controlled PM domain. In
this case, the watchdog device need to be powered on in
struct watchdog_ops::restart API. This can be done though
pm_runtime_resume_and_get() API if the watchdog PM domain and watchdog
device are marked as IRQ safe. We mark the watchdog PM domain as IRQ safe
with GENPD_FLAG_IRQ_SAFE when the watchdog PM domain is registered and the
watchdog device though pm_runtime_irq_safe().
Before commit e4cf89596c1f ("watchdog: rzg2l_wdt: Fix 'BUG: Invalid wait
context'") pm_runtime_get_sync() was used in watchdog restart handler
(which is similar to pm_runtime_resume_and_get() except the later one
handles the runtime resume errors).
Commit e4cf89596c1f ("watchdog: rzg2l_wdt: Fix 'BUG: Invalid wait
context'") dropped the pm_runtime_get_sync() and replaced it with
clk_prepare_enable() to avoid invalid wait context due to genpd_lock()
in genpd_runtime_resume() being called from atomic context. But
clk_prepare_enable() doesn't fit for this either (as reported by
Ulf Hansson) as clk_prepare() can also sleep (it just not throw invalid
wait context warning as it is not written for this).
Because the watchdog device is marked now as IRQ safe (though this patch)
the irq_safe_dev_in_sleep_domain() call from genpd_runtime_resume() returns
1 for devices not registering an IRQ safe PM domain for watchdog (as the
watchdog device is IRQ safe, PM domain is not and watchdog PM domain is
always-on), this being the case for RZ/G3S with old device trees and
the rest of the SoCs that use this driver, we can now drop also the
clk_prepare_enable() calls in restart handler and rely on
pm_runtime_resume_and_get().
Thus, drop clk_prepare_enable() and use pm_runtime_resume_and_get() in
watchdog restart handler.
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20241015164732.4085249-5-claudiu.beznea.uj@bp.renesas.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
---
drivers/watchdog/rzg2l_wdt.c | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/drivers/watchdog/rzg2l_wdt.c b/drivers/watchdog/rzg2l_wdt.c
index afc1e9f1bf04..73d92b6cbcf8 100644
--- a/drivers/watchdog/rzg2l_wdt.c
+++ b/drivers/watchdog/rzg2l_wdt.c
@@ -12,6 +12,7 @@
#include <linux/module.h>
#include <linux/of_device.h>
#include <linux/platform_device.h>
+#include <linux/pm_domain.h>
#include <linux/pm_runtime.h>
#include <linux/reset.h>
#include <linux/units.h>
@@ -166,8 +167,22 @@ static int rzg2l_wdt_restart(struct watchdog_device *wdev,
struct rzg2l_wdt_priv *priv = watchdog_get_drvdata(wdev);
int ret;
- clk_prepare_enable(priv->pclk);
- clk_prepare_enable(priv->osc_clk);
+ /*
+ * In case of RZ/G3S the watchdog device may be part of an IRQ safe power
+ * domain that is currently powered off. In this case we need to power
+ * it on before accessing registers. Along with this the clocks will be
+ * enabled. We don't undo the pm_runtime_resume_and_get() as the device
+ * need to be on for the reboot to happen.
+ *
+ * For the rest of SoCs not registering a watchdog IRQ safe power
+ * domain it is safe to call pm_runtime_resume_and_get() as the
+ * irq_safe_dev_in_sleep_domain() call in genpd_runtime_resume()
+ * returns non zero value and the genpd_lock() is avoided, thus, there
+ * will be no invalid wait context reported by lockdep.
+ */
+ ret = pm_runtime_resume_and_get(wdev->parent);
+ if (ret)
+ return ret;
if (priv->devtype == WDT_RZG2L) {
ret = reset_control_deassert(priv->rstc);
@@ -275,6 +290,7 @@ static int rzg2l_wdt_probe(struct platform_device *pdev)
priv->devtype = (uintptr_t)of_device_get_match_data(dev);
+ pm_runtime_irq_safe(&pdev->dev);
pm_runtime_enable(&pdev->dev);
priv->wdev.info = &rzg2l_wdt_ident;
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [cip dev][PATCH 5.10.y-cip 09/10] arm64: dts: renesas: r9a08g045: Add watchdog node
2024-12-18 12:23 [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support Claudiu
` (7 preceding siblings ...)
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 08/10] watchdog: rzg2l_wdt: Power on the watchdog domain in the restart handler Claudiu
@ 2024-12-18 12:23 ` Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 10/10] arm64: dts: renesas: rzg3s-smarc-som: Enable the watchdog interface Claudiu
` (2 subsequent siblings)
11 siblings, 0 replies; 14+ messages in thread
From: Claudiu @ 2024-12-18 12:23 UTC (permalink / raw)
To: nobuhiro1.iwamatsu, pavel
Cc: claudiu.beznea, cip-dev, biju.das.jz, prabhakar.mahadev-lad.rj
From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
commit cee7bef61f51c04c9946cf4ddb81e85d9c1833d2 upstream.
Add the DT node for the watchdog IP accessible by Cortex-A of RZ/G3S
SoC (R9108G045).
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20240122111115.2861835-10-claudiu.beznea.uj@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
---
arch/arm64/boot/dts/renesas/r9a08g045.dtsi | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/arch/arm64/boot/dts/renesas/r9a08g045.dtsi b/arch/arm64/boot/dts/renesas/r9a08g045.dtsi
index aba6b0383778..f5f3f4f4c8d6 100644
--- a/arch/arm64/boot/dts/renesas/r9a08g045.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a08g045.dtsi
@@ -273,6 +273,20 @@ gic: interrupt-controller@12400000 {
<0x0 0x12440000 0 0x60000>;
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
};
+
+ wdt0: watchdog@12800800 {
+ compatible = "renesas,r9a08g045-wdt", "renesas,rzg2l-wdt";
+ reg = <0 0x12800800 0 0x400>;
+ clocks = <&cpg CPG_MOD R9A08G045_WDT0_PCLK>,
+ <&cpg CPG_MOD R9A08G045_WDT0_CLK>;
+ clock-names = "pclk", "oscclk";
+ interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "wdt", "perrout";
+ resets = <&cpg R9A08G045_WDT0_PRESETN>;
+ power-domains = <&cpg>;
+ status = "disabled";
+ };
};
timer {
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [cip dev][PATCH 5.10.y-cip 10/10] arm64: dts: renesas: rzg3s-smarc-som: Enable the watchdog interface
2024-12-18 12:23 [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support Claudiu
` (8 preceding siblings ...)
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 09/10] arm64: dts: renesas: r9a08g045: Add watchdog node Claudiu
@ 2024-12-18 12:23 ` Claudiu
2024-12-18 19:58 ` [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support Pavel Machek
2024-12-19 0:59 ` nobuhiro1.iwamatsu
11 siblings, 0 replies; 14+ messages in thread
From: Claudiu @ 2024-12-18 12:23 UTC (permalink / raw)
To: nobuhiro1.iwamatsu, pavel
Cc: claudiu.beznea, cip-dev, biju.das.jz, prabhakar.mahadev-lad.rj
From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
commit 2c0f4dfad96a6809506265f53f251b83ab2c848a upstream.
Enable the watchdog interface (accessible by Cortex-A of RZ/G3S SoC) on
RZ/G3S SMARC SoM.
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20240122111115.2861835-11-claudiu.beznea.uj@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
---
arch/arm64/boot/dts/renesas/rzg3s-smarc-som.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/boot/dts/renesas/rzg3s-smarc-som.dtsi b/arch/arm64/boot/dts/renesas/rzg3s-smarc-som.dtsi
index d33ab4c88787..acac4666ae59 100644
--- a/arch/arm64/boot/dts/renesas/rzg3s-smarc-som.dtsi
+++ b/arch/arm64/boot/dts/renesas/rzg3s-smarc-som.dtsi
@@ -340,3 +340,8 @@ mux {
};
};
};
+
+&wdt0 {
+ timeout-sec = <60>;
+ status = "okay";
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support
2024-12-18 12:23 [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support Claudiu
` (9 preceding siblings ...)
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 10/10] arm64: dts: renesas: rzg3s-smarc-som: Enable the watchdog interface Claudiu
@ 2024-12-18 19:58 ` Pavel Machek
2024-12-19 0:59 ` nobuhiro1.iwamatsu
11 siblings, 0 replies; 14+ messages in thread
From: Pavel Machek @ 2024-12-18 19:58 UTC (permalink / raw)
To: Claudiu
Cc: nobuhiro1.iwamatsu, pavel, cip-dev, biju.das.jz,
prabhakar.mahadev-lad.rj
[-- Attachment #1: Type: text/plain, Size: 477 bytes --]
Hi!
> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>
> Series backports the watchdog support for the Renesas RZ/G3S SoC.
I still don't believe you got error handling right, but I guess we can
apply this (and 6.1 version) if it passes testing and there are no
other comments.
Best regards,
Pavel
--
DENX Software Engineering GmbH, Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support
2024-12-18 12:23 [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support Claudiu
` (10 preceding siblings ...)
2024-12-18 19:58 ` [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support Pavel Machek
@ 2024-12-19 0:59 ` nobuhiro1.iwamatsu
2024-12-19 11:16 ` Pavel Machek
11 siblings, 1 reply; 14+ messages in thread
From: nobuhiro1.iwamatsu @ 2024-12-19 0:59 UTC (permalink / raw)
To: claudiu.beznea, pavel; +Cc: cip-dev, biju.das.jz, prabhakar.mahadev-lad.rj
Hi all,
> -----Original Message-----
> From: Claudiu <claudiu.beznea@tuxon.dev>
> Sent: Wednesday, December 18, 2024 9:23 PM
> To: iwamatsu nobuhiro(岩松 信洋 ○DITC□DIT○OST)
> <nobuhiro1.iwamatsu@toshiba.co.jp>; pavel@denx.de
> Cc: claudiu.beznea@tuxon.dev; cip-dev@lists.cip-project.org;
> biju.das.jz@bp.renesas.com; prabhakar.mahadev-lad.rj@bp.renesas.com
> Subject: [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport
> RZ/G3S support
>
> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>
> Series backports the watchdog support for the Renesas RZ/G3S SoC.
>
> Thank you,
> Claudiu Beznea
>
> Claudiu Beznea (10):
> clk: renesas: r9a08g045: Add clock and reset support for watchdog
> watchdog: rzg2l_wdt: Use pm_runtime_resume_and_get()
> watchdog: rzg2l_wdt: Check return status of pm_runtime_put()
> watchdog: rzg2l_wdt: Remove reset de-assert from probe
> watchdog: rzg2l_wdt: Remove comparison with zero
> watchdog: rzg2l_wdt: Rely on the reset driver for doing proper reset
> watchdog: rzg2l_wdt: Add suspend/resume support
> watchdog: rzg2l_wdt: Power on the watchdog domain in the restart
> handler
> arm64: dts: renesas: r9a08g045: Add watchdog node
> arm64: dts: renesas: rzg3s-smarc-som: Enable the watchdog interface
>
> arch/arm64/boot/dts/renesas/r9a08g045.dtsi | 14 ++
> .../boot/dts/renesas/rzg3s-smarc-som.dtsi | 5 +
> drivers/clk/renesas/r9a08g045-cpg.c | 3 +
> drivers/watchdog/rzg2l_wdt.c | 133
> +++++++++++-------
> 4 files changed, 103 insertions(+), 52 deletions(-)
>
> --
I reviewed this series, I had no part to point out.
I can apply this, if there are no other comments.
Reviewed-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
Best regards,
Nobuhiro
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support
2024-12-19 0:59 ` nobuhiro1.iwamatsu
@ 2024-12-19 11:16 ` Pavel Machek
0 siblings, 0 replies; 14+ messages in thread
From: Pavel Machek @ 2024-12-19 11:16 UTC (permalink / raw)
To: nobuhiro1.iwamatsu
Cc: claudiu.beznea, pavel, cip-dev, biju.das.jz,
prabhakar.mahadev-lad.rj
[-- Attachment #1: Type: text/plain, Size: 380 bytes --]
Hi!
> I reviewed this series, I had no part to point out.
> I can apply this, if there are no other comments.
>
> Reviewed-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
Thank you, applied.
BR,
Pavel
--
DENX Software Engineering GmbH, Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2024-12-19 11:17 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-18 12:23 [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 01/10] clk: renesas: r9a08g045: Add clock and reset support for watchdog Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 02/10] watchdog: rzg2l_wdt: Use pm_runtime_resume_and_get() Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 03/10] watchdog: rzg2l_wdt: Check return status of pm_runtime_put() Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 04/10] watchdog: rzg2l_wdt: Remove reset de-assert from probe Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 05/10] watchdog: rzg2l_wdt: Remove comparison with zero Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 06/10] watchdog: rzg2l_wdt: Rely on the reset driver for doing proper reset Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 07/10] watchdog: rzg2l_wdt: Add suspend/resume support Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 08/10] watchdog: rzg2l_wdt: Power on the watchdog domain in the restart handler Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 09/10] arm64: dts: renesas: r9a08g045: Add watchdog node Claudiu
2024-12-18 12:23 ` [cip dev][PATCH 5.10.y-cip 10/10] arm64: dts: renesas: rzg3s-smarc-som: Enable the watchdog interface Claudiu
2024-12-18 19:58 ` [cip dev][PATCH 5.10.y-cip 00/10] watchdog: rzg2l_wdt: Backport RZ/G3S support Pavel Machek
2024-12-19 0:59 ` nobuhiro1.iwamatsu
2024-12-19 11:16 ` Pavel Machek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox