diff options
author | Stephen Boyd <sboyd@codeaurora.org> | 2014-04-29 02:58:11 +0400 |
---|---|---|
committer | Stephen Boyd <sboyd@codeaurora.org> | 2014-09-23 02:16:53 +0400 |
commit | ae3669ac5c09fa8dfc8d8a294ccb5f265b8929be (patch) | |
tree | 1efe8d4819877227dee3b50771366fa9dd20ae42 /drivers/clk/qcom/clk-pll.h | |
parent | 50c6a50344c58f73c697e2fe38960dc176a2e69f (diff) | |
download | linux-ae3669ac5c09fa8dfc8d8a294ccb5f265b8929be.tar.xz |
clk: qcom: Add support for setting rates on PLLs
Some PLLs may require changing their rate at runtime. Add support
for these PLLs.
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Diffstat (limited to 'drivers/clk/qcom/clk-pll.h')
-rw-r--r-- | drivers/clk/qcom/clk-pll.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/clk/qcom/clk-pll.h b/drivers/clk/qcom/clk-pll.h index 3003e9962472..c9c0cda306d0 100644 --- a/drivers/clk/qcom/clk-pll.h +++ b/drivers/clk/qcom/clk-pll.h @@ -18,6 +18,21 @@ #include "clk-regmap.h" /** + * struct pll_freq_tbl - PLL frequency table + * @l: L value + * @m: M value + * @n: N value + * @ibits: internal values + */ +struct pll_freq_tbl { + unsigned long freq; + u16 l; + u16 m; + u16 n; + u32 ibits; +}; + +/** * struct clk_pll - phase locked loop (PLL) * @l_reg: L register * @m_reg: M register @@ -26,6 +41,7 @@ * @mode_reg: mode register * @status_reg: status register * @status_bit: ANDed with @status_reg to determine if PLL is enabled + * @freq_tbl: PLL frequency table * @hw: handle between common and hardware-specific interfaces */ struct clk_pll { @@ -36,6 +52,10 @@ struct clk_pll { u32 mode_reg; u32 status_reg; u8 status_bit; + u8 post_div_width; + u8 post_div_shift; + + const struct pll_freq_tbl *freq_tbl; struct clk_regmap clkr; }; |