[PATCH v2 0/6] Fix regulator voting for the Qualcomm SGMII SerDes PHY
Mohd Ayaan Anwar <[email protected]> Tue, 04 Aug 2026 00:57:56 +0530
| Newsgroups | org.infradead.lists.linux-phy,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <20260804-b4-sgmiieth_serdes_regulator-v2-0-c4bc688177dd@oss.qualcomm.com> |
This is a long overdue v2 of the original patch series which tried to
address a SerDes power-up failure observed on the QCS8300 Ride board
using the phy-qcom-sgmii-eth driver. After going through a rabbit hole
of hardware schematics and power data, I now have a fuller picture of
this IP.
The Qualcomm SGMII SerDes PHY (used in Lemans and Monaco SoCs) is
powered by two voltage rails. The schematics call them vdda-0p9 and
vdda-1p2, so that's what we follow in the series. Additionally, the
0.9V regulator draws a peak current of 46 mA and the 1.2V regulator
draws a peak current of 15 mA.
If both rails are not enabled, we see the original issue where the
SerDes calibration times out:
qcom-dwmac-sgmii-phy 8909000.phy: QSERDES_COM_C_READY_STATUS timed-out
qcom-ethqos 23040000.ethernet eth0: __stmmac_open: Serdes powerup failed
Currently, the DT nodes across affected boards incorrectly describe
only a single regulator via the generic 'phy-supply' property (and in
some cases point to the wrong rail entirely). Moreover, the driver does
not set the proper current loads and just relies on an enable vote.
This series corrects this by:
1. Fixing the DT binding to describe both named supplies.
2. Fixing all affected board DTS to use the correct vdda-0p9-supply
and vdda-1p2-supply properties.
3. Adding bulk regulator support to the PHY driver so it enables both
supplies and sets the proper current loads.
The patches are sequenced to maintain bisectability. With the driver
change, the PHY framework will continue to vote for the regulator
described by 'phy-supply'. The DT changes which follow then remove
'phy-supply' in favour of 'vdda-0p9' and 'vdda-1p2'.
Testing:
This series was tested on the following Lemans and Monaco based boards.
1. Lemans IQ-9075 EVK with the IFP+ Mezzanine attach (dual GMAC +
QCOM SGMII SerDes + QCA8081 PHY)
2. Lemans QCS9100 Ride (dual GMAC + QCOM SGMII SerDes + AQR115C PHY)
3. Monaco IQ-8275 EVK (single GMAC + QCOM SGMII SerDes + QCA8081 PHY)
4. Monaco QCS8300 Ride (dual GMAC + QCOM SGMII SerDes + AQR115C PHY)
To conclusively test the new regulator voting, I tested builds with all
the other consumers of the regulators disabled from the DTS to ensure
that the phy-qcom-sgmii-eth driver held the only vote.
Changes since v1:
- Fixed the DT bindings to describe the actual SerDes PHY hardware,
which actually has two supplies rather than only one - Krzysztof.
- Use regulator_bulk_* APIs to properly set the current loads of the
two supplies - Konrad.
- Fixed Lemans board DTS files that incorrectly voted for vreg_l5a;
the correct rails per the power diagram are vreg_l4a (0.9V) and
vreg_l1c (1.2V).
- Link to v1: https://lore.kernel.org/linux-arm-msm/20251124-sgmiieth_serdes_regulator-v1-0-73ae8f9cbe2a@oss.qualcomm.com/T/#m0b93e06a0d6a09c4c1b65c500b475958ed5e288d.
Signed-off-by: Mohd Ayaan Anwar <[email protected]>
---
Mohd Ayaan Anwar (6):
dt-bindings: phy: qcom,sa8775p-dwmac-sgmii-phy: add named voltage rails and deprecate phy-supply
phy: qcom: sgmii-eth: vote for both voltage rails with correct current loads
arm64: dts: qcom: lemans-evk: fix SerDes PHY regulator supplies
arm64: dts: qcom: lemans-ride-common: fix SerDes PHY regulator supplies
arm64: dts: qcom: monaco-evk: fix SerDes PHY regulator supplies
arm64: dts: qcom: qcs8300-ride: fix SerDes PHY regulator supplies
.../bindings/phy/qcom,sa8775p-dwmac-sgmii-phy.yaml | 11 +++++++
.../boot/dts/qcom/lemans-evk-ifp-mezzanine.dtso | 3 +-
arch/arm64/boot/dts/qcom/lemans-evk.dts | 3 +-
arch/arm64/boot/dts/qcom/lemans-ride-common.dtsi | 8 +++--
arch/arm64/boot/dts/qcom/monaco-evk.dts | 3 +-
arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 4 ++-
drivers/phy/qualcomm/phy-qcom-sgmii-eth.c | 37 +++++++++++++++++++---
7 files changed, 59 insertions(+), 10 deletions(-)
---
base-commit: 415606a7be939835db9b0d6b711887586646346d
change-id: 20260803-b4-sgmiieth_serdes_regulator-0cf9e58dbb12
Best regards,
--
Mohd Ayaan Anwar <[email protected]>
--
linux-phy mailing list
[email protected]
https://lists.infradead.org/mailman/listinfo/linux-phy