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 <[email protected]> --- 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
