diff options
author | Stephen Boyd <sboyd@codeaurora.org> | 2015-03-07 02:41:53 +0300 |
---|---|---|
committer | Stephen Boyd <sboyd@codeaurora.org> | 2015-03-12 22:20:30 +0300 |
commit | 9d3745d44a7faa7d24db7facb1949a1378162f3e (patch) | |
tree | d98f818f3c4c2011299f803e8b80aeda2f56c648 /drivers/clk/qcom/lcc-ipq806x.c | |
parent | 65bd20046f15c9c465df7aa9b86491e56e9c0d25 (diff) | |
download | linux-9d3745d44a7faa7d24db7facb1949a1378162f3e.tar.xz |
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.c | 5 |
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, }, }, }; |