summaryrefslogtreecommitdiff
path: root/drivers/clk/qcom/lcc-ipq806x.c
diff options
context:
space:
mode:
authorStephen Boyd <sboyd@codeaurora.org>2015-03-06 15:41:53 -0800
committerStephen Boyd <sboyd@codeaurora.org>2015-03-12 12:20:30 -0700
commit9d3745d44a7faa7d24db7facb1949a1378162f3e (patch)
treed98f818f3c4c2011299f803e8b80aeda2f56c648 /drivers/clk/qcom/lcc-ipq806x.c
parent65bd20046f15c9c465df7aa9b86491e56e9c0d25 (diff)
clk: qcom: Properly change rates for ahbix clock
The ahbix clock can never be turned off in practice. To change the rates we need to switch the mux off the M/N counter to an always on source (XO), reprogram the M/N counter to get the rate we want and finally switch back to the M/N counter. Add a new ops structure for this type of clock so that we can set the rate properly. Fixes: c99e515a92e9 "clk: qcom: Add IPQ806X LPASS clock controller (LCC) driver" Tested-by: Kenneth Westfield <kwestfie@codeaurora.org> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Diffstat (limited to 'drivers/clk/qcom/lcc-ipq806x.c')
-rw-r--r--drivers/clk/qcom/lcc-ipq806x.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/clk/qcom/lcc-ipq806x.c b/drivers/clk/qcom/lcc-ipq806x.c
index 121ffde25dc3..5e4a3dafcf63 100644
--- a/drivers/clk/qcom/lcc-ipq806x.c
+++ b/drivers/clk/qcom/lcc-ipq806x.c
@@ -386,13 +386,12 @@ static struct clk_rcg ahbix_clk = {
.freq_tbl = clk_tbl_ahbix,
.clkr = {
.enable_reg = 0x38,
- .enable_mask = BIT(10), /* toggle the gfmux to select mn/pxo */
+ .enable_mask = BIT(11),
.hw.init = &(struct clk_init_data){
.name = "ahbix",
.parent_names = lcc_pxo_pll4,
.num_parents = 2,
- .ops = &clk_rcg_ops,
- .flags = CLK_SET_RATE_GATE,
+ .ops = &clk_rcg_lcc_ops,
},
},
};