[PATCH 2/2] clk: renesas: rzv2h: Deassert reset on assert timeout
From: Biju
Date: Mon Dec 08 2025 - 05:15:59 EST
From: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>
If the assert() fails due to timeout error, set the reset register bit
back to deasserted state. This change is needed especially for handling
assert error in suspend() callback that expect the device to be in
operational state in case of failure.
Signed-off-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>
---
drivers/clk/renesas/rzv2h-cpg.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/clk/renesas/rzv2h-cpg.c b/drivers/clk/renesas/rzv2h-cpg.c
index 3f6299b9fec0..c0ee2dcc858c 100644
--- a/drivers/clk/renesas/rzv2h-cpg.c
+++ b/drivers/clk/renesas/rzv2h-cpg.c
@@ -1366,8 +1366,11 @@ static int __rzv2h_cpg_assert(struct reset_controller_dev *rcdev,
ret = readl_poll_timeout_atomic(priv->base + reg, value,
assert == !!(value & mask), 10, 200);
- if (ret && !assert) {
+ if (ret) {
value = mask << 16;
+ if (assert)
+ value |= mask;
+
writel(value, priv->base + GET_RST_OFFSET(priv->resets[id].reset_index));
}
--
2.43.0