Rework PLL/clock related registers/bit fields in common QCA header
authorPiotr Dymacz <pepe2k@gmail.com>
Sun, 12 Jun 2016 14:17:12 +0000 (16:17 +0200)
committerPiotr Dymacz <pepe2k@gmail.com>
Sun, 12 Jun 2016 14:17:12 +0000 (16:17 +0200)
u-boot/include/soc/qca_soc_common.h

index c3164c273ec9ff36621ec56e9c854485742dcf52..ea988158a0d45175c220ddff7af44dd24d26bc21 100644 (file)
 /*
  * PLL control registers
  */
-#define QCA_PLL_CPU_PLL_CFG_REG                                                        QCA_PLL_BASE_REG + 0x00
+#define QCA_PLL_CPU_PLL_CFG_REG                                                                QCA_PLL_BASE_REG + 0x00
 
 #if (SOC_TYPE & QCA_AR933X_SOC)
-       #define QCA_PLL_CPU_PLL_CFG2_REG                                        QCA_PLL_BASE_REG + 0x04
-       #define QCA_PLL_CPU_CLK_CTRL_REG                                        QCA_PLL_BASE_REG + 0x08
-       #define QCA_PLL_CPU_PLL_DITHER_FRAC_REG                         QCA_PLL_BASE_REG + 0x10
-       #define QCA_PLL_CPU_PLL_DITHER_REG                                      QCA_PLL_BASE_REG + 0x14
-       #define QCA_PLL_ETHSW_CLK_CTRL_REG                                      QCA_PLL_BASE_REG + 0x24
-       #define QCA_PLL_ETH_XMII_CTRL_REG                                       QCA_PLL_BASE_REG + 0x2C
-       #define QCA_PLL_USB_SUSPEND_REG                                         QCA_PLL_BASE_REG + 0x40
-       #define QCA_PLL_WLAN_CLK_CTRL_REG                                       QCA_PLL_BASE_REG + 0x44
+       #define QCA_PLL_CPU_PLL_CFG2_REG                                                QCA_PLL_BASE_REG + 0x04
+       #define QCA_PLL_CPU_CLK_CTRL_REG                                                QCA_PLL_BASE_REG + 0x08
+       #define QCA_PLL_CPU_PLL_DITHER_FRAC_REG                                 QCA_PLL_BASE_REG + 0x10
+       #define QCA_PLL_CPU_PLL_DITHER_REG                                              QCA_PLL_BASE_REG + 0x14
+       #define QCA_PLL_ETHSW_CLK_CTRL_REG                                              QCA_PLL_BASE_REG + 0x24
+       #define QCA_PLL_ETH_XMII_CTRL_REG                                               QCA_PLL_BASE_REG + 0x2C
+       #define QCA_PLL_USB_SUSPEND_REG                                                 QCA_PLL_BASE_REG + 0x40
+       #define QCA_PLL_WLAN_CLK_CTRL_REG                                               QCA_PLL_BASE_REG + 0x44
 #else
-       #define QCA_PLL_DDR_PLL_CFG_REG                                         QCA_PLL_BASE_REG + 0x04
-       #define QCA_PLL_CPU_DDR_CLK_CTRL_REG                            QCA_PLL_BASE_REG + 0x08
-
-       #if (SOC_TYPE & QCA_QCA955X_SOC)
-               #define QCA_PLL_PCIE_PLL_CFG_REG                                QCA_PLL_BASE_REG + 0x0C
-               #define QCA_PLL_PCIE_PLL_DITHER_DIV_MAX_REG             QCA_PLL_BASE_REG + 0x10
-               #define QCA_PLL_PCIE_PLL_DITHER_DIV_MIN_REG             QCA_PLL_BASE_REG + 0x14
-               #define QCA_PLL_PCIE_PLL_DITHER_STEP_REG                QCA_PLL_BASE_REG + 0x18
-               #define QCA_PLL_LDO_POWER_CTRL_REG                              QCA_PLL_BASE_REG + 0x1C
-               #define QCA_PLL_SWITCH_CLK_CTRL_REG                             QCA_PLL_BASE_REG + 0x20
-               #define QCA_PLL_CURR_PCIE_PLL_DITHER_REG                QCA_PLL_BASE_REG + 0x24
-               #define QCA_PLL_ETH_XMII_CTRL_REG                               QCA_PLL_BASE_REG + 0x28
-               #define QCA_PLL_AUDIO_PLL_CFG_REG                               QCA_PLL_BASE_REG + 0x2C
-               #define QCA_PLL_AUDIO_PLL_MODUL_REG                             QCA_PLL_BASE_REG + 0x30
-               #define QCA_PLL_AUDIO_PLL_MODUL_STEP_REG                QCA_PLL_BASE_REG + 0x34
-               #define QCA_PLL_CURR_AUDIO_PLL_MODUL_REG                QCA_PLL_BASE_REG + 0x38
-               #define QCA_PLL_DDR_PLL_DITHER_REG                              QCA_PLL_BASE_REG + 0x40
-               #define QCA_PLL_CPU_PLL_DITHER_REG                              QCA_PLL_BASE_REG + 0x44
-               #define QCA_PLL_ETH_SGMII_CTRL_REG                              QCA_PLL_BASE_REG + 0x48
-               #define QCA_PLL_ETH_SGMII_SERDES_REG                    QCA_PLL_BASE_REG + 0x4C
-               #define QCA_PLL_SLIC_PWM_DIV_REG                                QCA_PLL_BASE_REG + 0x50
-       #else
-               #define QCA_PLL_CPU_SYNC_REG                                    QCA_PLL_BASE_REG + 0x0C
-               #define QCA_PLL_PCIE_PLL_CFG_REG                                QCA_PLL_BASE_REG + 0x10
-               #define QCA_PLL_PCIE_PLL_DITHER_DIV_MAX_REG             QCA_PLL_BASE_REG + 0x14
-               #define QCA_PLL_PCIE_PLL_DITHER_DIV_MIN_REG             QCA_PLL_BASE_REG + 0x18
-               #define QCA_PLL_PCIE_PLL_DITHER_STEP_REG                QCA_PLL_BASE_REG + 0x1C
-               #define QCA_PLL_LDO_POWER_CTRL_REG                              QCA_PLL_BASE_REG + 0x20
-               #define QCA_PLL_SWITCH_CLK_CTRL_REG                             QCA_PLL_BASE_REG + 0x24
-
-       #if (SOC_TYPE & QCA_AR9344_SOC)
-               #define QCA_PLL_CURR_PCIE_PLL_DITHER_REG                QCA_PLL_BASE_REG + 0x28
+       #if (SOC_TYPE & QCA_QCA956X_SOC)
+               #define QCA_PLL_CPU_PLL_CFG1_REG                                        QCA_PLL_BASE_REG + 0x04
+               #define QCA_PLL_DDR_PLL_CFG_REG                                         QCA_PLL_BASE_REG + 0x08
+               #define QCA_PLL_DDR_PLL_CFG1_REG                                        QCA_PLL_BASE_REG + 0x0C
+               #define QCA_PLL_CPU_DDR_CLK_CTRL_REG                            QCA_PLL_BASE_REG + 0x10
+               #define QCA_PLL_PCIE_PLL_CFG_REG                                        QCA_PLL_BASE_REG + 0x14
+               #define QCA_PLL_PCIE_PLL_DITHER_MAX_REG                         QCA_PLL_BASE_REG + 0x18
+               #define QCA_PLL_PCIE_PLL_DITHER_MIN_REG                         QCA_PLL_BASE_REG + 0x1C
+               #define QCA_PLL_PCIE_PLL_DITHER_STEP_REG                        QCA_PLL_BASE_REG + 0x20
+               #define QCA_PLL_LDO_PWR_CTRL_REG                                        QCA_PLL_BASE_REG + 0x24
+               #define QCA_PLL_SWITCH_CLK_CTRL_REG                                     QCA_PLL_BASE_REG + 0x28
+               #define QCA_PLL_CURR_PCIE_PLL_DITHER_REG                        QCA_PLL_BASE_REG + 0x2C
+               #define QCA_PLL_ETH_XMII_CTRL_REG                                       QCA_PLL_BASE_REG + 0x30
+               #define QCA_PLL_BB_PLL_CFG_REG                                          QCA_PLL_BASE_REG + 0x34
+               #define QCA_PLL_DDR_PLL_DITHER_REG                                      QCA_PLL_BASE_REG + 0x38
+               #define QCA_PLL_DDR_PLL_DITHER2_REG                                     QCA_PLL_BASE_REG + 0x3C
+               #define QCA_PLL_CPU_PLL_DITHER_REG                                      QCA_PLL_BASE_REG + 0x40
+               #define QCA_PLL_CPU_PLL_DITHER2_REG                                     QCA_PLL_BASE_REG + 0x44
+               #define QCA_PLL_ETH_SGMII_CTRL_REG                                      QCA_PLL_BASE_REG + 0x48
+               #define QCA_PLL_ETH_SGMII_SERDES_REG                            QCA_PLL_BASE_REG + 0x4C
        #else
