phy: phy-qcom-qusb2: Fix USB PHY power on sequence
authorSumit Garg <sumit.garg@oss.qualcomm.com>
Thu, 10 Apr 2025 08:00:27 +0000 (13:30 +0530)
committerCaleb Connolly <caleb.connolly@linaro.org>
Thu, 10 Apr 2025 13:43:12 +0000 (15:43 +0200)
Recent addition of support for SDM660 inadvertently broke USB PHY power
on sequence on RB1/RB2 and others with following error:

starting USB...
Bus usb@4e00000: QUSB2PHY pll lock failed: status reg = 0
qcom-qusb2-phy phy@1613000: PHY: Failed to power on phy@1613000: -16.
Can't power on PHY0
probe failed, error -16
No USB controllers found

The root cause was the addition of flag se_clk_scheme_default which was
configured correctly for SDM660 but incorrect for all other supported
SoC. Fix that by properly assignment as per upstream Linux driver.

Fixes: 475497dc3c15 ("phy: Add SDM660 support to Qualcomm QUSB2 phy")
Signed-off-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
Reviewed-by:
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20250410080027.208674-3-sumit.garg@kernel.org
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
drivers/phy/qcom/phy-qcom-qusb2.c

index cabd05b..d98f610 100644 (file)
@@ -230,6 +230,7 @@ static const struct qusb2_phy_cfg sm6115_phy_cfg = {
        .regs = sm6115_regs_layout,
 
        .has_pll_test = true,
+       .se_clk_scheme_default = true,
        .disable_ctrl = (CLAMP_N_EN | FREEZIO_N | POWER_DOWN),
        .mask_core_ready = PLL_LOCKED,
        .autoresume_en = BIT(3),
@@ -256,6 +257,7 @@ static const struct qusb2_phy_cfg qusb2_v2_phy_cfg = {
                         POWER_DOWN),
        .mask_core_ready = CORE_READY_STATUS,
        .has_pll_override = true,
+       .se_clk_scheme_default = true,
        .autoresume_en = BIT(0),
        .update_tune1_with_efuse = true,
 };