Thread (8 messages) 8 messages, 5 authors, 2018-07-27

[PATCH] clk: Add functions to get optional clocks

From: sboyd@kernel.org (Stephen Boyd)
Date: 2018-07-27 16:50:20
Also in: linux-clk, lkml

Quoting Phil Edworthy (2018-07-27 08:38:12)
On 25 July 2018 23:37, Stephen Boyd wrote:
quoted
Short answer is they don't. I'd still prefer we have this API though.

Can you rework this patch to be a little more invasive into the
clk_get() path, perhaps by reworking __of_clk_get_by_name() a little to
take an 'optional' argument, so that it only returns NULL when the clk is
looked up from DT? The fallback path in clkdev where we have a DT based
system looking up a clk through clkdev lookups doesn't seem to be a real
scenario that we should worry about here. I think sometimes people use
clkdev lookups when they're migrating to DT systems and things aren't wired
up properly in DT, but that isn't the norm.
Do you mean something like this:
[...]
quoted hunk ↗ jump to hunk
diff --git a/include/linux/clk.h b/include/linux/clk.h
index 907202b..830209a 100644
--- a/include/linux/clk.h
+++ b/include/linux/clk.h
@@ -771,6 +771,7 @@ static inline void clk_bulk_disable_unprepare(int num_clks,
 #if defined(CONFIG_OF) && defined(CONFIG_COMMON_CLK)
 struct clk *of_clk_get(struct device_node *np, int index);
 struct clk *of_clk_get_by_name(struct device_node *np, const char *name);
+struct clk *of_clk_get_by_name_optional(struct device_node *np, const char *name);
 struct clk *of_clk_get_from_provider(struct of_phandle_args *clkspec);
 #else
 static inline struct clk *of_clk_get(struct device_node *np, int index)
---
A lot of drivers use devm_clk_get() so I think a devm_clk_get_optional()
version would be useful. That would probably need an additional
clk_get_optional() function.
Yes, this would be the first patch, and then the second patch would add
clk_get_optional() and devm_clk_get_optional(). We shouldn't encourage
consumers to move from device based to DT node based clk_get() for the
optional clk API.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help