-               #define QCA_PLL_CURR_PLL_DITHER_REG                             QCA_PLL_BASE_REG + 0x28
-       #endif
-
-               #define QCA_PLL_ETH_XMII_CTRL_REG                               QCA_PLL_BASE_REG + 0x2C
-               #define QCA_PLL_AUDIO_PLL_CFG_REG                               QCA_PLL_BASE_REG + 0x30
-               #define QCA_PLL_AUDIO_PLL_MODUL_REG                             QCA_PLL_BASE_REG + 0x34
-               #define QCA_PLL_AUDIO_PLL_MODUL_STEP_REG                QCA_PLL_BASE_REG + 0x38
-               #define QCA_PLL_CURR_AUDIO_PLL_MODUL_REG                QCA_PLL_BASE_REG + 0x3C
-               #define QCA_PLL_BB_PLL_CFG_REG                                  QCA_PLL_BASE_REG + 0x40
-               #define QCA_PLL_DDR_PLL_DITHER_REG                              QCA_PLL_BASE_REG + 0x44
-               #define QCA_PLL_CPU_PLL_DITHER_REG                              QCA_PLL_BASE_REG + 0x48
+               #define QCA_PLL_DDR_PLL_CFG_REG                                         QCA_PLL_BASE_REG + 0x04
+               #define QCA_PLL_CPU_DDR_CLK_CTRL_REG                            QCA_PLL_BASE_REG + 0x08
+
+               #if (SOC_TYPE & QCA_QCA955X_SOC)
+                       #define QCA_PLL_PCIE_PLL_CFG_REG                                QCA_PLL_BASE_REG + 0x0C
+                       #define QCA_PLL_PCIE_PLL_DITHER_MAX_REG                 QCA_PLL_BASE_REG + 0x10
+                       #define QCA_PLL_PCIE_PLL_DITHER_MIN_REG                 QCA_PLL_BASE_REG + 0x14
+                       #define QCA_PLL_PCIE_PLL_DITHER_STEP_REG                QCA_PLL_BASE_REG + 0x18
+                       #define QCA_PLL_LDO_PWR_CTRL_REG                                QCA_PLL_BASE_REG + 0x1C
+                       #define QCA_PLL_SWITCH_CLK_CTRL_REG                             QCA_PLL_BASE_REG + 0x20
+                       #define QCA_PLL_CURR_PCIE_PLL_DITHER_REG                QCA_PLL_BASE_REG + 0x24
+                       #define QCA_PLL_ETH_XMII_CTRL_REG                               QCA_PLL_BASE_REG + 0x28
+                       #define QCA_PLL_AUDIO_PLL_CFG_REG                               QCA_PLL_BASE_REG + 0x2C
+                       #define QCA_PLL_AUDIO_PLL_MODUL_REG                             QCA_PLL_BASE_REG + 0x30
+                       #define QCA_PLL_AUDIO_PLL_MODUL_STEP_REG                QCA_PLL_BASE_REG + 0x34
+                       #define QCA_PLL_CURR_AUDIO_PLL_MODUL_REG                QCA_PLL_BASE_REG + 0x38
+                       #define QCA_PLL_BB_PLL_CFG_REG                                  QCA_PLL_BASE_REG + 0x3C
+                       #define QCA_PLL_DDR_PLL_DITHER_REG                              QCA_PLL_BASE_REG + 0x40
+                       #define QCA_PLL_CPU_PLL_DITHER_REG                              QCA_PLL_BASE_REG + 0x44
+                       #define QCA_PLL_ETH_SGMII_CTRL_REG                              QCA_PLL_BASE_REG + 0x48
+                       #define QCA_PLL_ETH_SGMII_SERDES_REG                    QCA_PLL_BASE_REG + 0x4C
+                       #define QCA_PLL_SLIC_PWM_DIV_REG                                QCA_PLL_BASE_REG + 0x50
+               #else
+                       #define QCA_PLL_CPU_SYNC_REG                                    QCA_PLL_BASE_REG + 0x0C
+                       #define QCA_PLL_PCIE_PLL_CFG_REG                                QCA_PLL_BASE_REG + 0x10
+                       #define QCA_PLL_PCIE_PLL_DITHER_MAX_REG                 QCA_PLL_BASE_REG + 0x14
+                       #define QCA_PLL_PCIE_PLL_DITHER_MIN_REG                 QCA_PLL_BASE_REG + 0x18
+                       #define QCA_PLL_PCIE_PLL_DITHER_STEP_REG                QCA_PLL_BASE_REG + 0x1C
+                       #define QCA_PLL_LDO_PWR_CTRL_REG                                QCA_PLL_BASE_REG + 0x20
+                       #define QCA_PLL_SWITCH_CLK_CTRL_REG                             QCA_PLL_BASE_REG + 0x24
+                       #define QCA_PLL_CURR_PCIE_PLL_DITHER_REG                QCA_PLL_BASE_REG + 0x28
+                       #define QCA_PLL_ETH_XMII_CTRL_REG                               QCA_PLL_BASE_REG + 0x2C
+
+                       #if (SOC_TYPE & QCA_AR934X_SOC)
+                               #define QCA_PLL_AUDIO_PLL_CFG_REG                       QCA_PLL_BASE_REG + 0x30
+                               #define QCA_PLL_AUDIO_PLL_MODUL_REG                     QCA_PLL_BASE_REG + 0x34
+                               #define QCA_PLL_AUDIO_PLL_MODUL_STEP_REG        QCA_PLL_BASE_REG + 0x38
+                               #define QCA_PLL_CURR_AUDIO_PLL_MODUL_REG        QCA_PLL_BASE_REG + 0x3C
+                       #endif
+
+                       #define QCA_PLL_BB_PLL_CFG_REG                                  QCA_PLL_BASE_REG + 0x40
+                       #define QCA_PLL_DDR_PLL_DITHER_REG                              QCA_PLL_BASE_REG + 0x44
+                       #define QCA_PLL_CPU_PLL_DITHER_REG                              QCA_PLL_BASE_REG + 0x48
+               #endif
        #endif
 #endif
 
        #define QCA_PLL_CPU_PLL_CFG_OUTDIV_SHIFT                                23
        #define QCA_PLL_CPU_PLL_CFG_OUTDIV_MASK                                 BITS(QCA_PLL_CPU_PLL_CFG_OUTDIV_SHIFT, 3)
 #else
