#define to_clk_zx_audio(_hw) container_of(_hw, struct clk_zx_audio, hw)
 
 #define CFG0_CFG1_OFFSET 4
-#define LOCK_FLAG BIT(30)
-#define POWER_DOWN BIT(31)
+#define LOCK_FLAG 30
+#define POWER_DOWN 31
 
 static int rate_to_idx(struct clk_zx_pll *zx_pll, unsigned long rate)
 {
        hw_cfg1 = readl_relaxed(zx_pll->reg_base + CFG0_CFG1_OFFSET);
 
        /* For matching the value in lookup table */
-       hw_cfg0 &= ~LOCK_FLAG;
-       hw_cfg0 |= POWER_DOWN;
+       hw_cfg0 &= ~BIT(zx_pll->lock_bit);
+       hw_cfg0 |= BIT(zx_pll->pd_bit);
 
        for (i = 0; i < zx_pll->count; i++) {
                if (hw_cfg0 == config[i].cfg0 && hw_cfg1 == config[i].cfg1)
        u32 reg;
 
        reg = readl_relaxed(zx_pll->reg_base);
-       writel_relaxed(reg & ~POWER_DOWN, zx_pll->reg_base);
+       writel_relaxed(reg & ~BIT(zx_pll->pd_bit), zx_pll->reg_base);
 
        return readl_relaxed_poll_timeout(zx_pll->reg_base, reg,
-                                         reg & LOCK_FLAG, 0, 100);
+                                         reg & BIT(zx_pll->lock_bit), 0, 100);
 }
 
 static void zx_pll_disable(struct clk_hw *hw)
        u32 reg;
 
        reg = readl_relaxed(zx_pll->reg_base);
-       writel_relaxed(reg | POWER_DOWN, zx_pll->reg_base);
+       writel_relaxed(reg | BIT(zx_pll->pd_bit), zx_pll->reg_base);
 }
 
 static int zx_pll_is_enabled(struct clk_hw *hw)
 
        reg = readl_relaxed(zx_pll->reg_base);
 
-       return !(reg & POWER_DOWN);
+       return !(reg & BIT(zx_pll->pd_bit));
 }
 
-static const struct clk_ops zx_pll_ops = {
+const struct clk_ops zx_pll_ops = {
        .recalc_rate = zx_pll_recalc_rate,
        .round_rate = zx_pll_round_rate,
        .set_rate = zx_pll_set_rate,
        .disable = zx_pll_disable,
        .is_enabled = zx_pll_is_enabled,
 };
+EXPORT_SYMBOL(zx_pll_ops);
 
 struct clk *clk_register_zx_pll(const char *name, const char *parent_name,
                                unsigned long flags, void __iomem *reg_base,
        zx_pll->reg_base = reg_base;
        zx_pll->lookup_table = lookup_table;
        zx_pll->count = count;
+       zx_pll->lock_bit = LOCK_FLAG;
+       zx_pll->pd_bit = POWER_DOWN;
        zx_pll->lock = lock;
        zx_pll->hw.init = &init;
 
 
        const struct zx_pll_config *lookup_table; /* order by rate asc */
        int count;
        spinlock_t *lock;
+       u8 pd_bit;              /* power down bit */
+       u8 lock_bit;            /* pll lock flag bit */
 };
 
 struct clk *clk_register_zx_pll(const char *name, const char *parent_name,
 struct clk *clk_register_zx_audio(const char *name,
                                  const char * const parent_name,
                                  unsigned long flags, void __iomem *reg_base);
+
+extern const struct clk_ops zx_pll_ops;
 #endif