[PATCH v2 3/3] mfd: rz-mtu3: Enable runtime PM
From: Cosmin Tanislav
Date: Sun Oct 04 2026 - 13:42:05 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>
---
V2:
* capitalize subject after prefix
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 5be1f5a4167e..558ed3fbe520 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>
@@ -290,6 +291,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)
@@ -321,6 +323,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