diff options
author | Bjorn Andersson <bjorn.andersson@linaro.org> | 2017-07-13 00:04:16 +0200 |
---|---|---|
committer | Stephen Boyd <sboyd@codeaurora.org> | 2017-07-13 08:50:53 +0200 |
commit | 3c48d86cc959309ee168fb87737a8cb3f97c5224 (patch) | |
tree | 4d4b13eb9415807c970732f6e3ff807ac86f48ea /include | |
parent | clk: add managed version of clk_bulk_get (diff) | |
download | linux-3c48d86cc959309ee168fb87737a8cb3f97c5224.tar.xz linux-3c48d86cc959309ee168fb87737a8cb3f97c5224.zip |
clk: Provide bulk prepare_enable disable_unprepare variants
This extends the existing set of bulk helpers with prepare_enable and
disable_unprepare variants.
Cc: Russell King <linux@armlinux.org.uk>,
Cc: Dong Aisheng <aisheng.dong@nxp.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/clk.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/linux/clk.h b/include/linux/clk.h index c673f0b91751..690e6a6921e1 100644 --- a/include/linux/clk.h +++ b/include/linux/clk.h @@ -657,6 +657,28 @@ static inline void clk_disable_unprepare(struct clk *clk) clk_unprepare(clk); } +static inline int clk_bulk_prepare_enable(int num_clks, + struct clk_bulk_data *clks) +{ + int ret; + + ret = clk_bulk_prepare(num_clks, clks); + if (ret) + return ret; + ret = clk_bulk_enable(num_clks, clks); + if (ret) + clk_bulk_unprepare(num_clks, clks); + + return ret; +} + +static inline void clk_bulk_disable_unprepare(int num_clks, + struct clk_bulk_data *clks) +{ + clk_bulk_disable(num_clks, clks); + clk_bulk_unprepare(num_clks, 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); |