Merge tag 'for-linus-5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw...
[linux-2.6-microblaze.git] / drivers / phy / qualcomm / phy-qcom-qmp.h
index 67bd2dd..6592b58 100644 (file)
@@ -6,6 +6,138 @@
 #ifndef QCOM_PHY_QMP_H_
 #define QCOM_PHY_QMP_H_
 
+/* QMP V2 PHY for PCIE gen3 ports - QSERDES PLL registers */
+
+#define QSERDES_PLL_BG_TIMER                           0x00c
+#define QSERDES_PLL_SSC_PER1                           0x01c
+#define QSERDES_PLL_SSC_PER2                           0x020
+#define QSERDES_PLL_SSC_STEP_SIZE1_MODE0               0x024
+#define QSERDES_PLL_SSC_STEP_SIZE2_MODE0               0x028
+#define QSERDES_PLL_SSC_STEP_SIZE1_MODE1               0x02c
+#define QSERDES_PLL_SSC_STEP_SIZE2_MODE1               0x030
+#define QSERDES_PLL_BIAS_EN_CLKBUFLR_EN                        0x03c
+#define QSERDES_PLL_CLK_ENABLE1                                0x040
+#define QSERDES_PLL_SYS_CLK_CTRL                       0x044
+#define QSERDES_PLL_SYSCLK_BUF_ENABLE                  0x048
+#define QSERDES_PLL_PLL_IVCO                           0x050
+#define QSERDES_PLL_LOCK_CMP1_MODE0                    0x054
+#define QSERDES_PLL_LOCK_CMP2_MODE0                    0x058
+#define QSERDES_PLL_LOCK_CMP1_MODE1                    0x060
+#define QSERDES_PLL_LOCK_CMP2_MODE1                    0x064
+#define QSERDES_PLL_BG_TRIM                            0x074
+#define QSERDES_PLL_CLK_EP_DIV_MODE0                   0x078
+#define QSERDES_PLL_CLK_EP_DIV_MODE1                   0x07c
+#define QSERDES_PLL_CP_CTRL_MODE0                      0x080
+#define QSERDES_PLL_CP_CTRL_MODE1                      0x084
+#define QSERDES_PLL_PLL_RCTRL_MODE0                    0x088
+#define QSERDES_PLL_PLL_RCTRL_MODE1                    0x08C
+#define QSERDES_PLL_PLL_CCTRL_MODE0                    0x090
+#define QSERDES_PLL_PLL_CCTRL_MODE1                    0x094
+#define QSERDES_PLL_BIAS_EN_CTRL_BY_PSM                        0x0a4
+#define QSERDES_PLL_SYSCLK_EN_SEL                      0x0a8
+#define QSERDES_PLL_RESETSM_CNTRL                      0x0b0
+#define QSERDES_PLL_LOCK_CMP_EN                                0x0c4
+#define QSERDES_PLL_DEC_START_MODE0                    0x0cc
+#define QSERDES_PLL_DEC_START_MODE1                    0x0d0
+#define QSERDES_PLL_DIV_FRAC_START1_MODE0              0x0d8
+#define QSERDES_PLL_DIV_FRAC_START2_MODE0              0x0dc
+#define QSERDES_PLL_DIV_FRAC_START3_MODE0              0x0e0
+#define QSERDES_PLL_DIV_FRAC_START1_MODE1              0x0e4
+#define QSERDES_PLL_DIV_FRAC_START2_MODE1              0x0e8
+#define QSERDES_PLL_DIV_FRAC_START3_MODE1              0x0eC
+#define QSERDES_PLL_INTEGLOOP_GAIN0_MODE0              0x100
+#define QSERDES_PLL_INTEGLOOP_GAIN1_MODE0              0x104
+#define QSERDES_PLL_INTEGLOOP_GAIN0_MODE1              0x108
+#define QSERDES_PLL_INTEGLOOP_GAIN1_MODE1              0x10c
+#define QSERDES_PLL_VCO_TUNE_MAP                       0x120
+#define QSERDES_PLL_VCO_TUNE1_MODE0                    0x124
+#define QSERDES_PLL_VCO_TUNE2_MODE0                    0x128
+#define QSERDES_PLL_VCO_TUNE1_MODE1                    0x12c
+#define QSERDES_PLL_VCO_TUNE2_MODE1                    0x130
+#define QSERDES_PLL_VCO_TUNE_TIMER1                    0x13c
+#define QSERDES_PLL_VCO_TUNE_TIMER2                    0x140
+#define QSERDES_PLL_CLK_SELECT                         0x16c
+#define QSERDES_PLL_HSCLK_SEL                          0x170
+#define QSERDES_PLL_CORECLK_DIV                                0x17c
+#define QSERDES_PLL_CORE_CLK_EN                                0x184
+#define QSERDES_PLL_CMN_CONFIG                         0x18c
+#define QSERDES_PLL_SVS_MODE_CLK_SEL                   0x194
+#define QSERDES_PLL_CORECLK_DIV_MODE1                  0x1b4
+
+/* QMP V2 PHY for PCIE gen3 ports - QSERDES TX registers */
+
+#define QSERDES_TX0_RES_CODE_LANE_OFFSET_TX            0x03c
+#define QSERDES_TX0_HIGHZ_DRVR_EN                      0x058
+#define QSERDES_TX0_LANE_MODE_1                                0x084
+#define QSERDES_TX0_RCV_DETECT_LVL_2                   0x09c
+
+/* QMP V2 PHY for PCIE gen3 ports - QSERDES RX registers */
+
+#define QSERDES_RX0_UCDR_FO_GAIN                       0x008
+#define QSERDES_RX0_UCDR_SO_GAIN                       0x014
+#define QSERDES_RX0_UCDR_SO_SATURATION_AND_ENABLE      0x034
+#define QSERDES_RX0_UCDR_PI_CONTROLS                   0x044
+#define QSERDES_RX0_RX_EQU_ADAPTOR_CNTRL2              0x0ec
+#define QSERDES_RX0_RX_EQU_ADAPTOR_CNTRL3              0x0f0
+#define QSERDES_RX0_RX_EQU_ADAPTOR_CNTRL4              0x0f4
+#define QSERDES_RX0_RX_IDAC_TSETTLE_LOW                        0x0f8
+#define QSERDES_RX0_RX_IDAC_TSETTLE_HIGH               0x0fc
+#define QSERDES_RX0_RX_EQ_OFFSET_ADAPTOR_CNTRL1                0x110
+#define QSERDES_RX0_RX_OFFSET_ADAPTOR_CNTRL2           0x114
+#define QSERDES_RX0_SIGDET_ENABLES                     0x118
+#define QSERDES_RX0_SIGDET_CNTRL                       0x11c
+#define QSERDES_RX0_SIGDET_DEGLITCH_CNTRL              0x124
+#define QSERDES_RX0_RX_MODE_00_LOW                     0x170
+#define QSERDES_RX0_RX_MODE_00_HIGH                    0x174
+#define QSERDES_RX0_RX_MODE_00_HIGH2                   0x178
+#define QSERDES_RX0_RX_MODE_00_HIGH3                   0x17c
+#define QSERDES_RX0_RX_MODE_00_HIGH4                   0x180
+#define QSERDES_RX0_RX_MODE_01_LOW                     0x184
+#define QSERDES_RX0_RX_MODE_01_HIGH                    0x188
+#define QSERDES_RX0_RX_MODE_01_HIGH2                   0x18c
+#define QSERDES_RX0_RX_MODE_01_HIGH3                   0x190
+#define QSERDES_RX0_RX_MODE_01_HIGH4                   0x194
+#define QSERDES_RX0_RX_MODE_10_LOW                     0x198
+#define QSERDES_RX0_RX_MODE_10_HIGH                    0x19c
+#define QSERDES_RX0_RX_MODE_10_HIGH2                   0x1a0
+#define QSERDES_RX0_RX_MODE_10_HIGH3                   0x1a4
+#define QSERDES_RX0_RX_MODE_10_HIGH4                   0x1a8
+#define QSERDES_RX0_DFE_EN_TIMER                       0x1b4
+
+/* QMP V2 PHY for PCIE gen3 ports - PCS registers */
+
+#define PCS_COM_FLL_CNTRL1                             0x098
+#define PCS_COM_FLL_CNTRL2                             0x09c
+#define PCS_COM_FLL_CNT_VAL_L                          0x0a0
+#define PCS_COM_FLL_CNT_VAL_H_TOL                      0x0a4
+#define PCS_COM_FLL_MAN_CODE                           0x0a8
+#define PCS_COM_REFGEN_REQ_CONFIG1                     0x0dc
+#define PCS_COM_G12S1_TXDEEMPH_M3P5DB                  0x16c
+#define PCS_COM_RX_SIGDET_LVL                          0x188
+#define PCS_COM_P2U3_WAKEUP_DLY_TIME_AUXCLK_L          0x1a4
+#define PCS_COM_P2U3_WAKEUP_DLY_TIME_AUXCLK_H          0x1a8
+#define PCS_COM_RX_DCC_CAL_CONFIG                      0x1d8
+#define PCS_COM_EQ_CONFIG5                             0x1ec
+
+/* QMP V2 PHY for PCIE gen3 ports - PCS Misc registers */
+
+#define PCS_PCIE_POWER_STATE_CONFIG2                   0x40c
+#define PCS_PCIE_POWER_STATE_CONFIG4                   0x414
+#define PCS_PCIE_ENDPOINT_REFCLK_DRIVE                 0x41c
+#define PCS_PCIE_L1P1_WAKEUP_DLY_TIME_AUXCLK_L         0x440
+#define PCS_PCIE_L1P1_WAKEUP_DLY_TIME_AUXCLK_H         0x444
+#define PCS_PCIE_L1P2_WAKEUP_DLY_TIME_AUXCLK_L         0x448
+#define PCS_PCIE_L1P2_WAKEUP_DLY_TIME_AUXCLK_H         0x44c
+#define PCS_PCIE_OSC_DTCT_CONFIG2                      0x45c
+#define PCS_PCIE_OSC_DTCT_MODE2_CONFIG2                        0x478
+#define PCS_PCIE_OSC_DTCT_MODE2_CONFIG4                        0x480
+#define PCS_PCIE_OSC_DTCT_MODE2_CONFIG5                        0x484
+#define PCS_PCIE_OSC_DTCT_ACTIONS                      0x490
+#define PCS_PCIE_EQ_CONFIG1                            0x4a0
+#define PCS_PCIE_EQ_CONFIG2                            0x4a4
+#define PCS_PCIE_PRESET_P10_PRE                                0x4bc
+#define PCS_PCIE_PRESET_P10_POST                       0x4e0
+
 /* Only for QMP V2 PHY - QSERDES COM registers */
 #define QSERDES_COM_BG_TIMER                           0x00c
 #define QSERDES_COM_SSC_EN_CENTER                      0x010
 #define QSERDES_V4_COM_SYSCLK_EN_SEL                   0x094
 #define QSERDES_V4_COM_RESETSM_CNTRL                   0x09c
 #define QSERDES_V4_COM_LOCK_CMP_EN                     0x0a4
