* [PATCH v3 0/5] arm64: qcom: x1e80100-qcp: Add power supply and sideband signals for PCIe RC
@ 2025-05-08 8:15 Wenbin Yao
2025-05-08 8:15 ` [PATCH v3 1/5] arm64: Kconfig: enable PCI Power Control Slot driver for QCOM Wenbin Yao
` (5 more replies)
0 siblings, 6 replies; 15+ messages in thread
From: Wenbin Yao @ 2025-05-08 8:15 UTC (permalink / raw)
To: catalin.marinas, will, linux-arm-kernel, andersson, konradybcio,
robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel,
vkoul, kishon, sfr, linux-phy
Cc: krishna.chundru, quic_vbadigan, quic_mrana, quic_cang,
quic_qianyu, quic_wenbyao
The first patch enables the PCI Power Control driver to control the power
state of PCI slots. The second patch adds the bus topology of PCIe domain 3
on x1e80100 platform. The third patch adds perst, wake and clkreq sideband
signals, and describe the regulators powering the rails of the PCI slots in
the devicetree for PCIe3 controller and PHY device. The fourth patch adds
qref supply in dts nodes of PCIe PHYs. The fifth patch requests qref supply
for PCIe PHYs.
The patchset has been modified based on comments and suggestions.
Changes in v3:
- Replace PCI_PWRCTL_SLOT with PCI_PWRCTRL_SLOT in Patch 1/5.
- Kepp the order of pinctrl-0 before pinctrl-names in Patch 3/5.
- Add Patch 5/5 to request qref supply for PCIe PHYs.
- Link to v2: https://lore.kernel.org/all/20250425092955.4099677-1-quic_wenbyao@quicinc.com/
Changes in v2:
- Select PCI_PWRCTL_SLOT by ARCH_QCOM in arch/arm64/Kconfig.platforms in
Patch 1/4.
- Add an empty line before pcie3port node in Patch 2/4.
- Rename regulator-pcie_12v regulator-pcie_3v3_aux and regulator-pcie_3v3
in Patch 3/4.
- Add Patch 4/4 to describe qref supply of PCIe PHYs.
- Link to v1: https://lore.kernel.org/all/20250320055502.274849-1-quic_wenbyao@quicinc.com/
Qiang Yu (5):
arm64: Kconfig: enable PCI Power Control Slot driver for QCOM
arm64: dts: qcom: x1e80100: add bus topology for PCIe domain 3
arm64: dts: qcom: x1e80100-qcp: enable pcie3 x8 slot for X1E80100-QCP
arm64: dts: qcom: x1e80100-qcp: Add qref supply for PCIe PHYs
phy: qcom: qmp-pcie: add x1e80100 qref supplies
arch/arm64/Kconfig.platforms | 1 +
arch/arm64/boot/dts/qcom/x1e80100-qcp.dts | 121 ++++++++++++++++++++++
arch/arm64/boot/dts/qcom/x1e80100.dtsi | 11 ++
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 37 ++++++-
4 files changed, 165 insertions(+), 5 deletions(-)
base-commit: 0a00723f4c2d0b273edd0737f236f103164a08eb
--
2.34.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v3 1/5] arm64: Kconfig: enable PCI Power Control Slot driver for QCOM
2025-05-08 8:15 [PATCH v3 0/5] arm64: qcom: x1e80100-qcp: Add power supply and sideband signals for PCIe RC Wenbin Yao
@ 2025-05-08 8:15 ` Wenbin Yao
2025-05-08 8:15 ` [PATCH v3 2/5] arm64: dts: qcom: x1e80100: add bus topology for PCIe domain 3 Wenbin Yao
` (4 subsequent siblings)
5 siblings, 0 replies; 15+ messages in thread
From: Wenbin Yao @ 2025-05-08 8:15 UTC (permalink / raw)
To: catalin.marinas, will, linux-arm-kernel, andersson, konradybcio,
robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel,
vkoul, kishon, sfr, linux-phy
Cc: krishna.chundru, quic_vbadigan, quic_mrana, quic_cang,
quic_qianyu, quic_wenbyao
From: Qiang Yu <quic_qianyu@quicinc.com>
Enable the pwrctrl driver, which is utilized to manage the power supplies
of the devices connected to the PCI slots. This ensures that the voltage
rails of the standard PCI slots on some platforms eg. X1E80100-QCP can be
correctly turned on/off if they are described under PCIe port device tree
node.
Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
Signed-off-by: Wenbin Yao <quic_wenbyao@quicinc.com>
---
arch/arm64/Kconfig.platforms | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
index a541bb029..0ffd65e36 100644
--- a/arch/arm64/Kconfig.platforms
+++ b/arch/arm64/Kconfig.platforms
@@ -270,6 +270,7 @@ config ARCH_QCOM
select GPIOLIB
select PINCTRL
select HAVE_PWRCTRL if PCI
+ select PCI_PWRCTRL_SLOT if PCI
help
This enables support for the ARMv8 based Qualcomm chipsets.
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v3 2/5] arm64: dts: qcom: x1e80100: add bus topology for PCIe domain 3
2025-05-08 8:15 [PATCH v3 0/5] arm64: qcom: x1e80100-qcp: Add power supply and sideband signals for PCIe RC Wenbin Yao
2025-05-08 8:15 ` [PATCH v3 1/5] arm64: Kconfig: enable PCI Power Control Slot driver for QCOM Wenbin Yao
@ 2025-05-08 8:15 ` Wenbin Yao
2025-05-31 19:26 ` Konrad Dybcio
2025-05-08 8:15 ` [PATCH v3 3/5] arm64: dts: qcom: x1e80100-qcp: enable pcie3 x8 slot for X1E80100-QCP Wenbin Yao
` (3 subsequent siblings)
5 siblings, 1 reply; 15+ messages in thread
From: Wenbin Yao @ 2025-05-08 8:15 UTC (permalink / raw)
To: catalin.marinas, will, linux-arm-kernel, andersson, konradybcio,
robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel,
vkoul, kishon, sfr, linux-phy
Cc: krishna.chundru, quic_vbadigan, quic_mrana, quic_cang,
quic_qianyu, quic_wenbyao, Konrad Dybcio
From: Qiang Yu <quic_qianyu@quicinc.com>
Add pcie3port node to represent the PCIe bridge of PCIe3 so that PCI slot
voltage rails can be described under this node in the board's dts.
Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
Signed-off-by: Wenbin Yao <quic_wenbyao@quicinc.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/x1e80100.dtsi | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
index 46b79fce9..430f9d567 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
@@ -3287,6 +3287,17 @@ opp-128000000 {
opp-peak-kBps = <15753000 1>;
};
};
+
+ pcie3port: pcie@0 {
+ device_type = "pci";
+ compatible = "pciclass,0604";
+ reg = <0x0 0x0 0x0 0x0 0x0>;
+ bus-range = <0x01 0xff>;
+
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+ };
};
pcie3_phy: phy@1be0000 {
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v3 3/5] arm64: dts: qcom: x1e80100-qcp: enable pcie3 x8 slot for X1E80100-QCP
2025-05-08 8:15 [PATCH v3 0/5] arm64: qcom: x1e80100-qcp: Add power supply and sideband signals for PCIe RC Wenbin Yao
2025-05-08 8:15 ` [PATCH v3 1/5] arm64: Kconfig: enable PCI Power Control Slot driver for QCOM Wenbin Yao
2025-05-08 8:15 ` [PATCH v3 2/5] arm64: dts: qcom: x1e80100: add bus topology for PCIe domain 3 Wenbin Yao
@ 2025-05-08 8:15 ` Wenbin Yao
2025-05-08 8:15 ` [PATCH v3 4/5] arm64: dts: qcom: x1e80100-qcp: Add qref supply for PCIe PHYs Wenbin Yao
` (2 subsequent siblings)
5 siblings, 0 replies; 15+ messages in thread
From: Wenbin Yao @ 2025-05-08 8:15 UTC (permalink / raw)
To: catalin.marinas, will, linux-arm-kernel, andersson, konradybcio,
robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel,
vkoul, kishon, sfr, linux-phy
Cc: krishna.chundru, quic_vbadigan, quic_mrana, quic_cang,
quic_qianyu, quic_wenbyao, Konrad Dybcio
From: Qiang Yu <quic_qianyu@quicinc.com>
Add perst, wake and clkreq sideband signals and required regulators in
PCIe3 controller and PHY device tree node. Describe the voltage rails of
the x8 PCI slots for PCIe3 port.
Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
Signed-off-by: Wenbin Yao <quic_wenbyao@quicinc.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/x1e80100-qcp.dts | 118 ++++++++++++++++++++++
1 file changed, 118 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-qcp.dts b/arch/arm64/boot/dts/qcom/x1e80100-qcp.dts
index 470c4f826..ec2479f8f 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100-qcp.dts
+++ b/arch/arm64/boot/dts/qcom/x1e80100-qcp.dts
@@ -318,6 +318,48 @@ vreg_wcn_3p3: regulator-wcn-3p3 {
regulator-boot-on;
};
+ vreg_pcie_12v: regulator-pcie-12v {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_PCIE_12V";
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+
+ gpio = <&pm8550ve_8_gpios 8 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&pcie_x8_12v>;
+ pinctrl-names = "default";
+ };
+
+ vreg_pcie_3v3_aux: regulator-pcie-3v3-aux {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_PCIE_3P3_AUX";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&pmc8380_3_gpios 8 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&pm_sde7_aux_3p3_en>;
+ pinctrl-names = "default";
+ };
+
+ vreg_pcie_3v3: regulator-pcie-3v3 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_PCIE_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&pmc8380_3_gpios 6 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&pm_sde7_main_3p3_en>;
+ pinctrl-names = "default";
+};
+
usb-1-ss0-sbu-mux {
compatible = "onnn,fsusb42", "gpio-sbu-mux";
@@ -909,6 +951,59 @@ &mdss_dp3_phy {
status = "okay";
};
+&pm8550ve_8_gpios {
+ pcie_x8_12v: pcie-12v-default-state {
+ pins = "gpio8";
+ function = "normal";
+ output-enable;
+ output-high;
+ bias-pull-down;
+ power-source = <0>;
+ };
+};
+
+&pmc8380_3_gpios {
+ pm_sde7_aux_3p3_en: pcie-aux-3p3-default-state {
+ pins = "gpio8";
+ function = "normal";
+ output-enable;
+ output-high;
+ bias-pull-down;
+ power-source = <0>;
+ };
+
+ pm_sde7_main_3p3_en: pcie-main-3p3-default-state {
+ pins = "gpio6";
+ function = "normal";
+ output-enable;
+ output-high;
+ bias-pull-down;
+ power-source = <0>;
+ };
+};
+
+&pcie3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie3_default>;
+ perst-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
+
+ status = "okay";
+};
+
+&pcie3_phy {
+ vdda-phy-supply = <&vreg_l3c_0p8>;
+ vdda-pll-supply = <&vreg_l3e_1p2>;
+
+ status = "okay";
+};
+
+&pcie3port {
+ vpcie12v-supply = <&vreg_pcie_12v>;
+ vpcie3v3-supply = <&vreg_pcie_3v3>;
+ vpcie3v3aux-supply = <&vreg_pcie_3v3_aux>;
+};
+
&pcie4 {
perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
@@ -1120,6 +1215,29 @@ nvme_reg_en: nvme-reg-en-state {
bias-disable;
};
+ pcie3_default: pcie3-default-state {
+ clkreq-n-pins {
+ pins = "gpio144";
+ function = "pcie3_clk";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-n-pins {
+ pins = "gpio143";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ wake-n-pins {
+ pins = "gpio145";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
pcie4_default: pcie4-default-state {
clkreq-n-pins {
pins = "gpio147";
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v3 4/5] arm64: dts: qcom: x1e80100-qcp: Add qref supply for PCIe PHYs
2025-05-08 8:15 [PATCH v3 0/5] arm64: qcom: x1e80100-qcp: Add power supply and sideband signals for PCIe RC Wenbin Yao
` (2 preceding siblings ...)
2025-05-08 8:15 ` [PATCH v3 3/5] arm64: dts: qcom: x1e80100-qcp: enable pcie3 x8 slot for X1E80100-QCP Wenbin Yao
@ 2025-05-08 8:15 ` Wenbin Yao
2025-05-08 8:15 ` [PATCH v3 5/5] phy: qcom: qmp-pcie: add x1e80100 qref supplies Wenbin Yao
2025-05-09 7:17 ` [PATCH v3 0/5] arm64: qcom: x1e80100-qcp: Add power supply and sideband signals for PCIe RC Qiang Yu
5 siblings, 0 replies; 15+ messages in thread
From: Wenbin Yao @ 2025-05-08 8:15 UTC (permalink / raw)
To: catalin.marinas, will, linux-arm-kernel, andersson, konradybcio,
robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel,
vkoul, kishon, sfr, linux-phy
Cc: krishna.chundru, quic_vbadigan, quic_mrana, quic_cang,
quic_qianyu, quic_wenbyao
From: Qiang Yu <quic_qianyu@quicinc.com>
All PCIe PHYs on X1E80100 require vdda-qref power supplies, but this is
missing in the current PHY device tree node. The PCIe port can still
function because the regulator L3J, which vdda-qref consumes, is voted by
other components.
Since the device tree should accurately describe the hardware, add the
vdda-qref power supply explicitly in all PCIe PHY device nodes.
Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
Signed-off-by: Wenbin Yao <quic_wenbyao@quicinc.com>
---
arch/arm64/boot/dts/qcom/x1e80100-qcp.dts | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-qcp.dts b/arch/arm64/boot/dts/qcom/x1e80100-qcp.dts
index ec2479f8f..a7f3ac142 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100-qcp.dts
+++ b/arch/arm64/boot/dts/qcom/x1e80100-qcp.dts
@@ -994,6 +994,7 @@ &pcie3 {
&pcie3_phy {
vdda-phy-supply = <&vreg_l3c_0p8>;
vdda-pll-supply = <&vreg_l3e_1p2>;
+ vdda-qref-supply = <&vreg_l3j_0p8>;
status = "okay";
};
@@ -1017,6 +1018,7 @@ &pcie4 {
&pcie4_phy {
vdda-phy-supply = <&vreg_l3i_0p8>;
vdda-pll-supply = <&vreg_l3e_1p2>;
+ vdda-qref-supply = <&vreg_l3j_0p8>;
status = "okay";
};
@@ -1053,6 +1055,7 @@ &pcie6a {
&pcie6a_phy {
vdda-phy-supply = <&vreg_l1d_0p8>;
vdda-pll-supply = <&vreg_l2j_1p2>;
+ vdda-qref-supply = <&vreg_l3j_0p8>;
status = "okay";
};
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v3 5/5] phy: qcom: qmp-pcie: add x1e80100 qref supplies
2025-05-08 8:15 [PATCH v3 0/5] arm64: qcom: x1e80100-qcp: Add power supply and sideband signals for PCIe RC Wenbin Yao
` (3 preceding siblings ...)
2025-05-08 8:15 ` [PATCH v3 4/5] arm64: dts: qcom: x1e80100-qcp: Add qref supply for PCIe PHYs Wenbin Yao
@ 2025-05-08 8:15 ` Wenbin Yao
2025-05-08 8:20 ` Johan Hovold
2025-05-09 7:17 ` [PATCH v3 0/5] arm64: qcom: x1e80100-qcp: Add power supply and sideband signals for PCIe RC Qiang Yu
5 siblings, 1 reply; 15+ messages in thread
From: Wenbin Yao @ 2025-05-08 8:15 UTC (permalink / raw)
To: catalin.marinas, will, linux-arm-kernel, andersson, konradybcio,
robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel,
vkoul, kishon, sfr, linux-phy
Cc: krishna.chundru, quic_vbadigan, quic_mrana, quic_cang,
quic_qianyu, quic_wenbyao, Johan Hovold, Abel Vesa
From: Qiang Yu <quic_qianyu@quicinc.com>
All PCIe PHYs on the X1E80100 SOC require the vdda-qref, which feeds QREF
clocks provided by the TCSR device.
Hence, restore the vdda-qref request for the 6th PCIe instance by reverting
commit 031b46b4729b ("phy: qcom: qmp-pcie: drop bogus x1e80100 qref
supplies"). For the 4th PCIe instance (Gen3 x2), add a new driver data
entry, namely x1e80100_qmp_gen3x2_pciephy_cfg, which is a copy of
sm8550_qmp_gen3x2_pciephy_cfg but uses sm8550_qmp_phy_vreg_l instead.
Fixes: 031b46b4729b ("phy: qcom: qmp-pcie: drop bogus x1e80100 qref supplies")
Fixes: 606060ce8fd0 ("phy: qcom-qmp-pcie: Add support for X1E80100 g3x2 and g4x2 PCIE")
Cc: Johan Hovold <johan+linaro@kernel.org>
Cc: Abel Vesa <abel.vesa@linaro.org>
Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
Signed-off-by: Wenbin Yao <quic_wenbyao@quicinc.com>
---
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 37 ++++++++++++++++++++----
1 file changed, 32 insertions(+), 5 deletions(-)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
index ab90aafb3..c3c725744 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
@@ -4142,6 +4142,33 @@ static const struct qmp_phy_cfg sa8775p_qmp_gen4x4_pciephy_cfg = {
.phy_status = PHYSTATUS_4_20,
};
+static const struct qmp_phy_cfg x1e80100_qmp_gen3x2_pciephy_cfg = {
+ .lanes = 2,
+
+ .offsets = &qmp_pcie_offsets_v5,
+
+ .tbls = {
+ .serdes = sm8550_qmp_gen3x2_pcie_serdes_tbl,
+ .serdes_num = ARRAY_SIZE(sm8550_qmp_gen3x2_pcie_serdes_tbl),
+ .tx = sm8550_qmp_gen3x2_pcie_tx_tbl,
+ .tx_num = ARRAY_SIZE(sm8550_qmp_gen3x2_pcie_tx_tbl),
+ .rx = sm8550_qmp_gen3x2_pcie_rx_tbl,
+ .rx_num = ARRAY_SIZE(sm8550_qmp_gen3x2_pcie_rx_tbl),
+ .pcs = sm8550_qmp_gen3x2_pcie_pcs_tbl,
+ .pcs_num = ARRAY_SIZE(sm8550_qmp_gen3x2_pcie_pcs_tbl),
+ .pcs_misc = sm8550_qmp_gen3x2_pcie_pcs_misc_tbl,
+ .pcs_misc_num = ARRAY_SIZE(sm8550_qmp_gen3x2_pcie_pcs_misc_tbl),
+ },
+ .reset_list = sdm845_pciephy_reset_l,
+ .num_resets = ARRAY_SIZE(sdm845_pciephy_reset_l),
+ .vreg_list = sm8550_qmp_phy_vreg_l,
+ .num_vregs = ARRAY_SIZE(sm8550_qmp_phy_vreg_l),
+ .regs = pciephy_v5_regs_layout,
+
+ .pwrdn_ctrl = SW_PWRDN | REFCLK_DRV_DSBL,
+ .phy_status = PHYSTATUS,
+};
+
static const struct qmp_phy_cfg x1e80100_qmp_gen4x2_pciephy_cfg = {
.lanes = 2,
@@ -4164,8 +4191,8 @@ static const struct qmp_phy_cfg x1e80100_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 = sm8550_qmp_phy_vreg_l,
+ .num_vregs = ARRAY_SIZE(sm8550_qmp_phy_vreg_l),
.regs = pciephy_v6_regs_layout,
.pwrdn_ctrl = SW_PWRDN | REFCLK_DRV_DSBL,
@@ -4197,8 +4224,8 @@ static const struct qmp_phy_cfg x1e80100_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 = sm8550_qmp_phy_vreg_l,
+ .num_vregs = ARRAY_SIZE(sm8550_qmp_phy_vreg_l),
.regs = pciephy_v6_regs_layout,
.pwrdn_ctrl = SW_PWRDN | REFCLK_DRV_DSBL,
@@ -5094,7 +5121,7 @@ static const struct of_device_id qmp_pcie_of_match_table[] = {
.data = &sm8650_qmp_gen4x2_pciephy_cfg,
}, {
.compatible = "qcom,x1e80100-qmp-gen3x2-pcie-phy",
- .data = &sm8550_qmp_gen3x2_pciephy_cfg,
+ .data = &x1e80100_qmp_gen3x2_pciephy_cfg,
}, {
.compatible = "qcom,x1e80100-qmp-gen4x2-pcie-phy",
.data = &x1e80100_qmp_gen4x2_pciephy_cfg,
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v3 5/5] phy: qcom: qmp-pcie: add x1e80100 qref supplies
2025-05-08 8:15 ` [PATCH v3 5/5] phy: qcom: qmp-pcie: add x1e80100 qref supplies Wenbin Yao
@ 2025-05-08 8:20 ` Johan Hovold
2025-05-08 8:50 ` Qiang Yu
0 siblings, 1 reply; 15+ messages in thread
From: Johan Hovold @ 2025-05-08 8:20 UTC (permalink / raw)
To: Wenbin Yao
Cc: catalin.marinas, will, linux-arm-kernel, andersson, konradybcio,
robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel,
vkoul, kishon, sfr, linux-phy, krishna.chundru, quic_vbadigan,
quic_mrana, quic_cang, quic_qianyu, Johan Hovold, Abel Vesa
On Thu, May 08, 2025 at 04:15:14PM +0800, Wenbin Yao wrote:
> From: Qiang Yu <quic_qianyu@quicinc.com>
>
> All PCIe PHYs on the X1E80100 SOC require the vdda-qref, which feeds QREF
> clocks provided by the TCSR device.
This still looks wrong and you never replied to why these supplies
shouldn't be handled by the tcsr clock driver that supplies these
clocks:
https://lore.kernel.org/lkml/aBHUmXx6N72_sCH9@hovoldconsulting.com/
> Hence, restore the vdda-qref request for the 6th PCIe instance by reverting
> commit 031b46b4729b ("phy: qcom: qmp-pcie: drop bogus x1e80100 qref
> supplies"). For the 4th PCIe instance (Gen3 x2), add a new driver data
> entry, namely x1e80100_qmp_gen3x2_pciephy_cfg, which is a copy of
> sm8550_qmp_gen3x2_pciephy_cfg but uses sm8550_qmp_phy_vreg_l instead.
>
> Fixes: 031b46b4729b ("phy: qcom: qmp-pcie: drop bogus x1e80100 qref supplies")
> Fixes: 606060ce8fd0 ("phy: qcom-qmp-pcie: Add support for X1E80100 g3x2 and g4x2 PCIE")
> Cc: Johan Hovold <johan+linaro@kernel.org>
> Cc: Abel Vesa <abel.vesa@linaro.org>
> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
> Signed-off-by: Wenbin Yao <quic_wenbyao@quicinc.com>
Johan
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v3 5/5] phy: qcom: qmp-pcie: add x1e80100 qref supplies
2025-05-08 8:20 ` Johan Hovold
@ 2025-05-08 8:50 ` Qiang Yu
2025-05-08 9:45 ` Johan Hovold
0 siblings, 1 reply; 15+ messages in thread
From: Qiang Yu @ 2025-05-08 8:50 UTC (permalink / raw)
To: Johan Hovold, Wenbin Yao
Cc: catalin.marinas, will, linux-arm-kernel, andersson, konradybcio,
robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel,
vkoul, kishon, sfr, linux-phy, krishna.chundru, quic_vbadigan,
quic_mrana, quic_cang, Johan Hovold, Abel Vesa
On 5/8/2025 4:20 PM, Johan Hovold wrote:
> On Thu, May 08, 2025 at 04:15:14PM +0800, Wenbin Yao wrote:
>> From: Qiang Yu <quic_qianyu@quicinc.com>
>>
>> All PCIe PHYs on the X1E80100 SOC require the vdda-qref, which feeds QREF
>> clocks provided by the TCSR device.
> This still looks wrong and you never replied to why these supplies
> shouldn't be handled by the tcsr clock driver that supplies these
> clocks:
>
> https://lore.kernel.org/lkml/aBHUmXx6N72_sCH9@hovoldconsulting.com/
Sorry, I thought Konrad had convinced you.
If the TCSR driver manages these supplies, would it be possible for tscr
driver to recognize when it needs to turn vdda-qref on or off for a
specific PCIe port?
>
>> Hence, restore the vdda-qref request for the 6th PCIe instance by reverting
>> commit 031b46b4729b ("phy: qcom: qmp-pcie: drop bogus x1e80100 qref
>> supplies"). For the 4th PCIe instance (Gen3 x2), add a new driver data
>> entry, namely x1e80100_qmp_gen3x2_pciephy_cfg, which is a copy of
>> sm8550_qmp_gen3x2_pciephy_cfg but uses sm8550_qmp_phy_vreg_l instead.
>>
>> Fixes: 031b46b4729b ("phy: qcom: qmp-pcie: drop bogus x1e80100 qref supplies")
>> Fixes: 606060ce8fd0 ("phy: qcom-qmp-pcie: Add support for X1E80100 g3x2 and g4x2 PCIE")
>> Cc: Johan Hovold <johan+linaro@kernel.org>
>> Cc: Abel Vesa <abel.vesa@linaro.org>
>> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
>> Signed-off-by: Wenbin Yao <quic_wenbyao@quicinc.com>
> Johan
--
With best wishes
Qiang Yu
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v3 5/5] phy: qcom: qmp-pcie: add x1e80100 qref supplies
2025-05-08 8:50 ` Qiang Yu
@ 2025-05-08 9:45 ` Johan Hovold
2025-05-22 20:03 ` Konrad Dybcio
0 siblings, 1 reply; 15+ messages in thread
From: Johan Hovold @ 2025-05-08 9:45 UTC (permalink / raw)
To: Qiang Yu
Cc: Wenbin Yao, catalin.marinas, will, linux-arm-kernel, andersson,
konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree,
linux-kernel, vkoul, kishon, sfr, linux-phy, krishna.chundru,
quic_vbadigan, quic_mrana, quic_cang, Johan Hovold, Abel Vesa
On Thu, May 08, 2025 at 04:50:30PM +0800, Qiang Yu wrote:
>
> On 5/8/2025 4:20 PM, Johan Hovold wrote:
> > On Thu, May 08, 2025 at 04:15:14PM +0800, Wenbin Yao wrote:
> >> From: Qiang Yu <quic_qianyu@quicinc.com>
> >>
> >> All PCIe PHYs on the X1E80100 SOC require the vdda-qref, which feeds QREF
> >> clocks provided by the TCSR device.
> > This still looks wrong and you never replied to why these supplies
> > shouldn't be handled by the tcsr clock driver that supplies these
> > clocks:
> >
> > https://lore.kernel.org/lkml/aBHUmXx6N72_sCH9@hovoldconsulting.com/
> Sorry, I thought Konrad had convinced you.
IIRC, he just said you guys were told to add the QREF supply to the PHY.
That's not an argument.
> If the TCSR driver manages these supplies, would it be possible for tscr
> driver to recognize when it needs to turn vdda-qref on or off for a
> specific PCIe port?
Sure, just add a lookup table to the driver and enable the required
supplies when a ref clock is enabled.
As I mentioned in the other thread, the T14s has the following QREF
supplies:
VDD_A_QREFS_1P2_A
VDD_A_QREFS_1P2_B
VDD_A_QREFS_0P875_A
VDD_A_QREFS_0P875_B
VDD_A_QREFS_0P875_0
VDD_A_QREFS_0P875_2
VDD_A_QREFS_0P875_3
and it's not clear how these maps to the various consumer ref clocks,
including the PCIe ones:
#define TCSR_PCIE_2L_4_CLKREF_EN
#define TCSR_PCIE_2L_5_CLKREF_EN
#define TCSR_PCIE_8L_CLKREF_EN
#define TCSR_PCIE_4L_CLKREF_EN
That mapping can be done by the TCSR clock driver (which would also take
care of the 1.2 V supplies).
Johan
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v3 0/5] arm64: qcom: x1e80100-qcp: Add power supply and sideband signals for PCIe RC
2025-05-08 8:15 [PATCH v3 0/5] arm64: qcom: x1e80100-qcp: Add power supply and sideband signals for PCIe RC Wenbin Yao
` (4 preceding siblings ...)
2025-05-08 8:15 ` [PATCH v3 5/5] phy: qcom: qmp-pcie: add x1e80100 qref supplies Wenbin Yao
@ 2025-05-09 7:17 ` Qiang Yu
5 siblings, 0 replies; 15+ messages in thread
From: Qiang Yu @ 2025-05-09 7:17 UTC (permalink / raw)
To: Wenbin Yao, catalin.marinas, will, linux-arm-kernel, andersson,
konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree,
linux-kernel, vkoul, kishon, sfr, linux-phy
Cc: krishna.chundru, quic_vbadigan, quic_mrana, quic_cang
On 5/8/2025 4:15 PM, Wenbin Yao wrote:
> The first patch enables the PCI Power Control driver to control the power
> state of PCI slots. The second patch adds the bus topology of PCIe domain 3
> on x1e80100 platform. The third patch adds perst, wake and clkreq sideband
> signals, and describe the regulators powering the rails of the PCI slots in
> the devicetree for PCIe3 controller and PHY device. The fourth patch adds
> qref supply in dts nodes of PCIe PHYs. The fifth patch requests qref supply
> for PCIe PHYs.
>
> The patchset has been modified based on comments and suggestions.
>
> Changes in v3:
> - Replace PCI_PWRCTL_SLOT with PCI_PWRCTRL_SLOT in Patch 1/5.
> - Kepp the order of pinctrl-0 before pinctrl-names in Patch 3/5.
> - Add Patch 5/5 to request qref supply for PCIe PHYs.
> - Link to v2: https://lore.kernel.org/all/20250425092955.4099677-1-quic_wenbyao@quicinc.com/
>
> Changes in v2:
> - Select PCI_PWRCTL_SLOT by ARCH_QCOM in arch/arm64/Kconfig.platforms in
> Patch 1/4.
> - Add an empty line before pcie3port node in Patch 2/4.
> - Rename regulator-pcie_12v regulator-pcie_3v3_aux and regulator-pcie_3v3
> in Patch 3/4.
> - Add Patch 4/4 to describe qref supply of PCIe PHYs.
> - Link to v1: https://lore.kernel.org/all/20250320055502.274849-1-quic_wenbyao@quicinc.com/
>
> Qiang Yu (5):
> arm64: Kconfig: enable PCI Power Control Slot driver for QCOM
> arm64: dts: qcom: x1e80100: add bus topology for PCIe domain 3
> arm64: dts: qcom: x1e80100-qcp: enable pcie3 x8 slot for X1E80100-QCP
> arm64: dts: qcom: x1e80100-qcp: Add qref supply for PCIe PHYs
> phy: qcom: qmp-pcie: add x1e80100 qref supplies
>
> arch/arm64/Kconfig.platforms | 1 +
> arch/arm64/boot/dts/qcom/x1e80100-qcp.dts | 121 ++++++++++++++++++++++
> arch/arm64/boot/dts/qcom/x1e80100.dtsi | 11 ++
> drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 37 ++++++-
> 4 files changed, 165 insertions(+), 5 deletions(-)
>
>
> base-commit: 0a00723f4c2d0b273edd0737f236f103164a08eb
Hi
Can you please review patch[1/5], patch[2/5] and patch[3/5] first, QREF
patch need more discussion, but it will not affect the PCIe function.
--
With best wishes
Qiang Yu
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v3 5/5] phy: qcom: qmp-pcie: add x1e80100 qref supplies
2025-05-08 9:45 ` Johan Hovold
@ 2025-05-22 20:03 ` Konrad Dybcio
2025-05-26 13:47 ` Johan Hovold
0 siblings, 1 reply; 15+ messages in thread
From: Konrad Dybcio @ 2025-05-22 20:03 UTC (permalink / raw)
To: Johan Hovold, Qiang Yu
Cc: Wenbin Yao, catalin.marinas, will, linux-arm-kernel, andersson,
konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree,
linux-kernel, vkoul, kishon, sfr, linux-phy, krishna.chundru,
quic_vbadigan, quic_mrana, quic_cang, Johan Hovold, Abel Vesa
On 5/8/25 11:45 AM, Johan Hovold wrote:
> On Thu, May 08, 2025 at 04:50:30PM +0800, Qiang Yu wrote:
>>
>> On 5/8/2025 4:20 PM, Johan Hovold wrote:
>>> On Thu, May 08, 2025 at 04:15:14PM +0800, Wenbin Yao wrote:
>>>> From: Qiang Yu <quic_qianyu@quicinc.com>
>>>>
>>>> All PCIe PHYs on the X1E80100 SOC require the vdda-qref, which feeds QREF
>>>> clocks provided by the TCSR device.
>>> This still looks wrong and you never replied to why these supplies
>>> shouldn't be handled by the tcsr clock driver that supplies these
>>> clocks:
>>>
>>> https://lore.kernel.org/lkml/aBHUmXx6N72_sCH9@hovoldconsulting.com/
>
>> Sorry, I thought Konrad had convinced you.
>
> IIRC, he just said you guys were told to add the QREF supply to the PHY.
> That's not an argument.
>
>> If the TCSR driver manages these supplies, would it be possible for tscr
>> driver to recognize when it needs to turn vdda-qref on or off for a
>> specific PCIe port?
>
> Sure, just add a lookup table to the driver and enable the required
> supplies when a ref clock is enabled.
>
> As I mentioned in the other thread, the T14s has the following QREF
> supplies:
>
>
> VDD_A_QREFS_1P2_A
> VDD_A_QREFS_1P2_B
>
> VDD_A_QREFS_0P875_A
> VDD_A_QREFS_0P875_B
> VDD_A_QREFS_0P875_0
> VDD_A_QREFS_0P875_2
> VDD_A_QREFS_0P875_3
>
> and it's not clear how these maps to the various consumer ref clocks,
> including the PCIe ones:
>
> #define TCSR_PCIE_2L_4_CLKREF_EN
> #define TCSR_PCIE_2L_5_CLKREF_EN
> #define TCSR_PCIE_8L_CLKREF_EN
> #define TCSR_PCIE_4L_CLKREF_EN
>
> That mapping can be done by the TCSR clock driver (which would also take
> care of the 1.2 V supplies).
So we had an internal discussion about this and while it may work, it
would only do so for some SoCs, and maybe only on the surface, as the
wiring behind it is rather peculiar..
Plus, not all QREF consumers have a clock expressed in TCSR as of
right now.
Konrad
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v3 5/5] phy: qcom: qmp-pcie: add x1e80100 qref supplies
2025-05-22 20:03 ` Konrad Dybcio
@ 2025-05-26 13:47 ` Johan Hovold
2025-05-27 10:50 ` Konrad Dybcio
0 siblings, 1 reply; 15+ messages in thread
From: Johan Hovold @ 2025-05-26 13:47 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Qiang Yu, Wenbin Yao, catalin.marinas, will, linux-arm-kernel,
andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
devicetree, linux-kernel, vkoul, kishon, sfr, linux-phy,
krishna.chundru, quic_vbadigan, quic_mrana, quic_cang,
Johan Hovold, Abel Vesa
On Thu, May 22, 2025 at 10:03:18PM +0200, Konrad Dybcio wrote:
> On 5/8/25 11:45 AM, Johan Hovold wrote:
> > On Thu, May 08, 2025 at 04:50:30PM +0800, Qiang Yu wrote:
> >> On 5/8/2025 4:20 PM, Johan Hovold wrote:
> >>> This still looks wrong and you never replied to why these supplies
> >>> shouldn't be handled by the tcsr clock driver that supplies these
> >>> clocks:
> >>>
> >>> https://lore.kernel.org/lkml/aBHUmXx6N72_sCH9@hovoldconsulting.com/
> >
> >> Sorry, I thought Konrad had convinced you.
> >
> > IIRC, he just said you guys were told to add the QREF supply to the PHY.
> > That's not an argument.
> >
> >> If the TCSR driver manages these supplies, would it be possible for tscr
> >> driver to recognize when it needs to turn vdda-qref on or off for a
> >> specific PCIe port?
> >
> > Sure, just add a lookup table to the driver and enable the required
> > supplies when a ref clock is enabled.
> >
> > As I mentioned in the other thread, the T14s has the following QREF
> > supplies:
> >
> >
> > VDD_A_QREFS_1P2_A
> > VDD_A_QREFS_1P2_B
> >
> > VDD_A_QREFS_0P875_A
> > VDD_A_QREFS_0P875_B
> > VDD_A_QREFS_0P875_0
> > VDD_A_QREFS_0P875_2
> > VDD_A_QREFS_0P875_3
> >
> > and it's not clear how these maps to the various consumer ref clocks,
> > including the PCIe ones:
> >
> > #define TCSR_PCIE_2L_4_CLKREF_EN
> > #define TCSR_PCIE_2L_5_CLKREF_EN
> > #define TCSR_PCIE_8L_CLKREF_EN
> > #define TCSR_PCIE_4L_CLKREF_EN
> >
> > That mapping can be done by the TCSR clock driver (which would also take
> > care of the 1.2 V supplies).
>
> So we had an internal discussion about this and while it may work, it
> would only do so for some SoCs, and maybe only on the surface, as the
> wiring behind it is rather peculiar..
Care to expand on why it cannot be made to work generally?
Also, what would the mapping of the above QREF supplies to PCIe PHYs
even look like?
> Plus, not all QREF consumers have a clock expressed in TCSR as of
> right now.
Is that because there is no corresponding bit in the TCSR or simply
because it has not been described yet?
Johan
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v3 5/5] phy: qcom: qmp-pcie: add x1e80100 qref supplies
2025-05-26 13:47 ` Johan Hovold
@ 2025-05-27 10:50 ` Konrad Dybcio
2025-06-04 14:59 ` Johan Hovold
0 siblings, 1 reply; 15+ messages in thread
From: Konrad Dybcio @ 2025-05-27 10:50 UTC (permalink / raw)
To: Johan Hovold, Konrad Dybcio
Cc: Qiang Yu, Wenbin Yao, catalin.marinas, will, linux-arm-kernel,
andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
devicetree, linux-kernel, vkoul, kishon, sfr, linux-phy,
krishna.chundru, quic_vbadigan, quic_mrana, quic_cang,
Johan Hovold, Abel Vesa
On 5/26/25 3:47 PM, Johan Hovold wrote:
> On Thu, May 22, 2025 at 10:03:18PM +0200, Konrad Dybcio wrote:
>> On 5/8/25 11:45 AM, Johan Hovold wrote:
>>> On Thu, May 08, 2025 at 04:50:30PM +0800, Qiang Yu wrote:
>>>> On 5/8/2025 4:20 PM, Johan Hovold wrote:
>
>>>>> This still looks wrong and you never replied to why these supplies
>>>>> shouldn't be handled by the tcsr clock driver that supplies these
>>>>> clocks:
>>>>>
>>>>> https://lore.kernel.org/lkml/aBHUmXx6N72_sCH9@hovoldconsulting.com/
>>>
>>>> Sorry, I thought Konrad had convinced you.
>>>
>>> IIRC, he just said you guys were told to add the QREF supply to the PHY.
>>> That's not an argument.
>>>
>>>> If the TCSR driver manages these supplies, would it be possible for tscr
>>>> driver to recognize when it needs to turn vdda-qref on or off for a
>>>> specific PCIe port?
>>>
>>> Sure, just add a lookup table to the driver and enable the required
>>> supplies when a ref clock is enabled.
>>>
>>> As I mentioned in the other thread, the T14s has the following QREF
>>> supplies:
>>>
>>>
>>> VDD_A_QREFS_1P2_A
>>> VDD_A_QREFS_1P2_B
>>>
>>> VDD_A_QREFS_0P875_A
>>> VDD_A_QREFS_0P875_B
>>> VDD_A_QREFS_0P875_0
>>> VDD_A_QREFS_0P875_2
>>> VDD_A_QREFS_0P875_3
>>>
>>> and it's not clear how these maps to the various consumer ref clocks,
>>> including the PCIe ones:
>>>
>>> #define TCSR_PCIE_2L_4_CLKREF_EN
>>> #define TCSR_PCIE_2L_5_CLKREF_EN
>>> #define TCSR_PCIE_8L_CLKREF_EN
>>> #define TCSR_PCIE_4L_CLKREF_EN
>>>
>>> That mapping can be done by the TCSR clock driver (which would also take
>>> care of the 1.2 V supplies).
>>
>> So we had an internal discussion about this and while it may work, it
>> would only do so for some SoCs, and maybe only on the surface, as the
>> wiring behind it is rather peculiar..
>
> Care to expand on why it cannot be made to work generally?
"-ENODATA".. many connections are difficult to unambiguously decipher
>
> Also, what would the mapping of the above QREF supplies to PCIe PHYs
> even look like?
I'm not sure I have a clear answer..
>
>> Plus, not all QREF consumers have a clock expressed in TCSR as of
>> right now.
>
> Is that because there is no corresponding bit in the TCSR or simply
> because it has not been described yet?
Unfortunately, the former.. Some IPs have a non-TCSR ref clock and
some are presumably implicitly fed by BI_TCXO
Konrad
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v3 2/5] arm64: dts: qcom: x1e80100: add bus topology for PCIe domain 3
2025-05-08 8:15 ` [PATCH v3 2/5] arm64: dts: qcom: x1e80100: add bus topology for PCIe domain 3 Wenbin Yao
@ 2025-05-31 19:26 ` Konrad Dybcio
0 siblings, 0 replies; 15+ messages in thread
From: Konrad Dybcio @ 2025-05-31 19:26 UTC (permalink / raw)
To: Wenbin Yao, catalin.marinas, will, linux-arm-kernel, andersson,
konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree,
linux-kernel, vkoul, kishon, sfr, linux-phy
Cc: krishna.chundru, quic_vbadigan, quic_mrana, quic_cang,
quic_qianyu
On 5/8/25 10:15 AM, Wenbin Yao wrote:
> From: Qiang Yu <quic_qianyu@quicinc.com>
>
> Add pcie3port node to represent the PCIe bridge of PCIe3 so that PCI slot
> voltage rails can be described under this node in the board's dts.
>
> Signed-off-by: Qiang Yu <quic_qianyu@quicinc.com>
> Signed-off-by: Wenbin Yao <quic_wenbyao@quicinc.com>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/x1e80100.dtsi | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> index 46b79fce9..430f9d567 100644
> --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi
> @@ -3287,6 +3287,17 @@ opp-128000000 {
> opp-peak-kBps = <15753000 1>;
> };
> };
> +
> + pcie3port: pcie@0 {
> + device_type = "pci";
> + compatible = "pciclass,0604";
> + reg = <0x0 0x0 0x0 0x0 0x0>;
> + bus-range = <0x01 0xff>;
> +
> + #address-cells = <3>;
> + #size-cells = <2>;
> + ranges;
If you end up setting a v(n+1), please rename the label to 'pcie3_port'
Konrad
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v3 5/5] phy: qcom: qmp-pcie: add x1e80100 qref supplies
2025-05-27 10:50 ` Konrad Dybcio
@ 2025-06-04 14:59 ` Johan Hovold
0 siblings, 0 replies; 15+ messages in thread
From: Johan Hovold @ 2025-06-04 14:59 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Qiang Yu, Wenbin Yao, catalin.marinas, will, linux-arm-kernel,
andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
devicetree, linux-kernel, vkoul, kishon, sfr, linux-phy,
krishna.chundru, quic_vbadigan, quic_mrana, quic_cang,
Johan Hovold, Abel Vesa
On Tue, May 27, 2025 at 12:50:21PM +0200, Konrad Dybcio wrote:
> On 5/26/25 3:47 PM, Johan Hovold wrote:
> > On Thu, May 22, 2025 at 10:03:18PM +0200, Konrad Dybcio wrote:
> >> On 5/8/25 11:45 AM, Johan Hovold wrote:
> >>> On Thu, May 08, 2025 at 04:50:30PM +0800, Qiang Yu wrote:
> >>>> On 5/8/2025 4:20 PM, Johan Hovold wrote:
> >
> >>>>> This still looks wrong and you never replied to why these supplies
> >>>>> shouldn't be handled by the tcsr clock driver that supplies these
> >>>>> clocks:
> >>>>>
> >>>>> https://lore.kernel.org/lkml/aBHUmXx6N72_sCH9@hovoldconsulting.com/
> >>>
> >>>> Sorry, I thought Konrad had convinced you.
> >>>
> >>> IIRC, he just said you guys were told to add the QREF supply to the PHY.
> >>> That's not an argument.
> >>>
> >>>> If the TCSR driver manages these supplies, would it be possible for tscr
> >>>> driver to recognize when it needs to turn vdda-qref on or off for a
> >>>> specific PCIe port?
> >>>
> >>> Sure, just add a lookup table to the driver and enable the required
> >>> supplies when a ref clock is enabled.
> >>>
> >>> As I mentioned in the other thread, the T14s has the following QREF
> >>> supplies:
> >>>
> >>>
> >>> VDD_A_QREFS_1P2_A
> >>> VDD_A_QREFS_1P2_B
> >>>
> >>> VDD_A_QREFS_0P875_A
> >>> VDD_A_QREFS_0P875_B
> >>> VDD_A_QREFS_0P875_0
> >>> VDD_A_QREFS_0P875_2
> >>> VDD_A_QREFS_0P875_3
> >>>
> >>> and it's not clear how these maps to the various consumer ref clocks,
> >>> including the PCIe ones:
> >>>
> >>> #define TCSR_PCIE_2L_4_CLKREF_EN
> >>> #define TCSR_PCIE_2L_5_CLKREF_EN
> >>> #define TCSR_PCIE_8L_CLKREF_EN
> >>> #define TCSR_PCIE_4L_CLKREF_EN
> >>>
> >>> That mapping can be done by the TCSR clock driver (which would also take
> >>> care of the 1.2 V supplies).
> >>
> >> So we had an internal discussion about this and while it may work, it
> >> would only do so for some SoCs, and maybe only on the surface, as the
> >> wiring behind it is rather peculiar..
> >
> > Care to expand on why it cannot be made to work generally?
>
> "-ENODATA".. many connections are difficult to unambiguously decipher
>
> >
> > Also, what would the mapping of the above QREF supplies to PCIe PHYs
> > even look like?
>
> I'm not sure I have a clear answer..
How would anyone know how to use a binding like this if you guys with
access to internal docs can't even answer how the QREF supplies maps to
the PHYs for a given SoC?
> >> Plus, not all QREF consumers have a clock expressed in TCSR as of
> >> right now.
> >
> > Is that because there is no corresponding bit in the TCSR or simply
> > because it has not been described yet?
>
> Unfortunately, the former.. Some IPs have a non-TCSR ref clock and
> some are presumably implicitly fed by BI_TCXO
I think you need to provide a lot more detail here so we can determine
how best best to proceed. We shouldn't accept made up PHY supplies
without a proper motivation just because that's how it's done
downstream.
Johan
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2025-06-04 14:59 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-08 8:15 [PATCH v3 0/5] arm64: qcom: x1e80100-qcp: Add power supply and sideband signals for PCIe RC Wenbin Yao
2025-05-08 8:15 ` [PATCH v3 1/5] arm64: Kconfig: enable PCI Power Control Slot driver for QCOM Wenbin Yao
2025-05-08 8:15 ` [PATCH v3 2/5] arm64: dts: qcom: x1e80100: add bus topology for PCIe domain 3 Wenbin Yao
2025-05-31 19:26 ` Konrad Dybcio
2025-05-08 8:15 ` [PATCH v3 3/5] arm64: dts: qcom: x1e80100-qcp: enable pcie3 x8 slot for X1E80100-QCP Wenbin Yao
2025-05-08 8:15 ` [PATCH v3 4/5] arm64: dts: qcom: x1e80100-qcp: Add qref supply for PCIe PHYs Wenbin Yao
2025-05-08 8:15 ` [PATCH v3 5/5] phy: qcom: qmp-pcie: add x1e80100 qref supplies Wenbin Yao
2025-05-08 8:20 ` Johan Hovold
2025-05-08 8:50 ` Qiang Yu
2025-05-08 9:45 ` Johan Hovold
2025-05-22 20:03 ` Konrad Dybcio
2025-05-26 13:47 ` Johan Hovold
2025-05-27 10:50 ` Konrad Dybcio
2025-06-04 14:59 ` Johan Hovold
2025-05-09 7:17 ` [PATCH v3 0/5] arm64: qcom: x1e80100-qcp: Add power supply and sideband signals for PCIe RC Qiang Yu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).