Re: [PATCH v2 0/6] Fix regulator voting for the Qualcomm SGMII SerDes PHY
From: Manivannan Sadhasivam
Date: Fri Aug 07 2026 - 01:00:36 EST
On Tue, Aug 04, 2026 at 12:57:56AM +0530, Mohd Ayaan Anwar wrote:
> 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@xxxxxxxxxxxxxxxx/T/#m0b93e06a0d6a09c4c1b65c500b475958ed5e288d.
>
> Signed-off-by: Mohd Ayaan Anwar <mohd.anwar@xxxxxxxxxxxxxxxx>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxxxxxxxx>
- Mani
--
மணிவண்ணன் சதாசிவம்