[PATCH RFC 1/3] clk: of: helper for determining number of parent clocks

From: Mike Turquette
Date: Mon Jun 03 2013 - 13:54:27 EST

Walks the "clocks" array of parent clock phandles and returns the

Signed-off-by: Mike Turquette <mturquette@xxxxxxxxxx>
DT gurus, please let me know if this is stupid. I am unfamiliar with
parsing DT blobs and associated APIs.

drivers/clk/clk.c | 6 ++++++
include/linux/clk-provider.h | 1 +
2 files changed, 7 insertions(+)

diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index af0dbcc..73e0358 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -2082,6 +2082,12 @@ struct clk *of_clk_get_from_provider(struct of_phandle_args *clkspec)
return clk;

+int of_clk_get_parent_count(struct device_node *np)
+ return of_count_phandle_with_args(np, "clocks", "#clock-cells");
const char *of_clk_get_parent_name(struct device_node *np, int index)
struct of_phandle_args clkspec;
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
index 265f384..f8d38f2 100644
--- a/include/linux/clk-provider.h
+++ b/include/linux/clk-provider.h
@@ -442,6 +442,7 @@ void of_clk_del_provider(struct device_node *np);
struct clk *of_clk_src_simple_get(struct of_phandle_args *clkspec,
void *data);
struct clk *of_clk_src_onecell_get(struct of_phandle_args *clkspec, void *data);
+int of_clk_get_parent_count(struct device_node *np);
const char *of_clk_get_parent_name(struct device_node *np, int index);

void of_clk_init(const struct of_device_id *matches);

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/