[PATCH 11/32] clk: mediatek: Add auto-population of sub-devices support in simple probe
Akari Tsuyukusa <[email protected]> Mon, 3 Aug 2026 23:16:38 +0900
| Newsgroups | org.kernel.vger.linux-clk,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-mediatek,org.kernel.vger.linux-kernel,org.kernel.vger.netdev,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
MediaTek audio clock drivers call devm_of_platform_populate() after mtk_clk_simple_probe(). Extend __mtk_clk_simple_probe() to run devm_of_platform_populate() when the new 'populate_children' flag is set, reducing boilerplate. Note that explicit of_platform_depopulate() calls in remove functions are unnecessary because devm_of_platform_populate() is managed by devres and cleans up automatically. Signed-off-by: Akari Tsuyukusa <[email protected]> --- drivers/clk/mediatek/clk-mtk.c | 7 +++++++ drivers/clk/mediatek/clk-mtk.h | 1 + 2 files changed, 8 insertions(+) diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c index c3369a04cdec..71d70b5a9990 100644 --- a/drivers/clk/mediatek/clk-mtk.c +++ b/drivers/clk/mediatek/clk-mtk.c @@ -12,6 +12,7 @@ #include <linux/module.h> #include <linux/of.h> #include <linux/of_address.h> +#include <linux/of_platform.h> #include <linux/platform_device.h> #include <linux/pm_runtime.h> #include <linux/slab.h> @@ -609,6 +610,12 @@ static int __mtk_clk_simple_probe(struct platform_device *pdev, if (mcd->need_runtime_pm) pm_runtime_put(&pdev->dev); + if (mcd->populate_children) { + r = devm_of_platform_populate(&pdev->dev); + if (r) + goto unregister_clks; + } + return r; unregister_clks: diff --git a/drivers/clk/mediatek/clk-mtk.h b/drivers/clk/mediatek/clk-mtk.h index b6504b3e77ed..11939e3e0b38 100644 --- a/drivers/clk/mediatek/clk-mtk.h +++ b/drivers/clk/mediatek/clk-mtk.h @@ -265,6 +265,7 @@ struct mtk_clk_desc { unsigned int mfg_clk_idx; bool need_runtime_pm; + bool populate_children; }; int mtk_clk_pdev_probe(struct platform_device *pdev); -- 2.55.0