diff options
author | Stephen Boyd <sboyd@kernel.org> | 2018-11-27 22:33:58 -0800 |
---|---|---|
committer | Stephen Boyd <sboyd@kernel.org> | 2018-11-27 22:33:58 -0800 |
commit | 149964e2d618e60df5ba82a5a153cef2fbc4a31e (patch) | |
tree | 590fc42cd2ca687e95221ff18309cdac2d0faca8 /drivers | |
parent | 27c0f2b0197070c8e94bdf28686d4c63b959dea8 (diff) | |
parent | b181b3b801da8893c8eb706e448dd5111b02de60 (diff) |
Merge branch 'clk-protected-binding' into clk-fixes
* clk-protected-binding:
clk: qcom: Support 'protected-clocks' property
dt-bindings: clk: Introduce 'protected-clocks' property
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/clk/qcom/common.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/clk/qcom/common.c b/drivers/clk/qcom/common.c index db9b2471ac40..0a48ed56833b 100644 --- a/drivers/clk/qcom/common.c +++ b/drivers/clk/qcom/common.c @@ -191,6 +191,22 @@ int qcom_cc_register_sleep_clk(struct device *dev) } EXPORT_SYMBOL_GPL(qcom_cc_register_sleep_clk); +/* Drop 'protected-clocks' from the list of clocks to register */ +static void qcom_cc_drop_protected(struct device *dev, struct qcom_cc *cc) +{ + struct device_node *np = dev->of_node; + struct property *prop; + const __be32 *p; + u32 i; + + of_property_for_each_u32(np, "protected-clocks", prop, p, i) { + if (i >= cc->num_rclks) + continue; + + cc->rclks[i] = NULL; + } +} + static struct clk_hw *qcom_cc_clk_hw_get(struct of_phandle_args *clkspec, void *data) { @@ -251,6 +267,8 @@ int qcom_cc_really_probe(struct platform_device *pdev, cc->rclks = rclks; cc->num_rclks = num_clks; + qcom_cc_drop_protected(dev, cc); + for (i = 0; i < num_clks; i++) { if (!rclks[i]) continue; |