[PATCH 09/17] i3c: renesas: Use reset_control_bulk_{assert, deassert}()
Claudiu Beznea
claudiu.beznea at kernel.org
Fri May 22 03:18:07 PDT 2026
From: Claudiu Beznea <claudiu.beznea.uj at bp.renesas.com>
Use reset_control_bulk_assert() and reset_control_bulk_deassert() in the
suspend and resume paths to simplify the code.
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj at bp.renesas.com>
---
drivers/i3c/master/renesas-i3c.c | 30 +++++++++++++-----------------
1 file changed, 13 insertions(+), 17 deletions(-)
diff --git a/drivers/i3c/master/renesas-i3c.c b/drivers/i3c/master/renesas-i3c.c
index d32646deb69f..e5963270d6e5 100644
--- a/drivers/i3c/master/renesas-i3c.c
+++ b/drivers/i3c/master/renesas-i3c.c
@@ -1414,24 +1414,22 @@ static void renesas_i3c_remove(struct platform_device *pdev)
static int renesas_i3c_suspend(struct device *dev)
{
struct renesas_i3c *i3c = dev_get_drvdata(dev);
+ struct reset_control_bulk_data resets[] = {
+ { .rstc = i3c->presetn },
+ { .rstc = i3c->tresetn },
+ };
int ret;
i2c_mark_adapter_suspended(&i3c->base.i2c);
- ret = reset_control_assert(i3c->presetn);
+ ret = reset_control_bulk_assert(ARRAY_SIZE(resets), resets);
if (ret)
goto err_mark_resumed;
- ret = reset_control_assert(i3c->tresetn);
- if (ret)
- goto err_presetn;
-
clk_bulk_disable(i3c->num_clks, i3c->clks);
return 0;
-err_presetn:
- reset_control_deassert(i3c->presetn);
err_mark_resumed:
i2c_mark_adapter_resumed(&i3c->base.i2c);
@@ -1441,19 +1439,19 @@ static int renesas_i3c_suspend(struct device *dev)
static int renesas_i3c_resume(struct device *dev)
{
struct renesas_i3c *i3c = dev_get_drvdata(dev);
+ struct reset_control_bulk_data resets[] = {
+ { .rstc = i3c->presetn },
+ { .rstc = i3c->tresetn },
+ };
int ret;
- ret = reset_control_deassert(i3c->tresetn);
+ ret = reset_control_bulk_deassert(ARRAY_SIZE(resets), resets);
if (ret)
return ret;
- ret = reset_control_deassert(i3c->presetn);
- if (ret)
- goto err_tresetn;
-
ret = clk_bulk_enable(i3c->num_clks, i3c->clks);
if (ret)
- goto err_presetn;
+ goto err_resets_asserted;
ret = renesas_i3c_reset(i3c);
if (ret)
@@ -1484,10 +1482,8 @@ static int renesas_i3c_resume(struct device *dev)
err_clks_disable:
clk_bulk_disable(i3c->num_clks, i3c->clks);
-err_presetn:
- reset_control_assert(i3c->presetn);
-err_tresetn:
- reset_control_assert(i3c->tresetn);
+err_resets_asserted:
+ reset_control_bulk_assert(ARRAY_SIZE(resets), resets);
return ret;
}
--
2.43.0
More information about the linux-i3c
mailing list