[PATCH v7 04/13] drm: renesas: rz-du: crtc: Introduce rzg2l_du_crtc_clk_get()
From: Tommaso Merciai
Date: Thu May 07 2026 - 05:24:08 EST
Introduce rzg2l_du_crtc_clk_get(), a helper wrapping devm_clk_get()
that appends a numeric index suffix to the clock name when hw_index is
non-zero (e.g. "vclk" -> "vclk1"), preserving backward compatibility
with existing devicetree bindings for index 0.
This is preparatory work for RZ/G3E that has two DU instances
where each requires independently named clock entries.
No functional change intended.
Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@xxxxxxxxxxxxxx>
---
v6->v7:
- New patch.
drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c
index 88915babca12..622044f994e8 100644
--- a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c
+++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c
@@ -377,6 +377,17 @@ static const struct drm_crtc_funcs crtc_funcs_rz = {
* Initialization
*/
+static struct clk *rzg2l_du_crtc_clk_get(struct device *dev, const char *name,
+ unsigned int hw_index)
+{
+ char buf[16];
+
+ if (hw_index != 0)
+ snprintf(buf, sizeof(buf), "%s%u", name, hw_index);
+
+ return devm_clk_get(dev, hw_index == 0 ? name : buf);
+}
+
int rzg2l_du_crtc_create(struct rzg2l_du_device *rcdu)
{
struct platform_device *pdev = to_platform_device(rcdu->dev);
@@ -396,19 +407,19 @@ int rzg2l_du_crtc_create(struct rzg2l_du_device *rcdu)
return PTR_ERR(rcrtc->rstc);
}
- rcrtc->rzg2l_clocks.aclk = devm_clk_get(rcdu->dev, "aclk");
+ rcrtc->rzg2l_clocks.aclk = rzg2l_du_crtc_clk_get(rcdu->dev, "aclk", 0);
if (IS_ERR(rcrtc->rzg2l_clocks.aclk)) {
dev_err(rcdu->dev, "no axi clock for DU\n");
return PTR_ERR(rcrtc->rzg2l_clocks.aclk);
}
- rcrtc->rzg2l_clocks.pclk = devm_clk_get(rcdu->dev, "pclk");
+ rcrtc->rzg2l_clocks.pclk = rzg2l_du_crtc_clk_get(rcdu->dev, "pclk", 0);
if (IS_ERR(rcrtc->rzg2l_clocks.pclk)) {
dev_err(rcdu->dev, "no peripheral clock for DU\n");
return PTR_ERR(rcrtc->rzg2l_clocks.pclk);
}
- rcrtc->rzg2l_clocks.dclk = devm_clk_get(rcdu->dev, "vclk");
+ rcrtc->rzg2l_clocks.dclk = rzg2l_du_crtc_clk_get(rcdu->dev, "vclk", 0);
if (IS_ERR(rcrtc->rzg2l_clocks.dclk)) {
dev_err(rcdu->dev, "no video clock for DU\n");
return PTR_ERR(rcrtc->rzg2l_clocks.dclk);
--
2.54.0