clk: ti: composite: resolve parent clocks by DT index, not by name

Resolve parent clocks by their index into the device tree "clocks"
property rather than matching names as strings. This makes it consistent
with other parts of the same driver.

Signed-off-by: Mathieu Dubois-Briand <[email protected]>
Reviewed-by: Brian Masney <[email protected]>
Signed-off-by: Stephen Boyd <[email protected]>
This commit is contained in:
Mathieu Dubois-Briand authored and Stephen Boyd committed 2026-08-17 09:28:18 -07:00
1 parent 667f420c09
commit fe3dd92ac5
1 file changed
+14 -12
+14 -12
View File
@@ -52,7 +52,7 @@ static const struct clk_ops ti_composite_gate_ops = {
struct component_clk {
int num_parents;
const char **parent_names;
struct clk_parent_data *parent_data;
struct device_node *node;
int type;
struct clk_hw *hw;
@@ -116,7 +116,7 @@ static void __init _register_composite(void *user,
struct clk_hw_omap_comp *cclk = to_clk_hw_comp(hw);
struct component_clk *comp;
int num_parents = 0;
const char **parent_names = NULL;
struct clk_parent_data *parent_data = NULL;
const char *name;
int i;
int ret;
@@ -155,7 +155,7 @@ static void __init _register_composite(void *user,
continue;
if (comp->num_parents) {
num_parents = comp->num_parents;
parent_names = comp->parent_names;
parent_data = comp->parent_data;
break;
}
}
@@ -166,8 +166,8 @@ static void __init _register_composite(void *user,
}
name = ti_dt_clk_name(node);
clk = clk_register_composite(NULL, name,
parent_names, num_parents,
clk = clk_register_composite_pdata(NULL, name,
parent_data, num_parents,
_get_hw(cclk, CLK_COMPONENT_TYPE_MUX),
&ti_clk_mux_ops,
_get_hw(cclk, CLK_COMPONENT_TYPE_DIVIDER),
@@ -190,7 +190,7 @@ cleanup:
if (!cclk->comp_clks[i])
continue;
list_del(&cclk->comp_clks[i]->link);
kfree(cclk->comp_clks[i]->parent_names);
kfree(cclk->comp_clks[i]->parent_data);
kfree(cclk->comp_clks[i]);
}
@@ -237,8 +237,9 @@ int __init ti_clk_add_component(struct device_node *node, struct clk_hw *hw,
int type)
{
unsigned int num_parents;
const char **parent_names;
struct clk_parent_data *parent_data;
struct component_clk *clk;
unsigned int i;
num_parents = of_clk_get_parent_count(node);
@@ -247,20 +248,21 @@ int __init ti_clk_add_component(struct device_node *node, struct clk_hw *hw,
return -EINVAL;
}
parent_names = kcalloc(num_parents, sizeof(char *), GFP_KERNEL);
if (!parent_names)
parent_data = kcalloc(num_parents, sizeof(*parent_data), GFP_KERNEL);
if (!parent_data)
return -ENOMEM;
of_clk_parent_fill(node, parent_names, num_parents);
for (i = 0; i < num_parents; i++)
parent_data[i].index = i;
clk = kzalloc_obj(*clk);
if (!clk) {
kfree(parent_names);
kfree(parent_data);
return -ENOMEM;
}
clk->num_parents = num_parents;
clk->parent_names = parent_names;
clk->parent_data = parent_data;
clk->hw = hw;
clk->node = node;
clk->type = type;