+#define QSERDES_V4_COM_LOCK_CMP_CFG                    0x0a8
 #define QSERDES_V4_COM_LOCK_CMP1_MODE0                 0x0ac
 #define QSERDES_V4_COM_LOCK_CMP2_MODE0                 0x0b0
 #define QSERDES_V4_COM_LOCK_CMP1_MODE1                 0x0b4
 #define QSERDES_V4_COM_DIV_FRAC_START3_MODE1           0x0e0
 #define QSERDES_V4_COM_INTEGLOOP_GAIN0_MODE0           0x0ec
 #define QSERDES_V4_COM_INTEGLOOP_GAIN1_MODE0           0x0f0
+#define QSERDES_V4_COM_INTEGLOOP_GAIN0_MODE1           0x0f4
+#define QSERDES_V4_COM_INTEGLOOP_GAIN1_MODE1           0x0f8
 #define QSERDES_V4_COM_VCO_TUNE_CTRL                   0x108
 #define QSERDES_V4_COM_VCO_TUNE_MAP                    0x10c
 #define QSERDES_V4_COM_VCO_TUNE1_MODE0                 0x110
 #define QSERDES_V4_COM_C_READY_STATUS                  0x178
 #define QSERDES_V4_COM_CMN_CONFIG                      0x17c
 #define QSERDES_V4_COM_SVS_MODE_CLK_SEL                        0x184
