#define RK3066_PLLCON0_NR_SHIFT                8
 #define RK3066_PLLCON1_NF_MASK         0x1fff
 #define RK3066_PLLCON1_NF_SHIFT                0
-#define RK3066_PLLCON2_BWADJ_MASK      0xfff
-#define RK3066_PLLCON2_BWADJ_SHIFT     0
+#define RK3066_PLLCON2_NB_MASK         0xfff
+#define RK3066_PLLCON2_NB_SHIFT                0
 #define RK3066_PLLCON3_RESET           (1 << 5)
 #define RK3066_PLLCON3_PWRDOWN         (1 << 1)
 #define RK3066_PLLCON3_BYPASS          (1 << 0)
        writel_relaxed(HIWORD_UPDATE(rate->nf - 1, RK3066_PLLCON1_NF_MASK,
                                                   RK3066_PLLCON1_NF_SHIFT),
                       pll->reg_base + RK3066_PLLCON(1));
-       writel_relaxed(HIWORD_UPDATE(rate->bwadj, RK3066_PLLCON2_BWADJ_MASK,
-                                                 RK3066_PLLCON2_BWADJ_SHIFT),
+       writel_relaxed(HIWORD_UPDATE(rate->nb - 1, RK3066_PLLCON2_NB_MASK,
+                                                  RK3066_PLLCON2_NB_SHIFT),
                       pll->reg_base + RK3066_PLLCON(2));
 
        /* leave reset and wait the reset_delay */
 {
        struct rockchip_clk_pll *pll = to_rockchip_clk_pll(hw);
        const struct rockchip_pll_rate_table *rate;
-       unsigned int nf, nr, no, bwadj;
+       unsigned int nf, nr, no, nb;
        unsigned long drate;
        u32 pllcon;
 
        nf = ((pllcon >> RK3066_PLLCON1_NF_SHIFT) & RK3066_PLLCON1_NF_MASK) + 1;
 
        pllcon = readl_relaxed(pll->reg_base + RK3066_PLLCON(2));
-       bwadj = (pllcon >> RK3066_PLLCON2_BWADJ_SHIFT) & RK3066_PLLCON2_BWADJ_MASK;
+       nb = ((pllcon >> RK3066_PLLCON2_NB_SHIFT) & RK3066_PLLCON2_NB_MASK) + 1;
 
-       pr_debug("%s: pll %s@%lu: nr (%d:%d); no (%d:%d); nf(%d:%d), bwadj(%d:%d)\n",
+       pr_debug("%s: pll %s@%lu: nr (%d:%d); no (%d:%d); nf(%d:%d), nb(%d:%d)\n",
                 __func__, __clk_get_name(hw->clk), drate, rate->nr, nr,
-               rate->no, no, rate->nf, nf, rate->bwadj, bwadj);
+               rate->no, no, rate->nf, nf, rate->nb, nb);
        if (rate->nr != nr || rate->no != no || rate->nf != nf
-                                            || rate->bwadj != bwadj) {
+                                            || rate->nb != nb) {
                struct clk *parent = __clk_get_parent(hw->clk);
                unsigned long prate;
 
 
        RK3066_PLL_RATE( 742500000, 8, 495, 2),
        RK3066_PLL_RATE( 696000000, 1, 58, 2),
        RK3066_PLL_RATE( 600000000, 1, 50, 2),
-       RK3066_PLL_RATE_BWADJ(594000000, 1, 198, 8, 1),
+       RK3066_PLL_RATE_NB(594000000, 1, 198, 8, 1),
        RK3066_PLL_RATE( 552000000, 1, 46, 2),
        RK3066_PLL_RATE( 504000000, 1, 84, 4),
        RK3066_PLL_RATE( 500000000, 3, 125, 2),
 
        .nr = _nr,                              \
        .nf = _nf,                              \
        .no = _no,                              \
-       .bwadj = ((_nf) >> 1),                  \
+       .nb = ((_nf) < 2) ? 1 : (_nf) >> 1,     \
 }
 
-#define RK3066_PLL_RATE_BWADJ(_rate, _nr, _nf, _no, _bw)       \
+#define RK3066_PLL_RATE_NB(_rate, _nr, _nf, _no, _nb)          \
 {                                                              \
        .rate   = _rate##U,                                     \
        .nr = _nr,                                              \
        .nf = _nf,                                              \
        .no = _no,                                              \
-       .bwadj = _bw,                                           \
+       .nb = _nb,                                              \
 }
 
 struct rockchip_pll_rate_table {
        unsigned int nr;
        unsigned int nf;
        unsigned int no;
-       unsigned int bwadj;
+       unsigned int nb;
 };
 
 /**