-       #define QCA_PLL_CPU_PLL_CFG_NFRAC_SHIFT                                 0
-       #define QCA_PLL_CPU_PLL_CFG_NFRAC_MASK                                  BITS(QCA_PLL_CPU_PLL_CFG_NFRAC_SHIFT, 6)
-       #define QCA_PLL_CPU_PLL_CFG_NINT_SHIFT                                  6
-       #define QCA_PLL_CPU_PLL_CFG_NINT_MASK                                   BITS(QCA_PLL_CPU_PLL_CFG_NINT_SHIFT, 6)
+       #if (SOC_TYPE & QCA_AR934X_SOC)  |\
+               (SOC_TYPE & QCA_QCA953X_SOC) |\
+               (SOC_TYPE & QCA_QCA955X_SOC)
+               #define QCA_PLL_CPU_PLL_CFG_NFRAC_SHIFT                         0
+               #define QCA_PLL_CPU_PLL_CFG_NFRAC_MASK                          BITS(QCA_PLL_CPU_PLL_CFG_NFRAC_SHIFT, 6)
+               #define QCA_PLL_CPU_PLL_CFG_NINT_SHIFT                          6
+               #define QCA_PLL_CPU_PLL_CFG_NINT_MASK                           BITS(QCA_PLL_CPU_PLL_CFG_NINT_SHIFT, 6)
+       #endif
+
        #define QCA_PLL_CPU_PLL_CFG_REFDIV_SHIFT                                12
        #define QCA_PLL_CPU_PLL_CFG_REFDIV_MASK                                 BITS(QCA_PLL_CPU_PLL_CFG_REFDIV_SHIFT, 5)
        #define QCA_PLL_CPU_PLL_CFG_RANGE_SHIFT                                 17
 #define QCA_PLL_CPU_PLL_CFG_UPDATING_SHIFT                                     31
 #define QCA_PLL_CPU_PLL_CFG_UPDATING_MASK                                      BIT(QCA_PLL_CPU_PLL_CFG_UPDATING_SHIFT)
 
+/* CPU_PLL_CONFIG1 register (QCA956x only) */
+#define QCA_PLL_CPU_PLL_CFG1_NFRAC_L_SHIFT                                     0
+#define QCA_PLL_CPU_PLL_CFG1_NFRAC_L_MASK                                      BITS(QCA_PLL_CPU_PLL_CFG1_NFRAC_L_SHIFT, 5)
+#define QCA_PLL_CPU_PLL_CFG1_NFRAC_H_SHIFT                                     5
+#define QCA_PLL_CPU_PLL_CFG1_NFRAC_H_MASK                                      BITS(QCA_PLL_CPU_PLL_CFG1_NFRAC_H_SHIFT, 13)
+#define QCA_PLL_CPU_PLL_CFG1_NINT_SHIFT                                                18
+#define QCA_PLL_CPU_PLL_CFG1_NINT_MASK                                         BITS(QCA_PLL_CPU_PLL_CFG1_NINT_SHIFT, 9)
+
 /* CPU_PLL_CONFIG2 register (CPU phase lock loop configuration, AR933x only) */
 #define QCA_PLL_CPU_PLL_CFG2_SETTLE_TIME_SHIFT                         0
 #define QCA_PLL_CPU_PLL_CFG2_SETTLE_TIME_MASK                          BITS(QCA_PLL_CPU_PLL_CFG2_SETTLE_TIME_SHIFT, 12)
 #define QCA_PLL_WLAN_CLK_CTRL_UART_CLK88_MASK                          BIT(QCA_PLL_WLAN_CLK_CTRL_UART_CLK88_SHIFT)
 
 /* DDR_PLL_CONFIG register (DDR PLL configuration) */
-#define QCA_PLL_DDR_PLL_CFG_NFRAC_SHIFT                                                0
-#define QCA_PLL_DDR_PLL_CFG_NFRAC_MASK                                         BITS(QCA_PLL_DDR_PLL_CFG_NFRAC_SHIFT, 10)
-#define QCA_PLL_DDR_PLL_CFG_NINT_SHIFT                                         10
-#define QCA_PLL_DDR_PLL_CFG_NINT_MASK                                          BITS(QCA_PLL_DDR_PLL_CFG_NINT_SHIFT, 6)
+#if (SOC_TYPE & QCA_AR934X_SOC)  |\
+       (SOC_TYPE & QCA_QCA953X_SOC) |\
+       (SOC_TYPE & QCA_QCA955X_SOC)
+       #define QCA_PLL_DDR_PLL_CFG_NFRAC_SHIFT                                 0
+       #define QCA_PLL_DDR_PLL_CFG_NFRAC_MASK                                  BITS(QCA_PLL_DDR_PLL_CFG_NFRAC_SHIFT, 10)
+       #define QCA_PLL_DDR_PLL_CFG_NINT_SHIFT                                  10
+       #define QCA_PLL_DDR_PLL_CFG_NINT_MASK                                   BITS(QCA_PLL_DDR_PLL_CFG_NINT_SHIFT, 6)
+#endif
+
 #define QCA_PLL_DDR_PLL_CFG_REFDIV_SHIFT                                       16
 #define QCA_PLL_DDR_PLL_CFG_REFDIV_MASK                                                BITS(QCA_PLL_DDR_PLL_CFG_REFDIV_SHIFT, 5)
 #define QCA_PLL_DDR_PLL_CFG_RANGE_SHIFT                                                21
 #define QCA_PLL_DDR_PLL_CFG_UPDATING_SHIFT                                     31
 #define QCA_PLL_DDR_PLL_CFG_UPDATING_MASK                                      BIT(QCA_PLL_DDR_PLL_CFG_UPDATING_SHIFT)
 