+#define QSERDES_V4_COM_CMN_MISC1                       0x19c
+#define QSERDES_V4_COM_INTERNAL_DIG_CORECLK_DIV                0x1a0
+#define QSERDES_V4_COM_CMN_MODE                                0x1a4
+#define QSERDES_V4_COM_VCO_DC_LEVEL_CTRL               0x1a8
 #define QSERDES_V4_COM_BIN_VCOCAL_CMP_CODE1_MODE0      0x1ac
 #define QSERDES_V4_COM_BIN_VCOCAL_CMP_CODE2_MODE0      0x1b0
 #define QSERDES_V4_COM_BIN_VCOCAL_CMP_CODE1_MODE1      0x1b4
-#define QSERDES_V4_COM_BIN_VCOCAL_HSCLK_SEL            0x1bc
 #define QSERDES_V4_COM_BIN_VCOCAL_CMP_CODE2_MODE1      0x1b8
+#define QSERDES_V4_COM_BIN_VCOCAL_HSCLK_SEL            0x1bc
 
 /* Only for QMP V4 PHY - TX registers */
 #define QSERDES_V4_TX_CLKBUF_ENABLE                    0x08
 #define QSERDES_V4_TX_VMODE_CTRL1                      0xe8
 #define QSERDES_V4_TX_PI_QEC_CTRL                      0x104
 
