phy: qcom: qmp-usbc: Add qmp configuration for Shikra

Add init sequence and phy configuration for the Super Speed port on Shikra
SoC. Also since Shikra uses 3 resets, add support for the third reset and
configure Shikra platform data to use 3 resets.

Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20260712-usb-shikra-phy-v6-v6-4-1b3e51bf1541@oss.qualcomm.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
Krishna Kurapati
2026-07-22 13:51:49 +05:30
committed by Vinod Koul
parent 346121aed2
commit edb7772bb3
+50 -3
View File
@@ -512,10 +512,14 @@ static const char * const usb3phy_reset_l[] = {
"phy_phy", "phy",
};
static const char * const usb3dpphy_reset_l[] = {
static const char * const qcs615_usb3dpphy_reset_l[] = {
"phy_phy", "dp_phy",
};
static const char * const shikra_usb3dpphy_reset_l[] = {
"phy_phy", "dp_phy", "phy",
};
static const struct regulator_bulk_data qmp_phy_msm8998_vreg_l[] = {
{ .supply = "vdda-phy", .init_load_uA = 68600 },
{ .supply = "vdda-pll", .init_load_uA = 14200 },
@@ -680,8 +684,48 @@ static const struct qmp_phy_cfg qcs615_usb3dp_phy_cfg = {
.configure_dp_phy = qcs615_qmp_configure_dp_phy,
.calibrate_dp_phy = qcs615_qmp_calibrate_dp_phy,
.reset_list = usb3dpphy_reset_l,
.num_resets = ARRAY_SIZE(usb3dpphy_reset_l),
.reset_list = qcs615_usb3dpphy_reset_l,
.num_resets = ARRAY_SIZE(qcs615_usb3dpphy_reset_l),
.vreg_list = qmp_phy_qcs615_vreg_l,
.num_vregs = ARRAY_SIZE(qmp_phy_qcs615_vreg_l),
};
static const struct qmp_phy_cfg shikra_usb3dp_phy_cfg = {
.offsets = &qmp_usbc_usb3dp_offsets_qcs615,
.serdes_tbl = qcm2290_usb3_serdes_tbl,
.serdes_tbl_num = ARRAY_SIZE(qcm2290_usb3_serdes_tbl),
.tx_tbl = qcm2290_usb3_tx_tbl,
.tx_tbl_num = ARRAY_SIZE(qcm2290_usb3_tx_tbl),
.rx_tbl = qcm2290_usb3_rx_tbl,
.rx_tbl_num = ARRAY_SIZE(qcm2290_usb3_rx_tbl),
.pcs_tbl = qcm2290_usb3_pcs_tbl,
.pcs_tbl_num = ARRAY_SIZE(qcm2290_usb3_pcs_tbl),
.regs = qmp_v3_usb3phy_regs_layout_qcm2290,
.dp_serdes_tbl = qcs615_dp_serdes_tbl,
.dp_serdes_tbl_num = ARRAY_SIZE(qcs615_dp_serdes_tbl),
.dp_tx_tbl = qcs615_dp_tx_tbl,
.dp_tx_tbl_num = ARRAY_SIZE(qcs615_dp_tx_tbl),
.serdes_tbl_rbr = qcs615_dp_serdes_tbl_rbr,
.serdes_tbl_rbr_num = ARRAY_SIZE(qcs615_dp_serdes_tbl_rbr),
.serdes_tbl_hbr = qcs615_dp_serdes_tbl_hbr,
.serdes_tbl_hbr_num = ARRAY_SIZE(qcs615_dp_serdes_tbl_hbr),
.serdes_tbl_hbr2 = qcs615_dp_serdes_tbl_hbr2,
.serdes_tbl_hbr2_num = ARRAY_SIZE(qcs615_dp_serdes_tbl_hbr2),
.swing_tbl = &qcs615_dp_voltage_swing_hbr2_rbr,
.pre_emphasis_tbl = &qcs615_dp_pre_emphasis_hbr2_rbr,
.dp_aux_init = qcs615_qmp_dp_aux_init,
.configure_dp_tx = qcs615_qmp_configure_dp_tx,
.configure_dp_phy = qcs615_qmp_configure_dp_phy,
.calibrate_dp_phy = qcs615_qmp_calibrate_dp_phy,
.reset_list = shikra_usb3dpphy_reset_l,
.num_resets = ARRAY_SIZE(shikra_usb3dpphy_reset_l),
.vreg_list = qmp_phy_qcs615_vreg_l,
.num_vregs = ARRAY_SIZE(qmp_phy_qcs615_vreg_l),
};
@@ -2019,6 +2063,9 @@ static const struct of_device_id qmp_usbc_of_match_table[] = {
}, {
.compatible = "qcom,sdm660-qmp-usb3-phy",
.data = &sdm660_usb3phy_cfg,
}, {
.compatible = "qcom,shikra-qmp-usb3-dp-phy",
.data = &shikra_usb3dp_phy_cfg,
}, {
.compatible = "qcom,sm6115-qmp-usb3-phy",
.data = &qcm2290_usb3phy_cfg,