+/* DDR_PLL_CONFIG1 register (QCA956x only) */
+#define QCA_PLL_DDR_PLL_CFG1_NFRAC_L_SHIFT                                     0
+#define QCA_PLL_DDR_PLL_CFG1_NFRAC_L_MASK                                      BITS(QCA_PLL_DDR_PLL_CFG1_NFRAC_L_SHIFT, 5)
+#define QCA_PLL_DDR_PLL_CFG1_NFRAC_H_SHIFT                                     5
+#define QCA_PLL_DDR_PLL_CFG1_NFRAC_H_MASK                                      BITS(QCA_PLL_DDR_PLL_CFG1_NFRAC_H_SHIFT, 13)
+#define QCA_PLL_DDR_PLL_CFG1_NINT_SHIFT                                                18
+#define QCA_PLL_DDR_PLL_CFG1_NINT_MASK                                         BITS(QCA_PLL_DDR_PLL_CFG1_NINT_SHIFT, 9)
+
 /* CPU_DDR_CLOCK_CONTROL register (CPU DDR clock control) */
 #define QCA_PLL_CPU_DDR_CLK_CTRL_RST_SWITCH_SHIFT                      1
 #define QCA_PLL_CPU_DDR_CLK_CTRL_RST_SWITCH_MASK                       BIT(QCA_PLL_CPU_DDR_CLK_CTRL_RST_SWITCH_SHIFT)
 #define QCA_PLL_CPU_DDR_CLK_CTRL_DDR_POST_DIV_MASK                     BITS(QCA_PLL_CPU_DDR_CLK_CTRL_DDR_POST_DIV_SHIFT, 5)
 #define QCA_PLL_CPU_DDR_CLK_CTRL_AHB_POST_DIV_SHIFT                    15
 #define QCA_PLL_CPU_DDR_CLK_CTRL_AHB_POST_DIV_MASK                     BITS(QCA_PLL_CPU_DDR_CLK_CTRL_AHB_POST_DIV_SHIFT, 5)
-#define QCA_PLL_CPU_DDR_CLK_CTRL_CPUCLK_FROM_CPUPLL_SHIFT      20
-#define QCA_PLL_CPU_DDR_CLK_CTRL_CPUCLK_FROM_CPUPLL_MASK       BIT(QCA_PLL_CPU_DDR_CLK_CTRL_CPUCLK_FROM_CPUPLL_SHIFT)
-#define QCA_PLL_CPU_DDR_CLK_CTRL_DDRCLK_FROM_DDRPLL_SHIFT      21
-#define QCA_PLL_CPU_DDR_CLK_CTRL_DDRCLK_FROM_DDRPLL_MASK       BIT(QCA_PLL_CPU_DDR_CLK_CTRL_DDRCLK_FROM_DDRPLL_SHIFT)
+
+#if (SOC_TYPE & QCA_QCA955X_SOC) |\
+       (SOC_TYPE & QCA_QCA956X_SOC)
+       #define QCA_PLL_CPU_DDR_CLK_CTRL_CPUCLK_FROM_DDRPLL_SHIFT       20
+       #define QCA_PLL_CPU_DDR_CLK_CTRL_CPUCLK_FROM_DDRPLL_MASK        BIT(QCA_PLL_CPU_DDR_CLK_CTRL_CPUCLK_FROM_DDRPLL_SHIFT)
+       #define QCA_PLL_CPU_DDR_CLK_CTRL_DDRCLK_FROM_CPUPLL_SHIFT       21
+       #define QCA_PLL_CPU_DDR_CLK_CTRL_DDRCLK_FROM_CPUPLL_MASK        BIT(QCA_PLL_CPU_DDR_CLK_CTRL_DDRCLK_FROM_CPUPLL_SHIFT)
+#else
+       #define QCA_PLL_CPU_DDR_CLK_CTRL_CPUCLK_FROM_CPUPLL_SHIFT       20
+       #define QCA_PLL_CPU_DDR_CLK_CTRL_CPUCLK_FROM_CPUPLL_MASK        BIT(QCA_PLL_CPU_DDR_CLK_CTRL_CPUCLK_FROM_CPUPLL_SHIFT)
+       #define QCA_PLL_CPU_DDR_CLK_CTRL_DDRCLK_FROM_DDRPLL_SHIFT       21
+       #define QCA_PLL_CPU_DDR_CLK_CTRL_DDRCLK_FROM_DDRPLL_MASK        BIT(QCA_PLL_CPU_DDR_CLK_CTRL_DDRCLK_FROM_DDRPLL_SHIFT)
+#endif
+
 #define QCA_PLL_CPU_DDR_CLK_CTRL_CPU_RST_EN_BP_ASRT_SHIFT      22
 #define QCA_PLL_CPU_DDR_CLK_CTRL_CPU_RST_EN_BP_ASRT_MASK       BIT(QCA_PLL_CPU_DDR_CLK_CTRL_CPU_RST_EN_BP_ASRT_SHIFT)
 #define QCA_PLL_CPU_DDR_CLK_CTRL_CPU_RST_EN_BP_DEASRT_SHIFT    23
 #define QCA_PLL_CPU_DDR_CLK_CTRL_AHBCLK_FROM_DDRPLL_SHIFT      24
 #define QCA_PLL_CPU_DDR_CLK_CTRL_AHBCLK_FROM_DDRPLL_MASK       BIT(QCA_PLL_CPU_DDR_CLK_CTRL_AHBCLK_FROM_DDRPLL_SHIFT)
 