+/* Only for QMP V4_20 PHY - TX registers */
+#define QSERDES_V4_20_TX_LANE_MODE_1                   0x88
+#define QSERDES_V4_20_TX_LANE_MODE_2                   0x8c
+#define QSERDES_V4_20_TX_LANE_MODE_3                   0x90
+#define QSERDES_V4_20_TX_VMODE_CTRL1                   0xc4
+#define QSERDES_V4_20_TX_PI_QEC_CTRL                   0xe0
+
 /* Only for QMP V4 PHY - RX registers */
 #define QSERDES_V4_RX_UCDR_FO_GAIN                     0x008
 #define QSERDES_V4_RX_UCDR_SO_GAIN                     0x014
 #define QSERDES_V4_DP_PHY_AUX_INTERRUPT_STATUS         0x0d8
 #define QSERDES_V4_DP_PHY_STATUS                       0x0dc
 
+/* Only for QMP V4_20 PHY - RX registers */
+#define QSERDES_V4_20_RX_FO_GAIN_RATE2                 0x008
+#define QSERDES_V4_20_RX_UCDR_PI_CONTROLS              0x058
+#define QSERDES_V4_20_RX_AUX_DATA_TCOARSE_TFINE                0x0ac
+#define QSERDES_V4_20_RX_DFE_3                         0x110
+#define QSERDES_V4_20_RX_DFE_DAC_ENABLE1               0x134
+#define QSERDES_V4_20_RX_DFE_DAC_ENABLE2               0x138
+#define QSERDES_V4_20_RX_VGA_CAL_CNTRL2                        0x150
+#define QSERDES_V4_20_RX_RX_EQ_OFFSET_ADAPTOR_CNTRL1   0x178
+#define QSERDES_V4_20_RX_RX_MODE_RATE_0_1_B1           0x1c8
+#define QSERDES_V4_20_RX_RX_MODE_RATE_0_1_B2           0x1cc
+#define QSERDES_V4_20_RX_RX_MODE_RATE_0_1_B3           0x1d0
+#define QSERDES_V4_20_RX_RX_MODE_RATE_0_1_B4           0x1d4
+#define QSERDES_V4_20_RX_RX_MODE_RATE2_B0              0x1d8
+#define QSERDES_V4_20_RX_RX_MODE_RATE2_B1              0x1dc
+#define QSERDES_V4_20_RX_RX_MODE_RATE2_B2              0x1e0
+#define QSERDES_V4_20_RX_RX_MODE_RATE2_B3              0x1e4
+#define QSERDES_V4_20_RX_RX_MODE_RATE2_B4              0x1e8
+#define QSERDES_V4_20_RX_RX_MODE_RATE3_B0              0x1ec
+#define QSERDES_V4_20_RX_RX_MODE_RATE3_B1              0x1f0
+#define QSERDES_V4_20_RX_RX_MODE_RATE3_B2              0x1f4
+#define QSERDES_V4_20_RX_RX_MODE_RATE3_B3              0x1f8
+#define QSERDES_V4_20_RX_RX_MODE_RATE3_B4              0x1fc
+#define QSERDES_V4_20_RX_PHPRE_CTRL                    0x200
+#define QSERDES_V4_20_RX_DFE_CTLE_POST_CAL_OFFSET      0x20c
+#define QSERDES_V4_20_RX_MARG_COARSE_CTRL2             0x23c
+
 /* Only for QMP V4 PHY - UFS PCS registers */
 #define QPHY_V4_PCS_UFS_PHY_START                              0x000
 #define QPHY_V4_PCS_UFS_POWER_DOWN_CONTROL                     0x004
 #define QPHY_V4_PCS_USB3_SIGDET_STARTUP_TIMER_VAL      0x354
 #define QPHY_V4_PCS_USB3_TEST_CONTROL                  0x358
 
+/* Only for QMP V4_20 PHY - USB/PCIe PCS registers */
+#define QPHY_V4_20_PCS_RX_SIGDET_LVL                   0x188
+#define QPHY_V4_20_PCS_EQ_CONFIG2                      0x1d8
+#define QPHY_V4_20_PCS_EQ_CONFIG4                      0x1e0
+#define QPHY_V4_20_PCS_EQ_CONFIG5                      0x1e4
+
 /* Only for QMP V4 PHY - UNI has 0x300 offset for PCS_USB3 regs */
 #define QPHY_V4_PCS_USB3_UNI_LFPS_DET_HIGH_COUNT_VAL   0x618
 #define QPHY_V4_PCS_USB3_UNI_RXEQTRAINING_DFE_TIME_S2  0x638
 #define QPHY_V4_PCS_PCIE_PRESET_P10_PRE                        0xbc
 #define QPHY_V4_PCS_PCIE_PRESET_P10_POST               0xe0
 
+#define QPHY_V4_20_PCS_PCIE_EQ_CONFIG1                 0x0a0
+#define QPHY_V4_20_PCS_PCIE_G3_RXEQEVAL_TIME           0x0f0
+#define QPHY_V4_20_PCS_PCIE_G4_RXEQEVAL_TIME           0x0f4
+#define QPHY_V4_20_PCS_PCIE_G4_EQ_CONFIG2              0x0fc
+#define QPHY_V4_20_PCS_PCIE_G4_EQ_CONFIG5              0x108
+#define QPHY_V4_20_PCS_LANE1_INSIG_SW_CTRL2            0x824
+#define QPHY_V4_20_PCS_LANE1_INSIG_MX_CTRL2            0x828
+
 /* Only for QMP V5 PHY - QSERDES COM registers */
 #define QSERDES_V5_COM_PLL_IVCO                                0x058
 #define QSERDES_V5_COM_CP_CTRL_MODE0                   0x074