Merge branch 'clk-iproc' into clk-next
[firefly-linux-kernel-4.4.55.git] / drivers / clk / bcm / clk-iproc.h
index d834b7abd5c6a703b8ebf361d70a96c3361ecb3d..8988de70a98cc3fd38c4d72212443ce8250ffca3 100644 (file)
  */
 #define IPROC_CLK_PLL_NEEDS_SW_CFG BIT(4)
 
+/*
+ * Some PLLs use a different way to control clock power, via the PWRDWN bit in
+ * the PLL control register
+ */
+#define IPROC_CLK_EMBED_PWRCTRL BIT(5)
+
+/*
+ * Some PLLs have separate registers for Status and Control.  Identify this to
+ * let the driver know if additional registers need to be used
+ */
+#define IPROC_CLK_PLL_SPLIT_STAT_CTRL BIT(6)
+
 /*
  * Parameters for VCO frequency configuration
  *
@@ -88,12 +100,19 @@ struct iproc_pll_aon_pwr_ctrl {
 };
 
 /*
- * Control of the PLL reset, with Ki, Kp, and Ka parameters
+ * Control of the PLL reset
  */
 struct iproc_pll_reset_ctrl {
        unsigned int offset;
        unsigned int reset_shift;
        unsigned int p_reset_shift;
+};
+
+/*
+ * Control of the Ki, Kp, and Ka parameters
+ */
+struct iproc_pll_dig_filter_ctrl {
+       unsigned int offset;
        unsigned int ki_shift;
        unsigned int ki_width;
        unsigned int kp_shift;
@@ -123,6 +142,7 @@ struct iproc_pll_ctrl {
        struct iproc_pll_aon_pwr_ctrl aon;
        struct iproc_asiu_gate asiu;
        struct iproc_pll_reset_ctrl reset;
+       struct iproc_pll_dig_filter_ctrl dig_filter;
        struct iproc_pll_sw_ctrl sw_ctrl;
        struct iproc_clk_reg_op ndiv_int;
        struct iproc_clk_reg_op ndiv_frac;