Skip to content

Commit f320268

Browse files
superna9999vinodkoul
authored andcommitted
phy: qcom: qmp-combo: fix sm8650 voltage swing table
The QMP USB3/DP PHY found in the SM8650 SoC requires a slightly different Voltage Swing table for HBR/RBR link speeds. Add a new hbr/rbr voltage switch table named "v6" used in a new sm8650 qmp_phy_cfg struct replacing the sm8550 fallback used for the sm8650 compatible. Fixes: 80c1afe ("phy: qcom: qmp-combo: add QMP USB3/DP PHY tables for SM8650") Signed-off-by: Neil Armstrong <[email protected]> Link: https://lore.kernel.org/r/20240226-topic-sm8650-upstream-combo-phy-swing-update-v1-1-08707ebca92a@linaro.org Signed-off-by: Vinod Koul <[email protected]>
1 parent ef2bd6c commit f320268

File tree

1 file changed

+53
-1
lines changed

1 file changed

+53
-1
lines changed

drivers/phy/qualcomm/phy-qcom-qmp-combo.c

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1377,6 +1377,13 @@ static const u8 qmp_dp_v5_voltage_swing_hbr_rbr[4][4] = {
13771377
{ 0x3f, 0xff, 0xff, 0xff }
13781378
};
13791379

1380+
static const u8 qmp_dp_v6_voltage_swing_hbr_rbr[4][4] = {
1381+
{ 0x27, 0x2f, 0x36, 0x3f },
1382+
{ 0x31, 0x3e, 0x3f, 0xff },
1383+
{ 0x36, 0x3f, 0xff, 0xff },
1384+
{ 0x3f, 0xff, 0xff, 0xff }
1385+
};
1386+
13801387
static const u8 qmp_dp_v6_pre_emphasis_hbr_rbr[4][4] = {
13811388
{ 0x20, 0x2d, 0x34, 0x3a },
13821389
{ 0x20, 0x2e, 0x35, 0xff },
@@ -1996,6 +2003,51 @@ static const struct qmp_phy_cfg sm8550_usb3dpphy_cfg = {
19962003
.num_vregs = ARRAY_SIZE(qmp_phy_vreg_l),
19972004
};
19982005

2006+
static const struct qmp_phy_cfg sm8650_usb3dpphy_cfg = {
2007+
.offsets = &qmp_combo_offsets_v3,
2008+
2009+
.serdes_tbl = sm8550_usb3_serdes_tbl,
2010+
.serdes_tbl_num = ARRAY_SIZE(sm8550_usb3_serdes_tbl),
2011+
.tx_tbl = sm8550_usb3_tx_tbl,
2012+
.tx_tbl_num = ARRAY_SIZE(sm8550_usb3_tx_tbl),
2013+
.rx_tbl = sm8550_usb3_rx_tbl,
2014+
.rx_tbl_num = ARRAY_SIZE(sm8550_usb3_rx_tbl),
2015+
.pcs_tbl = sm8550_usb3_pcs_tbl,
2016+
.pcs_tbl_num = ARRAY_SIZE(sm8550_usb3_pcs_tbl),
2017+
.pcs_usb_tbl = sm8550_usb3_pcs_usb_tbl,
2018+
.pcs_usb_tbl_num = ARRAY_SIZE(sm8550_usb3_pcs_usb_tbl),
2019+
2020+
.dp_serdes_tbl = qmp_v6_dp_serdes_tbl,
2021+
.dp_serdes_tbl_num = ARRAY_SIZE(qmp_v6_dp_serdes_tbl),
2022+
.dp_tx_tbl = qmp_v6_dp_tx_tbl,
2023+
.dp_tx_tbl_num = ARRAY_SIZE(qmp_v6_dp_tx_tbl),
2024+
2025+
.serdes_tbl_rbr = qmp_v6_dp_serdes_tbl_rbr,
2026+
.serdes_tbl_rbr_num = ARRAY_SIZE(qmp_v6_dp_serdes_tbl_rbr),
2027+
.serdes_tbl_hbr = qmp_v6_dp_serdes_tbl_hbr,
2028+
.serdes_tbl_hbr_num = ARRAY_SIZE(qmp_v6_dp_serdes_tbl_hbr),
2029+
.serdes_tbl_hbr2 = qmp_v6_dp_serdes_tbl_hbr2,
2030+
.serdes_tbl_hbr2_num = ARRAY_SIZE(qmp_v6_dp_serdes_tbl_hbr2),
2031+
.serdes_tbl_hbr3 = qmp_v6_dp_serdes_tbl_hbr3,
2032+
.serdes_tbl_hbr3_num = ARRAY_SIZE(qmp_v6_dp_serdes_tbl_hbr3),
2033+
2034+
.swing_hbr_rbr = &qmp_dp_v6_voltage_swing_hbr_rbr,
2035+
.pre_emphasis_hbr_rbr = &qmp_dp_v6_pre_emphasis_hbr_rbr,
2036+
.swing_hbr3_hbr2 = &qmp_dp_v5_voltage_swing_hbr3_hbr2,
2037+
.pre_emphasis_hbr3_hbr2 = &qmp_dp_v5_pre_emphasis_hbr3_hbr2,
2038+
2039+
.dp_aux_init = qmp_v4_dp_aux_init,
2040+
.configure_dp_tx = qmp_v4_configure_dp_tx,
2041+
.configure_dp_phy = qmp_v4_configure_dp_phy,
2042+
.calibrate_dp_phy = qmp_v4_calibrate_dp_phy,
2043+
2044+
.regs = qmp_v6_usb3phy_regs_layout,
2045+
.reset_list = msm8996_usb3phy_reset_l,
2046+
.num_resets = ARRAY_SIZE(msm8996_usb3phy_reset_l),
2047+
.vreg_list = qmp_phy_vreg_l,
2048+
.num_vregs = ARRAY_SIZE(qmp_phy_vreg_l),
2049+
};
2050+
19992051
static int qmp_combo_dp_serdes_init(struct qmp_combo *qmp)
20002052
{
20012053
const struct qmp_phy_cfg *cfg = qmp->cfg;
@@ -3623,7 +3675,7 @@ static const struct of_device_id qmp_combo_of_match_table[] = {
36233675
},
36243676
{
36253677
.compatible = "qcom,sm8650-qmp-usb3-dp-phy",
3626-
.data = &sm8550_usb3dpphy_cfg,
3678+
.data = &sm8650_usb3dpphy_cfg,
36273679
},
36283680
{
36293681
.compatible = "qcom,x1e80100-qmp-usb3-dp-phy",

0 commit comments

Comments
 (0)