-/* SWITCH_CLOCK_CONTROL */
-#define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_SEL_SHIFT           0
-#define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_SEL_MASK                    BIT(QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_SEL_SHIFT)
-#define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_TEST_MODE_SHIFT         1
-#define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_TEST_MODE_MASK          BIT(QCA_PLL_SWITCH_CLK_CTRL_SWITCH_TEST_MODE_SHIFT)
-#define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_OFF_SHIFT           2
-#define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_OFF_MASK                    BIT(QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_OFF_SHIFT)
-#define QCA_PLL_SWITCH_CLK_CTRL_EEE_EN_SHIFT                           3
-#define QCA_PLL_SWITCH_CLK_CTRL_EEE_EN_MASK                                    BIT(QCA_PLL_SWITCH_CLK_CTRL_EEE_EN_SHIFT)
-#define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_PLL_EN_SHIFT           4
-#define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_PLL_EN_MASK                    BIT(QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_PLL_EN_SHIFT)
-#define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_125MHZ_DIS_SHIFT       5
-#define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_125MHZ_DIS_MASK                BIT(QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_125MHZ_DIS_SHIFT)
+/* PCIE_PLL_CONFIG register (PCIE RC phase lock loop configuration) */
+#define QCA_PLL_PCIE_PLL_CFG_REFDIV_SHIFT                                      10
+#define QCA_PLL_PCIE_PLL_CFG_REFDIV_MASK                                       BITS(QCA_PLL_PCIE_PLL_CFG_REFDIV_SHIFT, 5)
+#define QCA_PLL_PCIE_PLL_CFG_BYPASS_SHIFT                                      16
+#define QCA_PLL_PCIE_PLL_CFG_BYPASS_MASK                                       BIT(QCA_PLL_PCIE_PLL_CFG_BYPASS_SHIFT)
+#define QCA_PLL_PCIE_PLL_CFG_PLLPWD_SHIFT                                      30
+#define QCA_PLL_PCIE_PLL_CFG_PLLPWD_MASK                                       BIT(QCA_PLL_PCIE_PLL_CFG_PLLPWD_SHIFT)
+#define QCA_PLL_PCIE_PLL_CFG_UPDATING_SHIFT                                    31
+#define QCA_PLL_PCIE_PLL_CFG_UPDATING_MASK                                     BIT(QCA_PLL_PCIE_PLL_CFG_UPDATING_SHIFT)
+
+/* PCIE_PLL_DITHER_DIV_MAX (PCIE PLL dither parameter) */
+#define QCA_PLL_PCIE_PLL_DITHER_MAX_NFRAC_MAX_SHIFT                    1
+#define QCA_PLL_PCIE_PLL_DITHER_MAX_NFRAC_MAX_MASK                     BITS(QCA_PLL_PCIE_PLL_DITHER_MAX_NFRAC_MAX_SHIFT, 14)
+#define QCA_PLL_PCIE_PLL_DITHER_MAX_NINT_MAX_SHIFT                     15
+#define QCA_PLL_PCIE_PLL_DITHER_MAX_NINT_MAX_MASK                      BITS(QCA_PLL_PCIE_PLL_DITHER_MAX_NINT_MAX_SHIFT, 6)
+#define QCA_PLL_PCIE_PLL_DITHER_MAX_USE_MAX_SHIFT                      30
+#define QCA_PLL_PCIE_PLL_DITHER_MAX_USE_MAX_MASK                       BIT(QCA_PLL_PCIE_PLL_DITHER_MAX_USE_MAX_SHIFT)
+#define QCA_PLL_PCIE_PLL_DITHER_MAX_DITHER_EN_SHIFT                    31
+#define QCA_PLL_PCIE_PLL_DITHER_MAX_DITHER_EN_MASK                     BIT(QCA_PLL_PCIE_PLL_DITHER_MAX_DITHER_EN_SHIFT)
+
+/* PCIE_PLL_DITHER_DIV_MIN (PCIE PLL dither parameter) */
+#define QCA_PLL_PCIE_PLL_DITHER_MIN_NFRAC_MIN_SHIFT                    1
+#define QCA_PLL_PCIE_PLL_DITHER_MIN_NFRAC_MIN_MASK                     BITS(QCA_PLL_PCIE_PLL_DITHER_MIN_NFRAC_MIN_SHIFT, 14)
+#define QCA_PLL_PCIE_PLL_DITHER_MIN_NINT_MIN_SHIFT                     15
+#define QCA_PLL_PCIE_PLL_DITHER_MIN_NINT_MIN_MASK                      BITS(QCA_PLL_PCIE_PLL_DITHER_MIN_NINT_MIN_SHIFT, 6)
+
+/* PCIE_PLL_DITHER_STEP (PCIE PLL dither parameter) */
+#define QCA_PLL_PCIE_PLL_DITHER_STEP_NFRAC_STEP_SHIFT          1
+#define QCA_PLL_PCIE_PLL_DITHER_STEP_NFRAC_STEP_MASK           BITS(QCA_PLL_PCIE_PLL_DITHER_STEP_NFRAC_STEP_SHIFT, 14)
+#define QCA_PLL_PCIE_PLL_DITHER_STEP_NINT_STEP_SHIFT           15
+#define QCA_PLL_PCIE_PLL_DITHER_STEP_NINT_STEP_MASK                    BITS(QCA_PLL_PCIE_PLL_DITHER_STEP_NINT_STEP_SHIFT, 10)
+#define QCA_PLL_PCIE_PLL_DITHER_STEP_UPDATE_CNT_SHIFT          28
+#define QCA_PLL_PCIE_PLL_DITHER_STEP_UPDATE_CNT_MASK           BITS(QCA_PLL_PCIE_PLL_DITHER_STEP_UPDATE_CNT_SHIFT, 4)
 
+/* SWITCH_CLOCK_CONTROL */
 #if (SOC_TYPE & QCA_AR934X_SOC) |\
        (SOC_TYPE & QCA_QCA953X_SOC)
-       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL_SHIFT              6
-       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL_MASK               BIT(QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL_SHIFT)
+       #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_SEL_SHIFT                    0
+       #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_SEL_MASK                             BIT(QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_SEL_SHIFT)
+       #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_TEST_MODE_SHIFT                  1
+       #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_TEST_MODE_MASK                   BIT(QCA_PLL_SWITCH_CLK_CTRL_SWITCH_TEST_MODE_SHIFT)
+       #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_OFF_SHIFT                    2
+       #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_OFF_MASK                             BIT(QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_OFF_SHIFT)
+       #define QCA_PLL_SWITCH_CLK_CTRL_EEE_EN_SHIFT                                    3
+       #define QCA_PLL_SWITCH_CLK_CTRL_EEE_EN_MASK                                             BIT(QCA_PLL_SWITCH_CLK_CTRL_EEE_EN_SHIFT)
+       #define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_PLL_EN_SHIFT                    4
+       #define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_PLL_EN_MASK                             BIT(QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_PLL_EN_SHIFT)
+       #define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_125MHZ_DIS_SHIFT                5
+       #define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_125MHZ_DIS_MASK                 BIT(QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_125MHZ_DIS_SHIFT)
+       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL_SHIFT                              6
+       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL_MASK                               BIT(QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL_SHIFT)
 #else
-       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL0_1_SHIFT   6
-       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL0_1_MASK    BIT(QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL0_1_SHIFT)
-       #define QCA_PLL_SWITCH_CLK_CTRL_NAND_CLK_SEL_SHIFT              12
-       #define QCA_PLL_SWITCH_CLK_CTRL_NAND_CLK_SEL_MASK               BIT(QCA_PLL_SWITCH_CLK_CTRL_NAND_CLK_SEL_SHIFT)
-       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL0_2_SHIFT   13
-       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL0_2_MASK    BIT(QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL0_2_SHIFT)
-       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL1_1_SHIFT   14
-       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL1_1_MASK    BIT(QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL1_1_SHIFT)
-       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL1_2_SHIFT   15
-       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL1_2_MASK    BIT(QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL1_2_SHIFT)
+       #define QCA_PLL_SWITCH_CLK_CTRL_I2C_CLK_SEL_SHIFT                               5
+       #define QCA_PLL_SWITCH_CLK_CTRL_I2C_CLK_SEL_MASK                                BIT(QCA_PLL_SWITCH_CLK_CTRL_I2C_CLK_SEL_SHIFT)
+       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL0_1_SHIFT                   6
+       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL0_1_MASK                    BIT(QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL0_1_SHIFT)
+
+       #if (SOC_TYPE & QCA_QCA955X_SOC)
+               #define QCA_PLL_SWITCH_CLK_CTRL_NAND_CLK_SEL_SHIFT                      12
+               #define QCA_PLL_SWITCH_CLK_CTRL_NAND_CLK_SEL_MASK                       BIT(QCA_PLL_SWITCH_CLK_CTRL_NAND_CLK_SEL_SHIFT)
+       #elif (SOC_TYPE & QCA_QCA956X_SOC)
+               #define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_PLL_EN_SHIFT            12
+               #define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_PLL_EN_MASK                     BIT(QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_PLL_EN_SHIFT)
+               #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_SEL_SHIFT            19
+               #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_SEL_MASK                     BIT(QCA_PLL_SWITCH_CLK_CTRL_SWITCH_CLK_SEL_SHIFT)
+               #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_TEST_MODE_SHIFT          16
+               #define QCA_PLL_SWITCH_CLK_CTRL_SWITCH_TEST_MODE_MASK           BIT(QCA_PLL_SWITCH_CLK_CTRL_SWITCH_TEST_MODE_SHIFT)
+               #define QCA_PLL_SWITCH_CLK_CTRL_EEE_EN_SHIFT                            17
+               #define QCA_PLL_SWITCH_CLK_CTRL_EEE_EN_MASK                                     BIT(QCA_PLL_SWITCH_CLK_CTRL_EEE_EN_SHIFT)
+               #define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_125MHZ_DIS_SHIFT        18
+               #define QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_125MHZ_DIS_MASK         BIT(QCA_PLL_SWITCH_CLK_CTRL_ETH_PHY_125MHZ_DIS_SHIFT)
+       #endif
+
+       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL0_2_SHIFT                   13
+       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL0_2_MASK                    BIT(QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL0_2_SHIFT)
+       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL1_1_SHIFT                   14
+       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL1_1_MASK                    BIT(QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL1_1_SHIFT)
+       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL1_2_SHIFT                   15
+       #define QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL1_2_MASK                    BIT(QCA_PLL_SWITCH_CLK_CTRL_MDIO_CLK_SEL1_2_SHIFT)
 #endif
 
