[PATCH 00/14] Drop PCIE_AUX_CLK from the PCIe PHY nodes of Qcom SoCs

From: Manivannan Sadhasivam
Date: Wed Jan 24 2024 - 02:37:12 EST


Hello,

This series fixes a longstanding but recently identified issue on Qcom
platforms regarding the use of PCIE_AUX_CLK in PCIe PHY nodes. While trying
to remove the PCIE_GDSC power domain from the PCIe PHY nodes, Johan reported
[1] that he encountered "gcc_pcie_3b_aux_clk status stuck at 'off'" issue on
the X13s while powering up the PCIe PHY without enabling the PCIE_GDSC.

This confirmed that the "gcc_pcie_3b_aux_clk" depends on PCIE_GDSC. But the
name of the clock implies that it is used by the PCIe controller. So I checked
with Qcom internally and confirmed that this clock belongs to the controller,
not PHY.

But on some SoCs, there is a separate PCIE_PHY_AUX_CLK for the PHY to keep the
link stable during the PCIe L1SS state. But due to some reasons, that clock is
powered by PCIE_GDSC.

So to conclude, PCIE_AUX_CLK belongs to the controller and it depends on
PCIE_GDSC, so it should be removed from the PHY nodes. On the other hand,
PCIE_PHY_AUX_CLK belongs to the PHY and it also depends on the PCIE_GDSC. So for
the PHY instances that require this clock, PCIE_GDSC should be added as a
second power domain along with MX domain which is applicable to all PHYs.

This series removes the PCIE_AUX_CLK from PCIe PHY nodes of all SoCs and also
makes the changes to the bindings to reflect the same. I will also submit a
followup series to fix the PHY power domain across all SoCs.

NOTE: I haven't added the Fixes tag on purpose, since the patches are getting
backported by the stable team whenever the tag is present and if both the
binding and dts patches didn't get backported to a release, then it will cause
ABI break.

- Mani

[1] https://lore.kernel.org/lkml/ZY6sh8nlEUyEfL0u@xxxxxxxxxxxxxxxxxxxx/

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx>
---
Manivannan Sadhasivam (14):
dt-bindings: phy: qcom,ipq8074-qmp-pcie: Drop PCIE_AUX_CLK from pcie_phy node
arm64: dts: qcom: ipq6018: Drop PCIE_AUX_CLK from pcie_phy node
arm64: dts: qcom: ipq8074: Drop PCIE_AUX_CLK from pcie_phy nodes
dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Fix the usage of aux clk
dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document missing compatible for SM8350 3x2 PHY
phy: qcom: qmp-pcie: Add a new compatible for SC7280 SoC
phy: qcom: qmp-pcie: Add a comment to clarify the use of "aux and "phy_aux" clocks
arm64: dts: qcom: sc7280: Drop PCIE_AUX_CLK from pcie_phy node
arm64: dts: qcom: sc8280xp: Drop PCIE_AUX_CLK from pcie_phy nodes
arm64: dts: qcom: sm8350: Drop PCIE_AUX_CLK from pcie_phy nodes
arm64: dts: qcom: sm8450: Drop PCIE_AUX_CLK from pcie_phy node
arm64: dts: qcom: sm8550: Drop PCIE_AUX_CLK from pcie_phy node
arm64: dts: qcom: sm8650: Drop PCIE_AUX_CLK from pcie_phy node
arm64: dts: qcom: sa8775p: Drop PCIE_AUX_CLK from pcie_phy nodes

.../bindings/phy/qcom,ipq8074-qmp-pcie-phy.yaml | 9 +--
.../bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml | 81 ++++++++++++++--------
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 6 +-
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 12 ++--
arch/arm64/boot/dts/qcom/sa8775p.dtsi | 14 ++--
arch/arm64/boot/dts/qcom/sc7280.dtsi | 8 +--
arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 25 +++----
arch/arm64/boot/dts/qcom/sm8350.dtsi | 10 ++-
arch/arm64/boot/dts/qcom/sm8450.dtsi | 6 +-
arch/arm64/boot/dts/qcom/sm8550.dtsi | 6 +-
arch/arm64/boot/dts/qcom/sm8650.dtsi | 6 +-
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 13 +++-
12 files changed, 104 insertions(+), 92 deletions(-)
---
base-commit: 6613476e225e090cc9aad49be7fa504e290dd33d
change-id: 20240122-pcie-aux-clk-fix-094bc77a16ba

Best regards,
--
Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx>