* [PATCH v2 1/4] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Add vdda-refgen and refgen supply properties
2026-09-16 10:20 [PATCH v2 0/4] Add qref and refgen regulator support for QCS8300 and SA8775p PCIe PHYs Ziyue Zhang
@ 2026-09-16 10:20 ` Ziyue Zhang
2026-09-16 10:20 ` [PATCH v2 2/4] phy: qcom: qmp-pcie: Add qref and refgen regulator vote for QCS8300 and SA8775p PHY Ziyue Zhang
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: Ziyue Zhang @ 2026-09-16 10:20 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Manivannan Sadhasivam, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Abel Vesa
Cc: Dmitry Baryshkov, peter.chen, qiang.yu, linux-arm-msm, linux-phy,
devicetree, linux-kernel, Ziyue Zhang, Krzysztof Kozlowski
QCS8300 and SA8775p PCIe PHYs require dedicated vdda-refgen and refgen
LDO supplies for QREF to provide a stable reference clock. Without these
supplies, the PCIe PHYs cannot work properly. Mark them as required for
the affected compatibles even though it breaks ABI.
vdda-refgen-supply is required for all three QCS8300 and SA8775p PHY
compatibles. refgen-supply is required for QCS8300 only, as a workaround
for a hardware issue where QREF actually depends on refgen3 rather than
refgen2 as documented, so the PHY driver votes for refgen3 directly via
this supply.
Signed-off-by: Ziyue Zhang <ziyue.zhang@oss.qualcomm.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
.../phy/qcom,sc8280xp-qmp-pcie-phy.yaml | 27 +++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
index b353b7bfb839..bd4c98784142 100644
--- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
+++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
@@ -94,6 +94,11 @@ properties:
vdda-qref-supply: true
+ vdda-refgen-supply: true
+
+ # Only required on platforms where the hardware voting doesn't work properly
+ refgen-supply: true
+
qcom,4ln-config-sel:
description: PCIe 4-lane configuration
$ref: /schemas/types.yaml#/definitions/phandle-array
@@ -269,6 +274,28 @@ allOf:
"#clock-cells":
const: 0
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,qcs8300-qmp-gen4x2-pcie-phy
+ - qcom,sa8775p-qmp-gen4x2-pcie-phy
+ - qcom,sa8775p-qmp-gen4x4-pcie-phy
+ then:
+ required:
+ - vdda-refgen-supply
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,qcs8300-qmp-gen4x2-pcie-phy
+ then:
+ required:
+ - refgen-supply
+
examples:
- |
#include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
--
2.43.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH v2 2/4] phy: qcom: qmp-pcie: Add qref and refgen regulator vote for QCS8300 and SA8775p PHY
2026-09-16 10:20 [PATCH v2 0/4] Add qref and refgen regulator support for QCS8300 and SA8775p PCIe PHYs Ziyue Zhang
2026-09-16 10:20 ` [PATCH v2 1/4] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Add vdda-refgen and refgen supply properties Ziyue Zhang
@ 2026-09-16 10:20 ` Ziyue Zhang
2026-09-16 10:35 ` sashiko-bot
2026-09-16 10:20 ` [PATCH v2 3/4] arm64: dts: qcom: qcs8300: Add qref and refgen supply for PCIe PHYs Ziyue Zhang
2026-09-16 10:20 ` [PATCH v2 4/4] arm64: dts: qcom: sa8775p: " Ziyue Zhang
3 siblings, 1 reply; 8+ messages in thread
From: Ziyue Zhang @ 2026-09-16 10:20 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Manivannan Sadhasivam, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Abel Vesa
Cc: Dmitry Baryshkov, peter.chen, qiang.yu, linux-arm-msm, linux-phy,
devicetree, linux-kernel, Ziyue Zhang
Add a new sa8775p_qmp_phy_vreg_l that includes vdda-phy, vdda-pll,
vdda-qref, vdda-refgen and refgen supplies, and use it for QCS8300
and SA8775p PCIe PHY configurations. This avoids modifying
sm8550_qmp_phy_vreg_l and breaking SM8550 and SM8650.
These supplies were missing from the original driver, which was found
to be the root cause of occasional system crashes observed on QCS8300
and SA8775p platforms. Without voting for these supplies, the PCIe PHY
lacks stable reference clock and voltage, so the PHY never becomes
ready and initialization times out:
[ 7.303119] qcom-qmp-pcie-phy 1c04000.phy: phy initialization timed-out
[ 7.309948] phy phy-1c04000.phy.0: phy poweron failed --> -110
Note that due to a hardware issue, QREF actually depends on refgen3
rather than refgen2 as documented; refgen3 is therefore voted manually
via the refgen supply as a workaround.
Fixes: a05b6d5135ec ("phy: qcom-qmp-pcie: add support for sa8775p")
Fixes: ebf198f17b5a ("phy: qcom-qmp-pcie: add dual lane PHY support for QCS8300")
Signed-off-by: Ziyue Zhang <ziyue.zhang@oss.qualcomm.com>
---
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
index da83358c97ea..ab81c6e584a8 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
@@ -4094,6 +4094,10 @@ static const char * const sm8550_qmp_phy_vreg_l[] = {
"vdda-phy", "vdda-pll", "vdda-qref",
};
+static const char * const sa8775p_qmp_phy_vreg_l[] = {
+ "vdda-phy", "vdda-pll", "vdda-qref", "vdda-refgen", "refgen",
+};
+
/* list of resets */
static const char * const ipq8074_pciephy_reset_l[] = {
"phy", "common",
@@ -4585,8 +4589,8 @@ static const struct qmp_phy_cfg qcs8300_qmp_gen4x2_pciephy_cfg = {
.reset_list = sdm845_pciephy_reset_l,
.num_resets = ARRAY_SIZE(sdm845_pciephy_reset_l),
- .vreg_list = qmp_phy_vreg_l,
- .num_vregs = ARRAY_SIZE(qmp_phy_vreg_l),
+ .vreg_list = sa8775p_qmp_phy_vreg_l,
+ .num_vregs = ARRAY_SIZE(sa8775p_qmp_phy_vreg_l),
.regs = pciephy_v5_regs_layout,
.pwrdn_ctrl = SW_PWRDN | REFCLK_DRV_DSBL,
@@ -5324,8 +5328,8 @@ static const struct qmp_phy_cfg sa8775p_qmp_gen4x2_pciephy_cfg = {
.reset_list = sdm845_pciephy_reset_l,
.num_resets = ARRAY_SIZE(sdm845_pciephy_reset_l),
- .vreg_list = qmp_phy_vreg_l,
- .num_vregs = ARRAY_SIZE(qmp_phy_vreg_l),
+ .vreg_list = sa8775p_qmp_phy_vreg_l,
+ .num_vregs = ARRAY_SIZE(sa8775p_qmp_phy_vreg_l),
.regs = pciephy_v5_regs_layout,
.pwrdn_ctrl = SW_PWRDN | REFCLK_DRV_DSBL,
@@ -5365,8 +5369,8 @@ static const struct qmp_phy_cfg sa8775p_qmp_gen4x4_pciephy_cfg = {
.reset_list = sdm845_pciephy_reset_l,
.num_resets = ARRAY_SIZE(sdm845_pciephy_reset_l),
- .vreg_list = qmp_phy_vreg_l,
- .num_vregs = ARRAY_SIZE(qmp_phy_vreg_l),
+ .vreg_list = sa8775p_qmp_phy_vreg_l,
+ .num_vregs = ARRAY_SIZE(sa8775p_qmp_phy_vreg_l),
.regs = pciephy_v5_regs_layout,
.pwrdn_ctrl = SW_PWRDN | REFCLK_DRV_DSBL,
--
2.43.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH v2 2/4] phy: qcom: qmp-pcie: Add qref and refgen regulator vote for QCS8300 and SA8775p PHY
2026-09-16 10:20 ` [PATCH v2 2/4] phy: qcom: qmp-pcie: Add qref and refgen regulator vote for QCS8300 and SA8775p PHY Ziyue Zhang
@ 2026-09-16 10:35 ` sashiko-bot
0 siblings, 0 replies; 8+ messages in thread
From: sashiko-bot @ 2026-09-16 10:35 UTC (permalink / raw)
To: Ziyue Zhang
Cc: linux-phy, vkoul, neil.armstrong, conor+dt, devicetree, robh,
olteanv
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] phy: qcom-qmp-pcie: probe failure on SA8775P due to missing refgen supply
--
commit 6ebdf3508e888642443e5fd08f439c12e51dcc9d
Author: Ziyue Zhang <ziyue.zhang@oss.qualcomm.com>
phy: qcom: qmp-pcie: Add qref and refgen regulator vote for QCS8300 and SA8775p PHY
Adds a new sa8775p_qmp_phy_vreg_l array that includes the refgen supply,
using it for QCS8300 and SA8775p PCIe PHY configurations to fix
initialization timeouts.
> diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
> index da83358c97ead..ab81c6e584a84 100644
> --- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
> +++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
> @@ -4094,6 +4094,10 @@ static const char * const sm8550_qmp_phy_vreg_l[] = {
> "vdda-phy", "vdda-pll", "vdda-qref",
> };
>
> +static const char * const sa8775p_qmp_phy_vreg_l[] = {
> + "vdda-phy", "vdda-pll", "vdda-qref", "vdda-refgen", "refgen",
> +};
> +
[Severity: High]
Will this cause a probe failure on SA8775p platforms due to a missing
refgen supply?
The new sa8775p_qmp_phy_vreg_l array unconditionally includes the "refgen"
supply, but is applied to both QCS8300 and SA8775p PHY configurations.
Since the "refgen" supply requirement is a hardware workaround specific
only to QCS8300, the SA8775p device trees omit the "refgen-supply"
property.
When devm_regulator_bulk_get() is called for the SA8775p configuration,
it requires all listed supplies to be present in the device tree. If
"refgen-supply" is omitted on SA8775p, won't the regulator lookup return
-ENODEV and unconditionally abort the probe?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260916102023.2054761-1-ziyue.zhang@oss.qualcomm.com?part=2
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 3/4] arm64: dts: qcom: qcs8300: Add qref and refgen supply for PCIe PHYs
2026-09-16 10:20 [PATCH v2 0/4] Add qref and refgen regulator support for QCS8300 and SA8775p PCIe PHYs Ziyue Zhang
2026-09-16 10:20 ` [PATCH v2 1/4] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Add vdda-refgen and refgen supply properties Ziyue Zhang
2026-09-16 10:20 ` [PATCH v2 2/4] phy: qcom: qmp-pcie: Add qref and refgen regulator vote for QCS8300 and SA8775p PHY Ziyue Zhang
@ 2026-09-16 10:20 ` Ziyue Zhang
2026-09-16 10:39 ` sashiko-bot
2026-09-16 10:20 ` [PATCH v2 4/4] arm64: dts: qcom: sa8775p: " Ziyue Zhang
3 siblings, 1 reply; 8+ messages in thread
From: Ziyue Zhang @ 2026-09-16 10:20 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Manivannan Sadhasivam, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Abel Vesa
Cc: Dmitry Baryshkov, peter.chen, qiang.yu, linux-arm-msm, linux-phy,
devicetree, linux-kernel, Ziyue Zhang
The QMP PCIe PHYs on QCS8300 require dedicated qref and refgen voltage
supplies for stable operation. Without these supplies, the system may
occasionally crash.
Add vdda-qref-supply and vdda-refgen-supply in the board files
(QCS8300-RIDE, Monaco-EVK and Monaco-Monza-SoM), and add refgen-supply
in the SoC DTSI (monaco.dtsi) since refgen is an on-chip regulator
shared across boards. The PHY driver votes for refgen3 directly as a
workaround for a hardware issue where QREF actually depends on refgen3
rather than refgen2 as documented.
Fixes: 33967eadb215 ("arm64: dts: qcom: qcs8300-ride: enable pcie0 interface")
Fixes: cdb613a84527 ("arm64: dts: qcom: qcs8300-ride: enable pcie1 interface")
Fixes: 41e2424651f7 ("arm64: dts: qcom: monaco-evk: Enable PCIe0 and PCIe1.")
Fixes: 5238f4e7169f ("arm64: dts: qcom: Add Monaco Monza SoM")
Signed-off-by: Ziyue Zhang <ziyue.zhang@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/monaco-evk.dts | 4 ++++
arch/arm64/boot/dts/qcom/monaco-monza-som.dtsi | 4 ++++
arch/arm64/boot/dts/qcom/monaco.dtsi | 4 ++++
arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 4 ++++
4 files changed, 16 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/monaco-evk.dts b/arch/arm64/boot/dts/qcom/monaco-evk.dts
index 9d17ef7d2caf..c1f63a4ee243 100644
--- a/arch/arm64/boot/dts/qcom/monaco-evk.dts
+++ b/arch/arm64/boot/dts/qcom/monaco-evk.dts
@@ -623,6 +623,8 @@ &pcie0 {
&pcie0_phy {
vdda-phy-supply = <&vreg_l6a>;
vdda-pll-supply = <&vreg_l5a>;
+ vdda-qref-supply = <&vreg_l4a>;
+ vdda-refgen-supply = <&vreg_l7a>;
status = "okay";
};
@@ -637,6 +639,8 @@ &pcie1 {
&pcie1_phy {
vdda-phy-supply = <&vreg_l6a>;
vdda-pll-supply = <&vreg_l5a>;
+ vdda-qref-supply = <&vreg_l4a>;
+ vdda-refgen-supply = <&vreg_l7a>;
status = "okay";
};
diff --git a/arch/arm64/boot/dts/qcom/monaco-monza-som.dtsi b/arch/arm64/boot/dts/qcom/monaco-monza-som.dtsi
index 36af1ad2105d..b1b3a7773bbe 100644
--- a/arch/arm64/boot/dts/qcom/monaco-monza-som.dtsi
+++ b/arch/arm64/boot/dts/qcom/monaco-monza-som.dtsi
@@ -211,6 +211,8 @@ &pcie0 {
&pcie0_phy {
vdda-phy-supply = <&vreg_l6a>;
vdda-pll-supply = <&vreg_l5a>;
+ vdda-qref-supply = <&vreg_l4a>;
+ vdda-refgen-supply = <&vreg_l7a>;
status = "okay";
};
@@ -223,6 +225,8 @@ &pcie1 {
&pcie1_phy {
vdda-phy-supply = <&vreg_l6a>;
vdda-pll-supply = <&vreg_l5a>;
+ vdda-qref-supply = <&vreg_l4a>;
+ vdda-refgen-supply = <&vreg_l7a>;
status = "okay";
};
diff --git a/arch/arm64/boot/dts/qcom/monaco.dtsi b/arch/arm64/boot/dts/qcom/monaco.dtsi
index cfe39f923224..a8e5f7abf686 100644
--- a/arch/arm64/boot/dts/qcom/monaco.dtsi
+++ b/arch/arm64/boot/dts/qcom/monaco.dtsi
@@ -2433,6 +2433,8 @@ pcie0_phy: phy@1c04000 {
#phy-cells = <0>;
+ refgen-supply = <&refgen>;
+
status = "disabled";
};
@@ -2624,6 +2626,8 @@ pcie1_phy: phy@1c14000 {
#phy-cells = <0>;
+ refgen-supply = <&refgen>;
+
status = "disabled";
};
diff --git a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
index 1ff39530ea3d..c7b36feca4ac 100644
--- a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
+++ b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
@@ -638,6 +638,8 @@ wifi@0 {
&pcie0_phy {
vdda-phy-supply = <&vreg_l6a>;
vdda-pll-supply = <&vreg_l5a>;
+ vdda-qref-supply = <&vreg_l4a>;
+ vdda-refgen-supply = <&vreg_l7a>;
status = "okay";
};
@@ -657,6 +659,8 @@ &pcieport1 {
&pcie1_phy {
vdda-phy-supply = <&vreg_l6a>;
vdda-pll-supply = <&vreg_l5a>;
+ vdda-qref-supply = <&vreg_l4a>;
+ vdda-refgen-supply = <&vreg_l7a>;
status = "okay";
};
--
2.43.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH v2 3/4] arm64: dts: qcom: qcs8300: Add qref and refgen supply for PCIe PHYs
2026-09-16 10:20 ` [PATCH v2 3/4] arm64: dts: qcom: qcs8300: Add qref and refgen supply for PCIe PHYs Ziyue Zhang
@ 2026-09-16 10:39 ` sashiko-bot
0 siblings, 0 replies; 8+ messages in thread
From: sashiko-bot @ 2026-09-16 10:39 UTC (permalink / raw)
To: Ziyue Zhang
Cc: olteanv, linux-phy, devicetree, conor+dt, robh, vkoul,
neil.armstrong
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] pcie: probe failure on SA8775p due to unconditionally required QCS8300 workaround regulator
--
commit 1c7a11beac9080a5affb060c2f0b8c2011ce109b
Author: Ziyue Zhang <ziyue.zhang@oss.qualcomm.com>
Subject: arm64: dts: qcom: qcs8300: Add qref and refgen supply for PCIe PHYs
This commit adds vdda-qref-supply and vdda-refgen-supply to board DTS files and
refgen-supply to the SoC DTSI for QCS8300 due to hardware requirements for
stable operation. It also updates the driver to vote for refgen as a
workaround for a QCS8300 hardware issue.
> diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
> index da83358c97ead..ab81c6e584a84 100644
> --- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
> +++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
> @@ -4094,6 +4094,10 @@ static const char * const sm8550_qmp_phy_vreg_l[] = {
> "vdda-phy", "vdda-pll", "vdda-qref",
> };
>
> +static const char * const sa8775p_qmp_phy_vreg_l[] = {
> + "vdda-phy", "vdda-pll", "vdda-qref", "vdda-refgen", "refgen",
> +};
> +
[Severity: High]
Does this unconditionally require the refgen supply for any configuration
using sa8775p_qmp_phy_vreg_l in drivers/phy/qualcomm/phy-qcom-qmp-pcie.c?
According to the DT bindings, refgen-supply is a hardware workaround required
only for QCS8300, and SA8775P device trees correctly do not define it.
When qmp_pcie_vreg_init() calls devm_regulator_bulk_get() on SA8775P boards,
it will fail to find refgen, which will abort the PHY probe and completely break
PCIe functionality on SA8775P.
> /* list of resets */
> static const char * const ipq8074_pciephy_reset_l[] = {
[ ... ]
> @@ -5324,8 +5328,8 @@ static const struct qmp_phy_cfg sa8775p_qmp_gen4x2_pciephy_cfg = {
>
> .reset_list = sdm845_pciephy_reset_l,
> .num_resets = ARRAY_SIZE(sdm845_pciephy_reset_l),
> - .vreg_list = qmp_phy_vreg_l,
> - .num_vregs = ARRAY_SIZE(qmp_phy_vreg_l),
> + .vreg_list = sa8775p_qmp_phy_vreg_l,
> + .num_vregs = ARRAY_SIZE(sa8775p_qmp_phy_vreg_l),
[Severity: High]
Will the sa8775p_qmp_gen4x2_pciephy_cfg configuration incorrectly inherit the
requirement for the QCS8300-specific refgen supply by using this shared list?
> .regs = pciephy_v5_regs_layout,
>
> .pwrdn_ctrl = SW_PWRDN | REFCLK_DRV_DSBL,
[ ... ]
> @@ -5365,8 +5369,8 @@ static const struct qmp_phy_cfg sa8775p_qmp_gen4x4_pciephy_cfg = {
>
> .reset_list = sdm845_pciephy_reset_l,
> .num_resets = ARRAY_SIZE(sdm845_pciephy_reset_l),
> - .vreg_list = qmp_phy_vreg_l,
> - .num_vregs = ARRAY_SIZE(qmp_phy_vreg_l),
> + .vreg_list = sa8775p_qmp_phy_vreg_l,
> + .num_vregs = ARRAY_SIZE(sa8775p_qmp_phy_vreg_l),
[Severity: High]
Could the sa8775p_qmp_gen4x4_pciephy_cfg configuration also be affected by
this requirement through the shared list?
> .regs = pciephy_v5_regs_layout,
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260916102023.2054761-1-ziyue.zhang@oss.qualcomm.com?part=3
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 4/4] arm64: dts: qcom: sa8775p: Add qref and refgen supply for PCIe PHYs
2026-09-16 10:20 [PATCH v2 0/4] Add qref and refgen regulator support for QCS8300 and SA8775p PCIe PHYs Ziyue Zhang
` (2 preceding siblings ...)
2026-09-16 10:20 ` [PATCH v2 3/4] arm64: dts: qcom: qcs8300: Add qref and refgen supply for PCIe PHYs Ziyue Zhang
@ 2026-09-16 10:20 ` Ziyue Zhang
2026-09-16 10:32 ` sashiko-bot
3 siblings, 1 reply; 8+ messages in thread
From: Ziyue Zhang @ 2026-09-16 10:20 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Manivannan Sadhasivam, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
Abel Vesa
Cc: Dmitry Baryshkov, peter.chen, qiang.yu, linux-arm-msm, linux-phy,
devicetree, linux-kernel, Ziyue Zhang
The QMP PCIe PHYs on SA8775p require dedicated qref and refgen voltage
supplies for stable operation. Without these supplies, the system may
occasionally crash.
Add vdda-qref-supply and vdda-refgen-supply in the board files
(Lemans-EVK and Lemans-RIDE).
Fixes: 94d7d37f6ac3 ("arm64: dts: qcom: lemans-evk: Enable PCIe support")
Fixes: 76326da895b8 ("arm64: dts: qcom: lemans: Refactor ride/ride-r3 boards based on daughter cards")
Signed-off-by: Ziyue Zhang <ziyue.zhang@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/lemans-evk.dts | 4 ++++
arch/arm64/boot/dts/qcom/lemans-ride-common.dtsi | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
index a45485b54a5b..11fb11b161fc 100644
--- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
+++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
@@ -851,6 +851,8 @@ &pcie0 {
&pcie0_phy {
vdda-phy-supply = <&vreg_l5a>;
vdda-pll-supply = <&vreg_l1c>;
+ vdda-qref-supply = <&vreg_l4a>;
+ vdda-refgen-supply = <&vreg_l7a>;
status = "okay";
};
@@ -868,6 +870,8 @@ &pcie1 {
&pcie1_phy {
vdda-phy-supply = <&vreg_l5a>;
vdda-pll-supply = <&vreg_l1c>;
+ vdda-qref-supply = <&vreg_l4a>;
+ vdda-refgen-supply = <&vreg_l7a>;
status = "okay";
};
diff --git a/arch/arm64/boot/dts/qcom/lemans-ride-common.dtsi b/arch/arm64/boot/dts/qcom/lemans-ride-common.dtsi
index 144f117ba511..c312fbd6ac48 100644
--- a/arch/arm64/boot/dts/qcom/lemans-ride-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/lemans-ride-common.dtsi
@@ -983,6 +983,8 @@ &pcie1 {
&pcie0_phy {
vdda-phy-supply = <&vreg_l5a>;
vdda-pll-supply = <&vreg_l1c>;
+ vdda-qref-supply = <&vreg_l4a>;
+ vdda-refgen-supply = <&vreg_l7a>;
status = "okay";
};
@@ -990,6 +992,8 @@ &pcie0_phy {
&pcie1_phy {
vdda-phy-supply = <&vreg_l5a>;
vdda-pll-supply = <&vreg_l1c>;
+ vdda-qref-supply = <&vreg_l4a>;
+ vdda-refgen-supply = <&vreg_l7a>;
status = "okay";
};
--
2.43.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH v2 4/4] arm64: dts: qcom: sa8775p: Add qref and refgen supply for PCIe PHYs
2026-09-16 10:20 ` [PATCH v2 4/4] arm64: dts: qcom: sa8775p: " Ziyue Zhang
@ 2026-09-16 10:32 ` sashiko-bot
0 siblings, 0 replies; 8+ messages in thread
From: sashiko-bot @ 2026-09-16 10:32 UTC (permalink / raw)
To: Ziyue Zhang
Cc: olteanv, linux-phy, robh, conor+dt, devicetree, neil.armstrong,
vkoul
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] dt: qcom: sa8775p: missing refgen-supply breaks PCIe PHY probe
--
commit 01fe676ff997cb09ae0eae172966d007c6ff8142
Author: Ziyue Zhang <ziyue.zhang@oss.qualcomm.com>
arm64: dts: qcom: sa8775p: Add qref and refgen supply for PCIe PHYs
This commit adds vdda-qref-supply and vdda-refgen-supply properties to the
PCIe PHY nodes in the SA8775p Lemans-EVK and Lemans-RIDE device trees. This
ensures stable operation and prevents occasional system crashes.
> diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> index a45485b54a5b7..11fb11b161fc1 100644
> --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts
> +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts
> @@ -851,6 +851,8 @@ &pcie0 {
> &pcie0_phy {
> vdda-phy-supply = <&vreg_l5a>;
> vdda-pll-supply = <&vreg_l1c>;
> + vdda-qref-supply = <&vreg_l4a>;
> + vdda-refgen-supply = <&vreg_l7a>;
[Severity: High]
Does this node also need a refgen-supply property?
Looking at the QMP PCIe PHY driver for SA8775p, sa8775p_qmp_phy_vreg_l mandates
5 regulators, including refgen:
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c:
static const char * const sa8775p_qmp_phy_vreg_l[] = {
"vdda-phy", "vdda-pll", "vdda-qref", "vdda-refgen", "refgen",
};
When qmp_pcie_vreg_init() calls devm_regulator_bulk_get(), it expects all
regulators in this array to be present. Without refgen-supply defined here (or
in the base PHY node pcie0_phy in lemans.dtsi), won't devm_regulator_bulk_get()
fail with -ENODEV and break the PCIe PHY probe deterministically at boot time?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260916102023.2054761-1-ziyue.zhang@oss.qualcomm.com?part=4
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 8+ messages in thread