|
37 | 37 | #include "phy-qcom-qmp-pcs-pcie-v6_30.h" |
38 | 38 | #include "phy-qcom-qmp-pcs-v6_30.h" |
39 | 39 | #include "phy-qcom-qmp-pcie-qhp.h" |
| 40 | +#include "phy-qcom-qmp-qserdes-com-v8.h" |
| 41 | +#include "phy-qcom-qmp-pcs-pcie-v8.h" |
| 42 | +#include "phy-qcom-qmp-qserdes-txrx-pcie-v8.h" |
40 | 43 |
|
41 | 44 | #define PHY_INIT_COMPLETE_TIMEOUT 10000 |
42 | 45 |
|
@@ -100,6 +103,13 @@ static const unsigned int pciephy_v7_regs_layout[QPHY_LAYOUT_SIZE] = { |
100 | 103 | [QPHY_PCS_POWER_DOWN_CONTROL] = QPHY_V7_PCS_POWER_DOWN_CONTROL, |
101 | 104 | }; |
102 | 105 |
|
| 106 | +static const unsigned int pciephy_v8_regs_layout[QPHY_LAYOUT_SIZE] = { |
| 107 | + [QPHY_SW_RESET] = QPHY_V8_PCS_SW_RESET, |
| 108 | + [QPHY_START_CTRL] = QPHY_V8_PCS_START_CONTROL, |
| 109 | + [QPHY_PCS_STATUS] = QPHY_V8_PCS_PCS_STATUS1, |
| 110 | + [QPHY_PCS_POWER_DOWN_CONTROL] = QPHY_V8_PCS_POWER_DOWN_CONTROL, |
| 111 | +}; |
| 112 | + |
103 | 113 | static const unsigned int pciephy_v8_50_regs_layout[QPHY_LAYOUT_SIZE] = { |
104 | 114 | [QPHY_START_CTRL] = QPHY_V8_50_PCS_START_CONTROL, |
105 | 115 | [QPHY_PCS_STATUS] = QPHY_V8_50_PCS_STATUS1, |
@@ -3067,6 +3077,149 @@ static const struct qmp_phy_init_tbl sar2130p_qmp_gen3x2_pcie_ep_pcs_misc_tbl[] |
3067 | 3077 | QMP_PHY_INIT_CFG(QPHY_PCIE_V6_PCS_PCIE_POWER_STATE_CONFIG4, 0x07), |
3068 | 3078 | }; |
3069 | 3079 |
|
| 3080 | +static const struct qmp_phy_init_tbl kaanapali_qmp_gen3x2_pcie_serdes_tbl[] = { |
| 3081 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_SSC_STEP_SIZE1_MODE1, 0x93), |
| 3082 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_SSC_STEP_SIZE2_MODE1, 0x01), |
| 3083 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_CP_CTRL_MODE1, 0x06), |
| 3084 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_PLL_RCTRL_MODE1, 0x16), |
| 3085 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_PLL_CCTRL_MODE1, 0x36), |
| 3086 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_CORECLK_DIV_MODE1, 0x04), |
| 3087 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_LOCK_CMP1_MODE1, 0x0a), |
| 3088 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_LOCK_CMP2_MODE1, 0x1a), |
| 3089 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_DEC_START_MODE1, 0x34), |
| 3090 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_DIV_FRAC_START1_MODE1, 0x55), |
| 3091 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_DIV_FRAC_START2_MODE1, 0x55), |
| 3092 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_DIV_FRAC_START3_MODE1, 0x01), |
| 3093 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_HSCLK_SEL_1, 0x01), |
| 3094 | + |
| 3095 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_SSC_STEP_SIZE1_MODE0, 0xf8), |
| 3096 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_SSC_STEP_SIZE2_MODE0, 0x01), |
| 3097 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_CP_CTRL_MODE0, 0x06), |
| 3098 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_PLL_RCTRL_MODE0, 0x16), |
| 3099 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_PLL_CCTRL_MODE0, 0x36), |
| 3100 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_CORECLK_DIV_MODE0, 0x0a), |
| 3101 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_LOCK_CMP1_MODE0, 0x04), |
| 3102 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_LOCK_CMP2_MODE0, 0x0d), |
| 3103 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_DEC_START_MODE0, 0x41), |
| 3104 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_DIV_FRAC_START1_MODE0, 0xab), |
| 3105 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_DIV_FRAC_START2_MODE0, 0xaa), |
| 3106 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_DIV_FRAC_START3_MODE0, 0x01), |
| 3107 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_HSCLK_HS_SWITCH_SEL_1, 0x00), |
| 3108 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_BG_TIMER, 0x0a), |
| 3109 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_SSC_PER1, 0x62), |
| 3110 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_SSC_PER2, 0x02), |
| 3111 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_BIAS_EN_CLKBUFLR_EN, 0x14), |
| 3112 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_CLK_ENABLE1, 0x90), |
| 3113 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_SYS_CLK_CTRL, 0x82), |
| 3114 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_PLL_IVCO, 0x0f), |
| 3115 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_SYSCLK_EN_SEL, 0x08), |
| 3116 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_LOCK_CMP_EN, 0x46), |
| 3117 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_LOCK_CMP_CFG, 0x04), |
| 3118 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_VCO_TUNE_MAP, 0x14), |
| 3119 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_CLK_SELECT, 0x34), |
| 3120 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_CORE_CLK_EN, 0xa0), |
| 3121 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_CMN_CONFIG_1, 0x16), |
| 3122 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_CMN_MISC_1, 0x88), |
| 3123 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_CMN_MODE, 0x04), |
| 3124 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_VCO_DC_LEVEL_CTRL, 0x0f), |
| 3125 | + QMP_PHY_INIT_CFG(QSERDES_V8_COM_PLL_SPARE_FOR_ECO, 0x02), |
| 3126 | +}; |
| 3127 | + |
| 3128 | +static const struct qmp_phy_init_tbl kaanapali_qmp_gen3x2_pcie_tx_tbl[] = { |
| 3129 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_TX_RES_CODE_LANE_OFFSET_TX, 0x1b), |
| 3130 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_TX_RES_CODE_LANE_OFFSET_RX, 0x14), |
| 3131 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_TX_LANE_MODE_1, 0x00), |
| 3132 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_TX_LANE_MODE_2, 0x40), |
| 3133 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_TX_LANE_MODE_3, 0x00), |
| 3134 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_TX_TRAN_DRVR_EMP_EN, 0x04), |
| 3135 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_TX_TX_BAND0, 0x05), |
| 3136 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_TX_TX_BAND1, 0x00), |
| 3137 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_TX_SEL_10B_8B, 0x07), |
| 3138 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_TX_SEL_20B_10B, 0x1f), |
| 3139 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_TX_PARRATE_REC_DETECT_IDLE_EN, 0x90), |
| 3140 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_TX_TX_ADAPT_POST_THRESH1, 0x02), |
| 3141 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_TX_TX_ADAPT_POST_THRESH2, 0x0d), |
| 3142 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_TX_EQ_RCF_CTRL_RATE3, 0x53), |
| 3143 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_TX_EQ_RCF_CTRL_RATE4, 0x54), |
| 3144 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_TX_PHPRE_CTRL, 0x20), |
| 3145 | +}; |
| 3146 | + |
| 3147 | +static const struct qmp_phy_init_tbl kaanapali_qmp_gen3x2_pcie_rx_tbl[] = { |
| 3148 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_UCDR_FO_GAIN_RATE4, 0x0b), |
| 3149 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_UCDR_SO_GAIN_RATE3, 0x04), |
| 3150 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_UCDR_SO_GAIN_RATE4, 0x05), |
| 3151 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_UCDR_PI_CONTROLS, 0x15), |
| 3152 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_VGA_CAL_CNTRL1, 0x00), |
| 3153 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_VGA_CAL_MAN_VAL, 0x89), |
| 3154 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_EQU_ADAPTOR_CNTRL4, 0x2d), |
| 3155 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_SIGDET_ENABLES, 0x1c), |
| 3156 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_SIGDET_LVL, 0x04), |
| 3157 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RXCLK_DIV2_CTRL, 0x01), |
| 3158 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_BAND_CTRL0, 0x05), |
| 3159 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_TERM_BW_CTRL0, 0x00), |
| 3160 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_TERM_BW_CTRL1, 0x00), |
| 3161 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_SVS_MODE_CTRL, 0x00), |
| 3162 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_UCDR_PI_CTRL1, 0x40), |
| 3163 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_UCDR_PI_CTRL2, 0x42), |
| 3164 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_UCDR_SB2_THRESH2_RATE3, 0x18), |
| 3165 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_UCDR_SB2_GAIN1_RATE3, 0x12), |
| 3166 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_UCDR_SB2_GAIN2_RATE3, 0x18), |
| 3167 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_MODE_RATE_0_1_B0, 0xc2), |
| 3168 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_MODE_RATE_0_1_B1, 0xc2), |
| 3169 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_MODE_RATE_0_1_B2, 0x18), |
| 3170 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_MODE_RATE_0_1_B4, 0x0f), |
| 3171 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_MODE_RATE_0_1_B7, 0x62), |
| 3172 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_MODE_RATE3_B0, 0xe4), |
| 3173 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_MODE_RATE3_B1, 0x63), |
| 3174 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_MODE_RATE3_B2, 0xd8), |
| 3175 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_MODE_RATE3_B3, 0x99), |
| 3176 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_MODE_RATE3_B4, 0x67), |
| 3177 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_MODE_RATE4_SA_B0, 0xa4), |
| 3178 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_MODE_RATE4_SA_B1, 0xa4), |
| 3179 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_MODE_RATE4_SA_B2, 0x28), |
| 3180 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_MODE_RATE4_SA_B3, 0x9f), |
| 3181 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_MODE_RATE4_SA_B4, 0x48), |
| 3182 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_RX_MODE_RATE4_SA_B5, 0x24), |
| 3183 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_Q_PI_INTRINSIC_BIAS_RATE32, 0x01), |
| 3184 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_Q_PI_INTRINSIC_BIAS_RATE4, 0x00), |
| 3185 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_EOM_MAX_ERR_LIMIT_LSB, 0xff), |
| 3186 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_EOM_MAX_ERR_LIMIT_MSB, 0xff), |
| 3187 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_AUXDATA_BIN_RATE23, 0x30), |
| 3188 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_AUXDATA_BIN_RATE4, 0x03), |
| 3189 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_VTHRESH_CAL_MAN_VAL_RATE3, 0x1f), |
| 3190 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_VTHRESH_CAL_MAN_VAL_RATE4, 0x1f), |
| 3191 | + QMP_PHY_INIT_CFG(QSERDES_V8_PCIE_RX_GM_CAL, 0x0d), |
| 3192 | +}; |
| 3193 | + |
| 3194 | +static const struct qmp_phy_init_tbl kaanapali_qmp_gen3x2_pcie_pcs_tbl[] = { |
| 3195 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_G12S1_TXDEEMPH_M6DB, 0x17), |
| 3196 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_G3S2_PRE_GAIN, 0x2e), |
| 3197 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_RX_SIGDET_LVL, 0xcc), |
| 3198 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_ELECIDLE_DLY_SEL, 0x40), |
| 3199 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_PCS_TX_RX_CONFIG1, 0x04), |
| 3200 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_PCS_TX_RX_CONFIG2, 0x02), |
| 3201 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_EQ_CONFIG4, 0x00), |
| 3202 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_EQ_CONFIG5, 0x22), |
| 3203 | +}; |
| 3204 | + |
| 3205 | +static const struct qmp_phy_init_tbl kaanapali_qmp_gen3x2_pcie_pcs_misc_tbl[] = { |
| 3206 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_TX_RX_CONFIG, 0xc0), |
| 3207 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_POWER_STATE_CONFIG2, 0x1d), |
| 3208 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_ENDPOINT_REFCLK_DRIVE, 0xc1), |
| 3209 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_OSC_DTCT_ACTIONS, 0x00), |
| 3210 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_EQ_CONFIG1, 0x16), |
| 3211 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_G3_RXEQEVAL_TIME, 0x27), |
| 3212 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_G4_RXEQEVAL_TIME, 0x27), |
| 3213 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_G4_EQ_CONFIG5, 0x02), |
| 3214 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_G4_PRE_GAIN, 0x2e), |
| 3215 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_RX_MARGINING_CONFIG1, 0x03), |
| 3216 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_RX_MARGINING_CONFIG3, 0x28), |
| 3217 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_RX_MARGINING_CONFIG5, 0x0f), |
| 3218 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_G3_FOM_EQ_CONFIG5, 0xf2), |
| 3219 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_G4_FOM_EQ_CONFIG5, 0xf2), |
| 3220 | + QMP_PHY_INIT_CFG(QPHY_PCIE_V8_PCS_POWER_STATE_CONFIG6, 0x1f), |
| 3221 | +}; |
| 3222 | + |
3070 | 3223 | struct qmp_pcie_offsets { |
3071 | 3224 | u16 serdes; |
3072 | 3225 | u16 pcs; |
@@ -3363,6 +3516,16 @@ static const struct qmp_pcie_offsets qmp_pcie_offsets_v6_30 = { |
3363 | 3516 | .ln_shrd = 0x8000, |
3364 | 3517 | }; |
3365 | 3518 |
|
| 3519 | +static const struct qmp_pcie_offsets qmp_pcie_offsets_v8_0 = { |
| 3520 | + .serdes = 0x1000, |
| 3521 | + .pcs = 0x1400, |
| 3522 | + .pcs_misc = 0x1800, |
| 3523 | + .tx = 0x0000, |
| 3524 | + .rx = 0x0200, |
| 3525 | + .tx2 = 0x0800, |
| 3526 | + .rx2 = 0x0a00, |
| 3527 | +}; |
| 3528 | + |
3366 | 3529 | static const struct qmp_pcie_offsets qmp_pcie_offsets_v8_50 = { |
3367 | 3530 | .serdes = 0x8000, |
3368 | 3531 | .pcs = 0x9000, |
@@ -4425,6 +4588,34 @@ static const struct qmp_phy_cfg qmp_v6_gen4x4_pciephy_cfg = { |
4425 | 4588 | .phy_status = PHYSTATUS_4_20, |
4426 | 4589 | }; |
4427 | 4590 |
|
| 4591 | +static const struct qmp_phy_cfg qmp_v8_gen3x2_pciephy_cfg = { |
| 4592 | + .lanes = 2, |
| 4593 | + |
| 4594 | + .offsets = &qmp_pcie_offsets_v8_0, |
| 4595 | + |
| 4596 | + .tbls = { |
| 4597 | + .serdes = kaanapali_qmp_gen3x2_pcie_serdes_tbl, |
| 4598 | + .serdes_num = ARRAY_SIZE(kaanapali_qmp_gen3x2_pcie_serdes_tbl), |
| 4599 | + .tx = kaanapali_qmp_gen3x2_pcie_tx_tbl, |
| 4600 | + .tx_num = ARRAY_SIZE(kaanapali_qmp_gen3x2_pcie_tx_tbl), |
| 4601 | + .rx = kaanapali_qmp_gen3x2_pcie_rx_tbl, |
| 4602 | + .rx_num = ARRAY_SIZE(kaanapali_qmp_gen3x2_pcie_rx_tbl), |
| 4603 | + .pcs = kaanapali_qmp_gen3x2_pcie_pcs_tbl, |
| 4604 | + .pcs_num = ARRAY_SIZE(kaanapali_qmp_gen3x2_pcie_pcs_tbl), |
| 4605 | + .pcs_misc = kaanapali_qmp_gen3x2_pcie_pcs_misc_tbl, |
| 4606 | + .pcs_misc_num = ARRAY_SIZE(kaanapali_qmp_gen3x2_pcie_pcs_misc_tbl), |
| 4607 | + }, |
| 4608 | + |
| 4609 | + .reset_list = sdm845_pciephy_reset_l, |
| 4610 | + .num_resets = ARRAY_SIZE(sdm845_pciephy_reset_l), |
| 4611 | + .vreg_list = qmp_phy_vreg_l, |
| 4612 | + .num_vregs = ARRAY_SIZE(qmp_phy_vreg_l), |
| 4613 | + .regs = pciephy_v8_regs_layout, |
| 4614 | + |
| 4615 | + .pwrdn_ctrl = SW_PWRDN | REFCLK_DRV_DSBL, |
| 4616 | + .phy_status = PHYSTATUS_4_20, |
| 4617 | +}; |
| 4618 | + |
4428 | 4619 | static const struct qmp_phy_cfg glymur_qmp_gen5x4_pciephy_cfg = { |
4429 | 4620 | .lanes = 4, |
4430 | 4621 |
|
@@ -5228,6 +5419,9 @@ static const struct of_device_id qmp_pcie_of_match_table[] = { |
5228 | 5419 | }, { |
5229 | 5420 | .compatible = "qcom,ipq9574-qmp-gen3x2-pcie-phy", |
5230 | 5421 | .data = &ipq9574_gen3x2_pciephy_cfg, |
| 5422 | + }, { |
| 5423 | + .compatible = "qcom,kaanapali-qmp-gen3x2-pcie-phy", |
| 5424 | + .data = &qmp_v8_gen3x2_pciephy_cfg, |
5231 | 5425 | }, { |
5232 | 5426 | .compatible = "qcom,msm8998-qmp-pcie-phy", |
5233 | 5427 | .data = &msm8998_pciephy_cfg, |
|
0 commit comments