-#define QCA_PLL_SWITCH_CLK_CTRL_HSUART_CLK_SEL_SHIFT           7
-#define QCA_PLL_SWITCH_CLK_CTRL_HSUART_CLK_SEL_MASK                    BIT(QCA_PLL_SWITCH_CLK_CTRL_HSUART_CLK_SEL_SHIFT)
-#define QCA_PLL_SWITCH_CLK_CTRL_USB_CLK_SEL_SHIFT                      8
-#define QCA_PLL_SWITCH_CLK_CTRL_USB_CLK_SEL_MASK                       BITS(QCA_PLL_SWITCH_CLK_CTRL_USB_CLK_SEL_SHIFT, 4)
+#define QCA_PLL_SWITCH_CLK_CTRL_HSUART_CLK_SEL_SHIFT                           7
+#define QCA_PLL_SWITCH_CLK_CTRL_HSUART_CLK_SEL_MASK                                    BIT(QCA_PLL_SWITCH_CLK_CTRL_HSUART_CLK_SEL_SHIFT)
+#define QCA_PLL_SWITCH_CLK_CTRL_USB_CLK_SEL_SHIFT                                      8
+#define QCA_PLL_SWITCH_CLK_CTRL_USB_CLK_SEL_MASK                                       BITS(QCA_PLL_SWITCH_CLK_CTRL_USB_CLK_SEL_SHIFT, 4)
 
 /* DDR_PLL_DITHER register (DDR PLL dither parameter) */
-#define QCA_PLL_DDR_PLL_DITHER_NFRAC_MAX_SHIFT                         0
-#define QCA_PLL_DDR_PLL_DITHER_NFRAC_MAX_MASK                          BITS(QCA_PLL_DDR_PLL_DITHER_NFRAC_MAX_SHIFT, 10)
-#define QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_SHIFT                         10
-#define QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_MASK                          BITS(QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_SHIFT, 10)
+#if (SOC_TYPE & QCA_QCA956X_SOC)
+       #define QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_L_SHIFT                0
+       #define QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_L_MASK                 BITS(QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_L_SHIFT, 5)
+       #define QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_H_SHIFT                5
+       #define QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_H_MASK                 BITS(QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_H_SHIFT, 13)
+#else
+       #define QCA_PLL_DDR_PLL_DITHER_NFRAC_MAX_SHIFT                  0
+       #define QCA_PLL_DDR_PLL_DITHER_NFRAC_MAX_MASK                   BITS(QCA_PLL_DDR_PLL_DITHER_NFRAC_MAX_SHIFT, 10)
+       #define QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_SHIFT                  10
+       #define QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_MASK                   BITS(QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_SHIFT, 10)
+#endif
+
 #define QCA_PLL_DDR_PLL_DITHER_NFRAC_STEP_SHIFT                                20
 #define QCA_PLL_DDR_PLL_DITHER_NFRAC_STEP_MASK                         BITS(QCA_PLL_DDR_PLL_DITHER_NFRAC_MIN_SHIFT, 7)
 #define QCA_PLL_DDR_PLL_DITHER_UPDATE_CNT_SHIFT                                27
 #define QCA_PLL_DDR_PLL_DITHER_DITHER_EN_SHIFT                         31
 #define QCA_PLL_DDR_PLL_DITHER_DITHER_EN_MASK                          BIT(QCA_PLL_DDR_PLL_DITHER_DITHER_EN_SHIFT)
 
+/* DDR_PLL_DITHER2 register (QCA956x only) */
+#define QCA_PLL_DDR_PLL_DITHER2_NFRAC_MAX_L_SHIFT                      0
+#define QCA_PLL_DDR_PLL_DITHER2_NFRAC_MAX_L_MASK                       BITS(QCA_PLL_DDR_PLL_DITHER2_NFRAC_MAX_L_SHIFT, 5)
+#define QCA_PLL_DDR_PLL_DITHER2_NFRAC_MAX_H_SHIFT                      5
+#define QCA_PLL_DDR_PLL_DITHER2_NFRAC_MAX_H_MASK                       BITS(QCA_PLL_DDR_PLL_DITHER2_NFRAC_MAX_H_SHIFT, 13)
+
 #if (SOC_TYPE & QCA_AR933X_SOC)
        /* PLL_DITHER_FRAC register (CPU PLL dither FRAC) */
        #define QCA_PLL_CPU_PLL_DITHER_FRAC_NFRAC_MAX_SHIFT             0
        /* PLL_DITHER register (CPU PLL dither) */
        #define QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_SHIFT                 0
        #define QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_MASK                  BITS(QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_SHIFT, 14)
-       #define QCA_PLL_CPU_PLL_DITHER_DITHER_EN_SHIFT                  31
-       #define QCA_PLL_CPU_PLL_DITHER_DITHER_EN_MASK                   BIT(QCA_PLL_CPU_PLL_DITHER_DITHER_EN_SHIFT)
 #else
        /* CPU_PLL_DITHER register (CPU PLL dither parameter) */
