[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260203135139.28151-6-ovidiu.panait.rb@renesas.com>
Date: Tue, 3 Feb 2026 13:51:36 +0000
From: Ovidiu Panait <ovidiu.panait.rb@...esas.com>
To: geert+renesas@...der.be,
magnus.damm@...il.com,
robh@...nel.org,
krzk+dt@...nel.org,
conor+dt@...nel.org,
mturquette@...libre.com,
sboyd@...nel.org,
biju.das.jz@...renesas.com,
fabrizio.castro.jz@...esas.com
Cc: linux-renesas-soc@...r.kernel.org,
devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org,
linux-clk@...r.kernel.org
Subject: [PATCH v3 5/8] clk: versaclock3: Prefix clock names with DT node name
Similar to commit f491276a5168 ("clk: vc5: Allow Versaclock driver to
support multiple instances"), prefix clock names with the device tree
node name to allow multiple VersaClock3 devices to be registered
simultaneously.
Signed-off-by: Ovidiu Panait <ovidiu.panait.rb@...esas.com>
---
v3 changes: New patch.
drivers/clk/clk-versaclock3.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/drivers/clk/clk-versaclock3.c b/drivers/clk/clk-versaclock3.c
index eb61a2c0b49b..56285c9a48ce 100644
--- a/drivers/clk/clk-versaclock3.c
+++ b/drivers/clk/clk-versaclock3.c
@@ -1137,6 +1137,7 @@ static int vc3_register_clk(struct vc3_device_data *vc3,
struct device *dev = &vc3->client->dev;
struct clk_parent_data *pd;
struct clk_init_data init;
+ const char *name;
int ret;
if (!hw_data->data)
@@ -1147,7 +1148,15 @@ static int vc3_register_clk(struct vc3_device_data *vc3,
if (!pd)
return -ENOMEM;
+ name = kasprintf(GFP_KERNEL, "%pOFn.%s", dev->of_node,
+ template->hw.init->name);
+ if (!name) {
+ kfree(pd);
+ return -ENOMEM;
+ }
+
init = *template->hw.init;
+ init.name = name;
init.parent_data = pd;
init.num_parents = hw_data->parent_info->num_parents;
@@ -1157,6 +1166,7 @@ static int vc3_register_clk(struct vc3_device_data *vc3,
ret = devm_clk_hw_register(dev, &hw_data->hw);
kfree(pd);
+ kfree(name);
return ret;
}
@@ -1321,6 +1331,10 @@ static int vc3_probe(struct i2c_client *client)
return dev_err_probe(dev, -EINVAL, "invalid clk output %d\n", i);
}
+ name = kasprintf(GFP_KERNEL, "%pOFn.%s", dev->of_node, name);
+ if (!name)
+ return -ENOMEM;
+
if (i == VC3_REF)
vc3->clk_out[i] = devm_clk_hw_register_fixed_factor_index(dev,
name, 0, CLK_SET_RATE_PARENT, 1, 1);
@@ -1328,6 +1342,8 @@ static int vc3_probe(struct i2c_client *client)
vc3->clk_out[i] = devm_clk_hw_register_fixed_factor_parent_hw(dev,
name, &vc3->clk_mux[i - 1].hw, CLK_SET_RATE_PARENT, 1, 1);
+ kfree(name);
+
if (IS_ERR(vc3->clk_out[i]))
return PTR_ERR(vc3->clk_out[i]);
}
--
2.51.0
Powered by blists - more mailing lists