Commit d02747e9 authored by Tony Lindgren's avatar Tony Lindgren Committed by Stephen Boyd
Browse files

clk: ti: Use clock-output-names for clkctrl



Use clock-output-names devicetree property for clkctrl clocks if
available.

Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
Link: https://lore.kernel.org/r/20220204071449.16762-6-tony@atomide.com


Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
parent 51f661ef
Loading
Loading
Loading
Loading
+20 −2
Original line number Diff line number Diff line
@@ -469,14 +469,32 @@ static void __init _clkctrl_add_provider(void *data,
	of_clk_add_hw_provider(np, _ti_omap4_clkctrl_xlate, data);
}

/* Get clock name based on compatible string for clkctrl */
static char * __init clkctrl_get_name(struct device_node *np)
/*
 * Get clock name based on "clock-output-names" property or the
 * compatible property for clkctrl.
 */
static const char * __init clkctrl_get_name(struct device_node *np)
{
	struct property *prop;
	const int prefix_len = 11;
	const char *compat;
	const char *output;
	char *name;

	if (!of_property_read_string_index(np, "clock-output-names", 0,
					   &output)) {
		const char *end;
		int len;

		len = strlen(output);
		end = strstr(output, "_clkctrl");
		if (end)
			len -= strlen(end);
		name = kstrndup(output, len, GFP_KERNEL);

		return name;
	}

	of_property_for_each_string(np, "compatible", prop, compat) {
		if (!strncmp("ti,clkctrl-", compat, prefix_len)) {
			/* Two letter minimum name length for l3, l4 etc */