-       #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MAX_SHIFT                  0
-       #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MAX_MASK                   BITS(QCA_PLL_CPU_PLL_DITHER_NFRAC_MAX_SHIFT, 6)
-       #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_SHIFT                  6
-       #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_MASK                   BITS(QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_SHIFT, 6)
-       #define QCA_PLL_CPU_PLL_DITHER_NFRAC_STEP_SHIFT                 12
-       #define QCA_PLL_CPU_PLL_DITHER_NFRAC_STEP_MASK                  BITS(QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_SHIFT, 6)
-       #define QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_SHIFT                 18
-       #define QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_MASK                  BITS(QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_SHIFT, 6)
-       #define QCA_PLL_CPU_PLL_DITHER_DITHER_EN_SHIFT                  31
-       #define QCA_PLL_CPU_PLL_DITHER_DITHER_EN_MASK                   BIT(QCA_PLL_CPU_PLL_DITHER_DITHER_EN_SHIFT)
+       #if (SOC_TYPE & QCA_QCA956X_SOC)
+               #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_L_SHIFT        0
+               #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_L_MASK         BITS(QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_L_SHIFT, 5)
+               #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_H_SHIFT        5
+               #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_H_MASK         BITS(QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_H_SHIFT, 13)
+               #define QCA_PLL_CPU_PLL_DITHER_NFRAC_STEP_SHIFT         18
+               #define QCA_PLL_CPU_PLL_DITHER_NFRAC_STEP_MASK          BITS(QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_SHIFT, 6)
+               #define QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_SHIFT         24
+               #define QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_MASK          BITS(QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_SHIFT, 6)
+       #else
+               #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MAX_SHIFT          0
+               #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MAX_MASK           BITS(QCA_PLL_CPU_PLL_DITHER_NFRAC_MAX_SHIFT, 6)
+               #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_SHIFT          6
+               #define QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_MASK           BITS(QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_SHIFT, 6)
+               #define QCA_PLL_CPU_PLL_DITHER_NFRAC_STEP_SHIFT         12
+               #define QCA_PLL_CPU_PLL_DITHER_NFRAC_STEP_MASK          BITS(QCA_PLL_CPU_PLL_DITHER_NFRAC_MIN_SHIFT, 6)
+               #define QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_SHIFT         18
+               #define QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_MASK          BITS(QCA_PLL_CPU_PLL_DITHER_UPDATE_CNT_SHIFT, 6)
+       #endif
 #endif
 
+#define QCA_PLL_CPU_PLL_DITHER_DITHER_EN_SHIFT                         31
+#define QCA_PLL_CPU_PLL_DITHER_DITHER_EN_MASK                          BIT(QCA_PLL_CPU_PLL_DITHER_DITHER_EN_SHIFT)
+
+/* CPU_PLL_DITHER2 register (QCA956x only) */
+#define QCA_PLL_CPU_PLL_DITHER2_NFRAC_MAX_L_SHIFT                      0
+#define QCA_PLL_CPU_PLL_DITHER2_NFRAC_MAX_L_MASK                       BITS(QCA_PLL_CPU_PLL_DITHER2_NFRAC_MAX_L_SHIFT, 5)
+#define QCA_PLL_CPU_PLL_DITHER2_NFRAC_MAX_H_SHIFT                      5
+#define QCA_PLL_CPU_PLL_DITHER2_NFRAC_MAX_H_MASK                       BITS(QCA_PLL_CPU_PLL_DITHER2_NFRAC_MAX_H_SHIFT, 13)
+
 /*
  * PLL SRIF registers (not available in AR933x)
  */
-#define QCA_PLL_SRIF_CPU_DPLL1_REG                             QCA_PLL_SRIF_BASE_REG + 0x1C0
-#define QCA_PLL_SRIF_CPU_DPLL2_REG                             QCA_PLL_SRIF_BASE_REG + 0x1C4
-#define QCA_PLL_SRIF_CPU_DPLL3_REG                             QCA_PLL_SRIF_BASE_REG + 0x1C8
-#define QCA_PLL_SRIF_AUD_DPLL1_REG                             QCA_PLL_SRIF_BASE_REG + 0x200
-#define QCA_PLL_SRIF_AUD_DPLL2_REG                             QCA_PLL_SRIF_BASE_REG + 0x204
-#define QCA_PLL_SRIF_AUD_DPLL3_REG                             QCA_PLL_SRIF_BASE_REG + 0x208
-#define QCA_PLL_SRIF_DDR_DPLL1_REG                             QCA_PLL_SRIF_BASE_REG + 0x240
-#define QCA_PLL_SRIF_DDR_DPLL2_REG                             QCA_PLL_SRIF_BASE_REG + 0x244
-#define QCA_PLL_SRIF_DDR_DPLL3_REG                             QCA_PLL_SRIF_BASE_REG + 0x248
-#define QCA_PLL_SRIF_PCIE_DPLL1_REG                            QCA_PLL_SRIF_BASE_REG + 0xC00
-#define QCA_PLL_SRIF_PCIE_DPLL2_REG                            QCA_PLL_SRIF_BASE_REG + 0xC04
-#define QCA_PLL_SRIF_PCIE_DPLL3_REG                            QCA_PLL_SRIF_BASE_REG + 0xC08
+#define QCA_PLL_SRIF_BB_DPLL_BASE_REG                  QCA_PLL_SRIF_BASE_REG + 0x180
+#define QCA_PLL_SRIF_AUD_DPLL_BASE_REG                 QCA_PLL_SRIF_BASE_REG + 0x200
+
+#if (SOC_TYPE & QCA_QCA955X_SOC) |\
+       (SOC_TYPE & QCA_QCA956X_SOC)
+       #define QCA_PLL_SRIF_CPU_DPLL_BASE_REG          QCA_PLL_SRIF_BASE_REG + 0xF00
+       #define QCA_PLL_SRIF_DDR_DPLL_BASE_REG          QCA_PLL_SRIF_BASE_REG + 0xEC0
+       #define QCA_PLL_SRIF_PCIE_DPLL_BASE_REG         QCA_PLL_SRIF_BASE_REG + 0xC80
+#else
+       #define QCA_PLL_SRIF_CPU_DPLL_BASE_REG          QCA_PLL_SRIF_BASE_REG + 0x1C0
+       #define QCA_PLL_SRIF_DDR_DPLL_BASE_REG          QCA_PLL_SRIF_BASE_REG + 0x240
+       #define QCA_PLL_SRIF_PCIE_DPLL_BASE_REG         QCA_PLL_SRIF_BASE_REG + 0xC00
+#endif
+
+#define QCA_PLL_SRIF_BB_DPLL1_REG                              QCA_PLL_SRIF_BB_DPLL_BASE_REG + 0x0
+#define QCA_PLL_SRIF_BB_DPLL2_REG                              QCA_PLL_SRIF_BB_DPLL_BASE_REG + 0x4
+#define QCA_PLL_SRIF_BB_DPLL3_REG                              QCA_PLL_SRIF_BB_DPLL_BASE_REG + 0x8
+#define QCA_PLL_SRIF_BB_DPLL4_REG                              QCA_PLL_SRIF_BB_DPLL_BASE_REG + 0xC
+
+#define QCA_PLL_SRIF_CPU_DPLL1_REG                             QCA_PLL_SRIF_CPU_DPLL_BASE_REG + 0x0
+#define QCA_PLL_SRIF_CPU_DPLL2_REG                             QCA_PLL_SRIF_CPU_DPLL_BASE_REG + 0x4
+#define QCA_PLL_SRIF_CPU_DPLL3_REG                             QCA_PLL_SRIF_CPU_DPLL_BASE_REG + 0x8
+#define QCA_PLL_SRIF_CPU_DPLL4_REG                             QCA_PLL_SRIF_CPU_DPLL_BASE_REG + 0xC
+
+#define QCA_PLL_SRIF_AUD_DPLL1_REG                             QCA_PLL_SRIF_AUD_DPLL_BASE_REG + 0x0
+#define QCA_PLL_SRIF_AUD_DPLL2_REG                             QCA_PLL_SRIF_AUD_DPLL_BASE_REG + 0x4
+#define QCA_PLL_SRIF_AUD_DPLL3_REG                             QCA_PLL_SRIF_AUD_DPLL_BASE_REG + 0x8
+#define QCA_PLL_SRIF_AUD_DPLL4_REG                             QCA_PLL_SRIF_AUD_DPLL_BASE_REG + 0xC
+
+#define QCA_PLL_SRIF_DDR_DPLL1_REG                             QCA_PLL_SRIF_DDR_DPLL_BASE_REG + 0x0
+#define QCA_PLL_SRIF_DDR_DPLL2_REG                             QCA_PLL_SRIF_DDR_DPLL_BASE_REG + 0x4
+#define QCA_PLL_SRIF_DDR_DPLL3_REG                             QCA_PLL_SRIF_DDR_DPLL_BASE_REG + 0x8
+#define QCA_PLL_SRIF_DDR_DPLL4_REG                             QCA_PLL_SRIF_DDR_DPLL_BASE_REG + 0xC
+
+#define QCA_PLL_SRIF_PCIE_DPLL1_REG                            QCA_PLL_SRIF_PCIE_DPLL_BASE_REG + 0x0
+#define QCA_PLL_SRIF_PCIE_DPLL2_REG                            QCA_PLL_SRIF_PCIE_DPLL_BASE_REG + 0x4
+#define QCA_PLL_SRIF_PCIE_DPLL3_REG                            QCA_PLL_SRIF_PCIE_DPLL_BASE_REG + 0x8
+#define QCA_PLL_SRIF_PCIE_DPLL4_REG                            QCA_PLL_SRIF_PCIE_DPLL_BASE_REG + 0xC
 
 /*
  * PLL SRIF registers BIT fields (not available in AR933x)
  */
 
