Commit 5b2dd084 authored by Xiangxu Yin's avatar Xiangxu Yin Committed by Vinod Koul
Browse files

phy: qcom: qmp-usbc: Move reset config into PHY cfg



The original reset list only works for USB-only PHYs. USB3DP PHYs require
different reset names such as "dp_phy", so they need a separate list.

Moving reset configuration into qmp_phy_cfg allows per-PHY customization
without adding special-case logic in DT parsing. The legacy DT path keeps
using the old hardcoded list, while non-legacy paths use cfg->reset_list.

Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: default avatarXiangxu Yin <xiangxu.yin@oss.qualcomm.com>
Link: https://patch.msgid.link/20251215-add-displayport-support-for-qcs615-platform-v8-5-cbc72c88a44e@oss.qualcomm.com


Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent 3b193748
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -335,7 +335,8 @@ struct qmp_phy_cfg {
	int (*configure_dp_phy)(struct qmp_usbc *qmp);
	int (*calibrate_dp_phy)(struct qmp_usbc *qmp);

	/* regulators to be requested */
	const char * const *reset_list;
	int num_resets;
	const struct regulator_bulk_data *vreg_list;
	int num_vregs;

@@ -464,6 +465,8 @@ static const struct qmp_phy_cfg msm8998_usb3phy_cfg = {
	.rx_tbl_num             = ARRAY_SIZE(msm8998_usb3_rx_tbl),
	.pcs_tbl                = msm8998_usb3_pcs_tbl,
	.pcs_tbl_num            = ARRAY_SIZE(msm8998_usb3_pcs_tbl),
	.reset_list		= usb3phy_reset_l,
	.num_resets		= ARRAY_SIZE(usb3phy_reset_l),
	.vreg_list              = qmp_phy_msm8998_vreg_l,
	.num_vregs              = ARRAY_SIZE(qmp_phy_msm8998_vreg_l),
	.regs                   = qmp_v3_usb3phy_regs_layout,
@@ -480,6 +483,8 @@ static const struct qmp_phy_cfg qcm2290_usb3phy_cfg = {
	.rx_tbl_num		= ARRAY_SIZE(qcm2290_usb3_rx_tbl),
	.pcs_tbl		= qcm2290_usb3_pcs_tbl,
	.pcs_tbl_num		= ARRAY_SIZE(qcm2290_usb3_pcs_tbl),
	.reset_list		= usb3phy_reset_l,
	.num_resets		= ARRAY_SIZE(usb3phy_reset_l),
	.vreg_list		= qmp_phy_sm2290_vreg_l,
	.num_vregs		= ARRAY_SIZE(qmp_phy_sm2290_vreg_l),
	.regs			= qmp_v3_usb3phy_regs_layout_qcm2290,
@@ -496,6 +501,8 @@ static const struct qmp_phy_cfg sdm660_usb3phy_cfg = {
	.rx_tbl_num		= ARRAY_SIZE(sdm660_usb3_rx_tbl),
	.pcs_tbl		= qcm2290_usb3_pcs_tbl,
	.pcs_tbl_num		= ARRAY_SIZE(qcm2290_usb3_pcs_tbl),
	.reset_list		= usb3phy_reset_l,
	.num_resets		= ARRAY_SIZE(usb3phy_reset_l),
	.vreg_list		= qmp_phy_msm8998_vreg_l,
	.num_vregs		= ARRAY_SIZE(qmp_phy_msm8998_vreg_l),
	.regs			= qmp_v3_usb3phy_regs_layout_qcm2290,
@@ -512,6 +519,8 @@ static const struct qmp_phy_cfg qcs615_usb3phy_cfg = {
	.rx_tbl_num		= ARRAY_SIZE(qcm2290_usb3_rx_tbl),
	.pcs_tbl		= qcm2290_usb3_pcs_tbl,
	.pcs_tbl_num		= ARRAY_SIZE(qcm2290_usb3_pcs_tbl),
	.reset_list		= usb3phy_reset_l,
	.num_resets		= ARRAY_SIZE(usb3phy_reset_l),
	.vreg_list		= qmp_phy_qcs615_vreg_l,
	.num_vregs		= ARRAY_SIZE(qmp_phy_qcs615_vreg_l),
	.regs			= qmp_v3_usb3phy_regs_layout_qcm2290,
@@ -1051,8 +1060,7 @@ static int qmp_usbc_parse_dt(struct qmp_usbc *qmp)
				     "failed to get pipe clock\n");
	}

	ret = qmp_usbc_reset_init(qmp, usb3phy_reset_l,
				 ARRAY_SIZE(usb3phy_reset_l));
	ret = qmp_usbc_reset_init(qmp, cfg->reset_list, cfg->num_resets);
	if (ret)
		return ret;