summaryrefslogtreecommitdiff
path: root/drivers/clk/qcom/clk-pll.h
diff options
context:
space:
mode:
authorStephen Boyd <sboyd@codeaurora.org>2014-04-28 22:58:11 (GMT)
committerStephen Boyd <sboyd@codeaurora.org>2014-09-22 22:16:53 (GMT)
commitae3669ac5c09fa8dfc8d8a294ccb5f265b8929be (patch)
tree1efe8d4819877227dee3b50771366fa9dd20ae42 /drivers/clk/qcom/clk-pll.h
parent50c6a50344c58f73c697e2fe38960dc176a2e69f (diff)
downloadlinux-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.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/clk/qcom/clk-pll.h b/drivers/clk/qcom/clk-pll.h
index 3003e99..c9c0cda 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;
};