Commit a079b2d7 authored by Nitin Rawat's avatar Nitin Rawat Committed by Vinod Koul
Browse files

phy: qcom-qmp-ufs: refactor qmp_ufs_power_off



In qmp_ufs_power_off, the PHY is already powered down by asserting
QPHY_PCS_POWER_DOWN_CONTROL. Therefore, additional phy_reset and
stopping SerDes are unnecessary. Also this approach does not
align with the phy HW programming guide.

Thus, refactor qmp_ufs_power_off to remove the phy_reset and stop
SerDes calls to simplify the code and ensure alignment with the PHY
HW programming guide.

Signed-off-by: default avatarNitin Rawat <quic_nitirawa@quicinc.com>
Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: default avatarManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Link: https://lore.kernel.org/r/20250526153821.7918-10-quic_nitirawa@quicinc.com


Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent 7f600f0e
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -1825,13 +1825,6 @@ static int qmp_ufs_power_off(struct phy *phy)
	struct qmp_ufs *qmp = phy_get_drvdata(phy);
	const struct qmp_phy_cfg *cfg = qmp->cfg;

	/* PHY reset */
	if (!cfg->no_pcs_sw_reset)
		qphy_setbits(qmp->pcs, cfg->regs[QPHY_SW_RESET], SW_RESET);

	/* stop SerDes */
	qphy_clrbits(qmp->pcs, cfg->regs[QPHY_START_CTRL], SERDES_START);

	/* Put PHY into POWER DOWN state: active low */
	qphy_clrbits(qmp->pcs, cfg->regs[QPHY_PCS_POWER_DOWN_CONTROL],
			SW_PWRDN);