-/* DPLL1 (common for CPU, AUD, DDR and PCIE) */
-#define QCA_PLL_SRIF_DPLL1_NFRAC_SHIFT                 0
-#define QCA_PLL_SRIF_DPLL1_NFRAC_MASK                  BITS(QCA_PLL_SRIF_DPLL1_NFRAC_SHIFT, 18)
-#define QCA_PLL_SRIF_DPLL1_NINT_SHIFT                  18
-#define QCA_PLL_SRIF_DPLL1_NINT_MASK                   BITS(QCA_PLL_SRIF_DPLL1_NINT_SHIFT, 9)
-#define QCA_PLL_SRIF_DPLL1_REFDIV_SHIFT                        27
-#define QCA_PLL_SRIF_DPLL1_REFDIV_MASK                 BITS(QCA_PLL_SRIF_DPLL1_REFDIV_SHIFT, 5)
-
-/* DPLL2 (common for CPU, AUD, DDR and PCIE) */
-#if (SOC_TYPE & QCA_QCA953X_SOC)
+/* DPLL1 (common for BB, CPU, AUD, DDR and PCIE) */
+#define QCA_PLL_SRIF_DPLL1_NFRAC_SHIFT                         0
+#define QCA_PLL_SRIF_DPLL1_NFRAC_MASK                          BITS(QCA_PLL_SRIF_DPLL1_NFRAC_SHIFT, 18)
+#define QCA_PLL_SRIF_DPLL1_NINT_SHIFT                          18
+#define QCA_PLL_SRIF_DPLL1_NINT_MASK                           BITS(QCA_PLL_SRIF_DPLL1_NINT_SHIFT, 9)
+#define QCA_PLL_SRIF_DPLL1_REFDIV_SHIFT                                27
+#define QCA_PLL_SRIF_DPLL1_REFDIV_MASK                         BITS(QCA_PLL_SRIF_DPLL1_REFDIV_SHIFT, 5)
+
+/* DPLL2 (common for BB, CPU, AUD, DDR and PCIE) */
+#if (SOC_TYPE & QCA_QCA953X_SOC) |\
+       (SOC_TYPE & QCA_QCA956X_SOC)
        #define QCA_PLL_SRIF_DPLL2_RST_TEST_SHIFT               0
        #define QCA_PLL_SRIF_DPLL2_RST_TEST_MASK                BIT(QCA_PLL_SRIF_DPLL2_RST_TEST_SHIFT)
        #define QCA_PLL_SRIF_DPLL2_SEL_CNT_SHIFT                1
        #define QCA_PLL_SRIF_DPLL2_LOCAL_PLL_SHIFT              31
        #define QCA_PLL_SRIF_DPLL2_LOCAL_PLL_MASK               BIT(QCA_PLL_SRIF_DPLL2_LOCAL_PLL_SHIFT)
 #else
+       #define QCA_PLL_SRIF_DPLL2_TEST_IN_SHIFT                0
+       #define QCA_PLL_SRIF_DPLL2_TEST_IN_MASK                 BITS(QCA_PLL_SRIF_DPLL2_TEST_IN_SHIFT, 7)
+       #define QCA_PLL_SRIF_DPLL2_DELTA_SHIFT                  7
+       #define QCA_PLL_SRIF_DPLL2_DELTA_MASK                   BITS(QCA_PLL_SRIF_DPLL2_DELTA_SHIFT, 6)
        #define QCA_PLL_SRIF_DPLL2_OUTDIV_SHIFT                 13
        #define QCA_PLL_SRIF_DPLL2_OUTDIV_MASK                  BITS(QCA_PLL_SRIF_DPLL2_OUTDIV_SHIFT, 2)
        #define QCA_PLL_SRIF_DPLL2_PLLPWD_SHIFT                 16
        #define QCA_PLL_SRIF_DPLL2_PLLPWD_MASK                  BIT(QCA_PLL_SRIF_DPLL2_PLLPWD_SHIFT)
+       #define QCA_PLL_SRIF_DPLL2_SEL_1SDM_SHIFT               17
+       #define QCA_PLL_SRIF_DPLL2_SEL_1SDM_MASK                BIT(QCA_PLL_SRIF_DPLL2_SEL_1SDM_SHIFT)
+       #define QCA_PLL_SRIF_DPLL2_NEGTRIG_EN_SHIFT             18
+       #define QCA_PLL_SRIF_DPLL2_NEGTRIG_EN_MASK              BIT(QCA_PLL_SRIF_DPLL2_NEGTRIG_EN_SHIFT)
        #define QCA_PLL_SRIF_DPLL2_KD_SHIFT                             19
        #define QCA_PLL_SRIF_DPLL2_KD_MASK                              BITS(QCA_PLL_SRIF_DPLL2_KD_SHIFT, 7)
        #define QCA_PLL_SRIF_DPLL2_KI_SHIFT                             26
        #define QCA_PLL_SRIF_DPLL2_RANGE_MASK                   BIT(QCA_PLL_SRIF_DPLL2_RANGE_SHIFT)
 #endif
 
-/* DPLL3 (common for CPU, AUD, DDR and PCIE) */
-#define QCA_PLL_SRIF_DPLL3_PHASE_SHIFT_SHIFT   23
-#define QCA_PLL_SRIF_DPLL3_PHASE_SHIFT_MASK            BITS(QCA_PLL_SRIF_DPLL3_PHASE_SHIFT_SHIFT, 7)
+/* DPLL3 (common for BB, CPU, AUD, DDR and PCIE) */
+/* DPLL4 (common for BB, CPU, AUD, DDR and PCIE) */
+
+/*
+ * TODO: check and confirm DPLL3/4 register structure
+ */
 
 /*
  * Reset control registers