clk: ti: Add ti_dt_clk_name() helper to use clock-output-names
[ Upstream commit 2c1593328d7f02fe49de5ad6b42c36296c9d6922 ] Let's create the clock alias based on the clock-output-names property if available. Also the component clock drivers can use ti_dt_clk_name() in the following patches. Signed-off-by: Tony Lindgren <tony@atomide.com> Link: https://lore.kernel.org/r/20220204071449.16762-7-tony@atomide.com Signed-off-by: Stephen Boyd <sboyd@kernel.org> Stable-dep-of: 7af5b9eadd64 ("clk: ti: fix double free in of_ti_divider_clk_setup()") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
de33b367f8
commit
00c67e0aa7
@@ -402,6 +402,24 @@ static const struct of_device_id simple_clk_match_table[] __initconst = {
|
|||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ti_dt_clk_name - init clock name from first output name or node name
|
||||||
|
* @np: device node
|
||||||
|
*
|
||||||
|
* Use the first clock-output-name for the clock name if found. Fall back
|
||||||
|
* to legacy naming based on node name.
|
||||||
|
*/
|
||||||
|
const char *ti_dt_clk_name(struct device_node *np)
|
||||||
|
{
|
||||||
|
const char *name;
|
||||||
|
|
||||||
|
if (!of_property_read_string_index(np, "clock-output-names", 0,
|
||||||
|
&name))
|
||||||
|
return name;
|
||||||
|
|
||||||
|
return np->name;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ti_clk_add_aliases - setup clock aliases
|
* ti_clk_add_aliases - setup clock aliases
|
||||||
*
|
*
|
||||||
@@ -418,7 +436,7 @@ void __init ti_clk_add_aliases(void)
|
|||||||
clkspec.np = np;
|
clkspec.np = np;
|
||||||
clk = of_clk_get_from_provider(&clkspec);
|
clk = of_clk_get_from_provider(&clkspec);
|
||||||
|
|
||||||
ti_clk_add_alias(NULL, clk, np->name);
|
ti_clk_add_alias(NULL, clk, ti_dt_clk_name(np));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -214,6 +214,7 @@ struct clk *ti_clk_register(struct device *dev, struct clk_hw *hw,
|
|||||||
const char *con);
|
const char *con);
|
||||||
struct clk *ti_clk_register_omap_hw(struct device *dev, struct clk_hw *hw,
|
struct clk *ti_clk_register_omap_hw(struct device *dev, struct clk_hw *hw,
|
||||||
const char *con);
|
const char *con);
|
||||||
|
const char *ti_dt_clk_name(struct device_node *np);
|
||||||
int ti_clk_add_alias(struct device *dev, struct clk *clk, const char *con);
|
int ti_clk_add_alias(struct device *dev, struct clk *clk, const char *con);
|
||||||
void ti_clk_add_aliases(void);
|
void ti_clk_add_aliases(void);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user