[PATCH 3/3] mfd: rz-mtu3: enable runtime PM

From: Cosmin Tanislav

Date: Mon Sep 14 2026 - 16:20:00 EST


The MTU3 child devices use runtime PM, but the PM domain is attached to
the parent MFD device rather than to the individual child devices, and
the child devices open-code their own clock handling instead of using
the PM domain logic.

Enable runtime PM on the parent device so runtime PM usage by the child
devices can propagate to the parent.

Signed-off-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@xxxxxxxxxxx>
---
drivers/mfd/rz-mtu3.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/drivers/mfd/rz-mtu3.c b/drivers/mfd/rz-mtu3.c
index 88aa1fedf1ef..e24e67e7a66c 100644
--- a/drivers/mfd/rz-mtu3.c
+++ b/drivers/mfd/rz-mtu3.c
@@ -13,6 +13,7 @@
#include <linux/mfd/rz-mtu3.h>
#include <linux/module.h>
#include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
#include <linux/reset.h>
#include <linux/spinlock.h>

@@ -298,6 +299,7 @@ static int rz_mtu3_probe(struct platform_device *pdev)
struct rz_mtu3 *ddata;
struct reset_control *rstc;
unsigned int i;
+ int ret;

ddata = devm_kzalloc(dev, sizeof(*ddata), GFP_KERNEL);
if (!ddata)
@@ -330,6 +332,10 @@ static int rz_mtu3_probe(struct platform_device *pdev)
mutex_init(&ddata->channels[i].lock);
}

+ ret = devm_pm_runtime_enable(dev);
+ if (ret)
+ return ret;
+
return devm_mfd_add_devices(dev, 0, rz_mtu3_devs,
ARRAY_SIZE(rz_mtu3_devs), NULL, 0, NULL);
}
--
2.55.0