clk: add devm_get_clk_from_child() API
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Mon, 5 Dec 2016 05:23:20 +0000 (05:23 +0000)
committerStephen Boyd <sboyd@codeaurora.org>
Fri, 9 Dec 2016 00:37:33 +0000 (16:37 -0800)
commit71a2f11511b4d1dc8b8e326e10ec6533b534ddf1
treee6057334500d72bc2637f811ebcb7d761bb7f135
parent16cd77645bddbcee951c63b964f23826dadbfd2e
clk: add devm_get_clk_from_child() API

Some driver is using this type of DT bindings for clock (more detail,
see ${LINUX}/Documentation/devicetree/bindings/sound/simple-card.txt).

sound_soc {
...
cpu {
clocks = <&xxx>;
...
};
codec {
clocks = <&xxx>;
...
};
};

Current driver in this case uses of_clk_get() for each node, but there
is no devm_of_clk_get() today.
OTOH, the problem of having devm_of_clk_get() is that it encourages the
use of of_clk_get() when clk_get() is more desirable.

Thus, this patch adds new devm_get_clk_from_chile() which explicitly
reads as get a clock from a child node of this device.
By this function, we can also use this type of DT bindings

sound_soc {
clocks = <&xxx>, <&xxx>;
clock-names = "cpu", "codec";
clock-ranges;
...
cpu {
...
};
codec {
...
};
};

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
[sboyd@codeurora.org: Rename subject to clk + add API]
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
drivers/clk/clk-devres.c
include/linux/clk.h