* [PATCH 0/5] Switch PCIe node to new style of bindings for Qualcomm IPQ SoCs
@ 2026-07-14 4:41 Kathiravan Thirumoorthy
2026-07-14 4:41 ` [PATCH 1/5] arm64: dts: qcom: ipq8074: move PCIe phys and PERST# to port node Kathiravan Thirumoorthy
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Kathiravan Thirumoorthy @ 2026-07-14 4:41 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Kathiravan Thirumoorthy,
Manivannan Sadhasivam, Konrad Dybcio
To align with the new style of bindings, move the phys and PERST# to the
root port node. IPQ9574 is the only SoC which did not have a root port
node yet; the other three SoCs (IPQ8074, IPQ6018, IPQ5018) already had
the port sub-node but still kept phys and PERST# on the host bridge.
In addition to this, enable the PCIe support on IPQ9574's RDP454 to
enable the Wi-Fi support.
Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
---
Kathiravan Thirumoorthy (5):
arm64: dts: qcom: ipq8074: move PCIe phys and PERST# to port node
arm64: dts: qcom: ipq6018: move PCIe phys to port node
arm64: dts: qcom: ipq5018: move PCIe phys and PERST# to port node
arm64: dts: qcom: ipq9574: Add PCIe bridge node
arm64: dts: qcom: ipq9574: enable the PCIe support on RDP454
arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts | 8 ++-
arch/arm64/boot/dts/qcom/ipq5018.dtsi | 12 ++--
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 5 +-
arch/arm64/boot/dts/qcom/ipq8074-hk01.dts | 10 ++-
arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi | 10 ++-
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 14 ++--
.../arm64/boot/dts/qcom/ipq9574-rdp433-common.dtsi | 33 +++++----
arch/arm64/boot/dts/qcom/ipq9574-rdp454.dts | 80 ++++++++++++++++++++++
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 56 ++++++++++++---
9 files changed, 183 insertions(+), 45 deletions(-)
---
base-commit: 49362394dad7df66c274c867a271394c10ca2bb8
change-id: 20260622-pcie_move_to_new_binding-750af0620f37
Best regards,
--
Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/5] arm64: dts: qcom: ipq8074: move PCIe phys and PERST# to port node
2026-07-14 4:41 [PATCH 0/5] Switch PCIe node to new style of bindings for Qualcomm IPQ SoCs Kathiravan Thirumoorthy
@ 2026-07-14 4:41 ` Kathiravan Thirumoorthy
2026-07-14 4:41 ` [PATCH 2/5] arm64: dts: qcom: ipq6018: move PCIe phys " Kathiravan Thirumoorthy
` (3 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Kathiravan Thirumoorthy @ 2026-07-14 4:41 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Kathiravan Thirumoorthy,
Manivannan Sadhasivam, Konrad Dybcio
To align with the newer style of binding, move the phys, PERST# to the
port node.
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/ipq8074-hk01.dts | 10 ++++++++--
arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi | 10 ++++++++--
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 14 ++++++--------
3 files changed, 22 insertions(+), 12 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq8074-hk01.dts b/arch/arm64/boot/dts/qcom/ipq8074-hk01.dts
index 5cf07caf4103..dea5ece600d4 100644
--- a/arch/arm64/boot/dts/qcom/ipq8074-hk01.dts
+++ b/arch/arm64/boot/dts/qcom/ipq8074-hk01.dts
@@ -54,12 +54,18 @@ &blsp1_uart5 {
&pcie0 {
status = "okay";
- perst-gpios = <&tlmm 61 GPIO_ACTIVE_LOW>;
+};
+
+&pcie0_port0 {
+ reset-gpios = <&tlmm 61 GPIO_ACTIVE_LOW>;
};
&pcie1 {
status = "okay";
- perst-gpios = <&tlmm 58 GPIO_ACTIVE_LOW>;
+};
+
+&pcie1_port0 {
+ reset-gpios = <&tlmm 58 GPIO_ACTIVE_LOW>;
};
&pcie_qmp0 {
diff --git a/arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi b/arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi
index 34e2f80514a3..f5c125e20ada 100644
--- a/arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi
@@ -40,12 +40,18 @@ &blsp1_uart5 {
&pcie0 {
status = "okay";
- perst-gpios = <&tlmm 58 GPIO_ACTIVE_LOW>;
+};
+
+&pcie0_port0 {
+ reset-gpios = <&tlmm 58 GPIO_ACTIVE_LOW>;
};
&pcie1 {
status = "okay";
- perst-gpios = <&tlmm 61 GPIO_ACTIVE_LOW>;
+};
+
+&pcie1_port0 {
+ reset-gpios = <&tlmm 61 GPIO_ACTIVE_LOW>;
};
&pcie_qmp0 {
diff --git a/arch/arm64/boot/dts/qcom/ipq8074.dtsi b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
index 256e12cf6d54..75a5ae30d966 100644
--- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
@@ -841,9 +841,6 @@ pcie1: pcie@10000000 {
#address-cells = <3>;
#size-cells = <2>;
- phys = <&pcie_qmp1>;
- phy-names = "pciephy";
-
ranges = <0x81000000 0x0 0x00000000 0x10200000 0x0 0x10000>, /* I/O */
<0x82000000 0x0 0x10220000 0x10220000 0x0 0xfde0000>; /* MEM */
@@ -902,11 +899,13 @@ IRQ_TYPE_LEVEL_HIGH>, /* int_c */
"axi_m_sticky";
status = "disabled";
- pcie@0 {
+ pcie1_port0: pcie@0 {
device_type = "pci";
reg = <0x0 0x0 0x0 0x0 0x0>;
bus-range = <0x01 0xff>;
+ phys = <&pcie_qmp1>;
+
#address-cells = <3>;
#size-cells = <2>;
ranges;
@@ -929,9 +928,6 @@ pcie0: pcie@20000000 {
#address-cells = <3>;
#size-cells = <2>;
- phys = <&pcie_qmp0>;
- phy-names = "pciephy";
-
ranges = <0x81000000 0x0 0x00000000 0x20200000 0x0 0x10000>, /* I/O */
<0x82000000 0x0 0x20220000 0x20220000 0x0 0xfde0000>; /* MEM */
@@ -993,11 +989,13 @@ IRQ_TYPE_LEVEL_HIGH>, /* int_c */
"axi_s_sticky";
status = "disabled";
- pcie@0 {
+ pcie0_port0: pcie@0 {
device_type = "pci";
reg = <0x0 0x0 0x0 0x0 0x0>;
bus-range = <0x01 0xff>;
+ phys = <&pcie_qmp0>;
+
#address-cells = <3>;
#size-cells = <2>;
ranges;
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/5] arm64: dts: qcom: ipq6018: move PCIe phys to port node
2026-07-14 4:41 [PATCH 0/5] Switch PCIe node to new style of bindings for Qualcomm IPQ SoCs Kathiravan Thirumoorthy
2026-07-14 4:41 ` [PATCH 1/5] arm64: dts: qcom: ipq8074: move PCIe phys and PERST# to port node Kathiravan Thirumoorthy
@ 2026-07-14 4:41 ` Kathiravan Thirumoorthy
2026-07-14 4:41 ` [PATCH 3/5] arm64: dts: qcom: ipq5018: move PCIe phys and PERST# " Kathiravan Thirumoorthy
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Kathiravan Thirumoorthy @ 2026-07-14 4:41 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Kathiravan Thirumoorthy,
Manivannan Sadhasivam, Konrad Dybcio
To align with the newer style of binding, move the phys property to the
port node.
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/ipq6018.dtsi | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq6018.dtsi b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
index 7866844cc09f..0701517275d4 100644
--- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
@@ -889,9 +889,6 @@ pcie0: pcie@20000000 {
#address-cells = <3>;
#size-cells = <2>;
- phys = <&pcie_phy>;
- phy-names = "pciephy";
-
ranges = <0x81000000 0x0 0x00000000 0x0 0x20200000 0x0 0x10000>,
<0x82000000 0x0 0x20220000 0x0 0x20220000 0x0 0xfde0000>;
@@ -956,6 +953,8 @@ pcie@0 {
reg = <0x0 0x0 0x0 0x0 0x0>;
bus-range = <0x01 0xff>;
+ phys = <&pcie_phy>;
+
#address-cells = <3>;
#size-cells = <2>;
ranges;
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/5] arm64: dts: qcom: ipq5018: move PCIe phys and PERST# to port node
2026-07-14 4:41 [PATCH 0/5] Switch PCIe node to new style of bindings for Qualcomm IPQ SoCs Kathiravan Thirumoorthy
2026-07-14 4:41 ` [PATCH 1/5] arm64: dts: qcom: ipq8074: move PCIe phys and PERST# to port node Kathiravan Thirumoorthy
2026-07-14 4:41 ` [PATCH 2/5] arm64: dts: qcom: ipq6018: move PCIe phys " Kathiravan Thirumoorthy
@ 2026-07-14 4:41 ` Kathiravan Thirumoorthy
2026-07-14 4:41 ` [PATCH 4/5] arm64: dts: qcom: ipq9574: Add PCIe bridge node Kathiravan Thirumoorthy
2026-07-14 4:41 ` [PATCH 5/5] arm64: dts: qcom: ipq9574: enable the PCIe support on RDP454 Kathiravan Thirumoorthy
4 siblings, 0 replies; 7+ messages in thread
From: Kathiravan Thirumoorthy @ 2026-07-14 4:41 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Kathiravan Thirumoorthy,
Manivannan Sadhasivam, Konrad Dybcio
To align with the newer style of binding, move the phys, PERST# to the
port node.
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts | 8 +++++---
arch/arm64/boot/dts/qcom/ipq5018.dtsi | 12 +++++-------
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts b/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts
index df3cbb7c79c4..33eef92b19b1 100644
--- a/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts
+++ b/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts
@@ -34,9 +34,6 @@ &pcie0 {
pinctrl-0 = <&pcie0_default>;
pinctrl-names = "default";
- perst-gpios = <&tlmm 15 GPIO_ACTIVE_LOW>;
- wake-gpios = <&tlmm 16 GPIO_ACTIVE_LOW>;
-
status = "okay";
};
@@ -44,6 +41,11 @@ &pcie0_phy {
status = "okay";
};
+&pcie0_port0 {
+ reset-gpios = <&tlmm 15 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 16 GPIO_ACTIVE_LOW>;
+};
+
&sdhc_1 {
pinctrl-0 = <&sdc_default_state>;
pinctrl-names = "default";
diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
index b5bfd5dcabad..4fc627b47fe7 100644
--- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
@@ -758,9 +758,6 @@ pcie1: pcie@80000000 {
/* The controller supports Gen3, but the connected PHY is Gen2-capable */
max-link-speed = <2>;
- phys = <&pcie1_phy>;
- phy-names = "pciephy";
-
ranges = <0x01000000 0 0x00000000 0x80200000 0 0x00100000>,
<0x02000000 0 0x80300000 0x80300000 0 0x10000000>;
@@ -829,6 +826,8 @@ pcie@0 {
reg = <0x0 0x0 0x0 0x0 0x0>;
bus-range = <0x01 0xff>;
+ phys = <&pcie1_phy>;
+
#address-cells = <3>;
#size-cells = <2>;
ranges;
@@ -859,9 +858,6 @@ pcie0: pcie@a0000000 {
/* The controller supports Gen3, but the connected PHY is Gen2-capable */
max-link-speed = <2>;
- phys = <&pcie0_phy>;
- phy-names = "pciephy";
-
ranges = <0x01000000 0 0x00000000 0xa0200000 0 0x00100000>,
<0x02000000 0 0xa0300000 0xa0300000 0 0x10000000>;
@@ -925,11 +921,13 @@ pcie0: pcie@a0000000 {
status = "disabled";
- pcie@0 {
+ pcie0_port0: pcie@0 {
device_type = "pci";
reg = <0x0 0x0 0x0 0x0 0x0>;
bus-range = <0x01 0xff>;
+ phys = <&pcie0_phy>;
+
#address-cells = <3>;
#size-cells = <2>;
ranges;
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 4/5] arm64: dts: qcom: ipq9574: Add PCIe bridge node
2026-07-14 4:41 [PATCH 0/5] Switch PCIe node to new style of bindings for Qualcomm IPQ SoCs Kathiravan Thirumoorthy
` (2 preceding siblings ...)
2026-07-14 4:41 ` [PATCH 3/5] arm64: dts: qcom: ipq5018: move PCIe phys and PERST# " Kathiravan Thirumoorthy
@ 2026-07-14 4:41 ` Kathiravan Thirumoorthy
2026-07-14 4:41 ` [PATCH 5/5] arm64: dts: qcom: ipq9574: enable the PCIe support on RDP454 Kathiravan Thirumoorthy
4 siblings, 0 replies; 7+ messages in thread
From: Kathiravan Thirumoorthy @ 2026-07-14 4:41 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Kathiravan Thirumoorthy,
Manivannan Sadhasivam, Konrad Dybcio
The PCIe host bridge is connected to a single PCIe bridge for each
controller instance. Hence, add a node to represent the bridge.
While at it, to align with the newer style of binding, move the phys and
perst to port node.
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
---
.../arm64/boot/dts/qcom/ipq9574-rdp433-common.dtsi | 33 ++++++++-----
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 56 ++++++++++++++++++----
2 files changed, 69 insertions(+), 20 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp433-common.dtsi b/arch/arm64/boot/dts/qcom/ipq9574-rdp433-common.dtsi
index 3422058ac480..ad3a82c50e22 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp433-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433-common.dtsi
@@ -6,45 +6,54 @@
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
*/
-&pcie1_phy {
- status = "okay";
-};
-
&pcie1 {
pinctrl-0 = <&pcie1_default>;
pinctrl-names = "default";
- perst-gpios = <&tlmm 26 GPIO_ACTIVE_LOW>;
- wake-gpios = <&tlmm 27 GPIO_ACTIVE_LOW>;
status = "okay";
};
-&pcie2_phy {
+&pcie1_phy {
status = "okay";
};
+&pcie1_port0 {
+ reset-gpios = <&tlmm 26 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 27 GPIO_ACTIVE_LOW>;
+};
+
&pcie2 {
pinctrl-0 = <&pcie2_default>;
pinctrl-names = "default";
- perst-gpios = <&tlmm 29 GPIO_ACTIVE_LOW>;
- wake-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>;
status = "okay";
};
-&pcie3_phy {
+&pcie2_phy {
status = "okay";
};
+&pcie2_port0 {
+ reset-gpios = <&tlmm 29 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>;
+};
+
&pcie3 {
pinctrl-0 = <&pcie3_default>;
pinctrl-names = "default";
- perst-gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
- wake-gpios = <&tlmm 33 GPIO_ACTIVE_LOW>;
status = "okay";
};
+&pcie3_phy {
+ status = "okay";
+};
+
+&pcie3_port0 {
+ reset-gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 33 GPIO_ACTIVE_LOW>;
+};
+
&tlmm {
pcie1_default: pcie1-default-state {
diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
index 451c2076f6a7..5a5bda5f21a1 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
@@ -1004,12 +1004,22 @@ pcie1: pcie@10000000 {
"aux",
"ahb";
- phys = <&pcie1_phy>;
- phy-names = "pciephy";
interconnects = <&gcc MASTER_ANOC_PCIE1 &gcc SLAVE_ANOC_PCIE1>,
<&gcc MASTER_SNOC_PCIE1 &gcc SLAVE_SNOC_PCIE1>;
interconnect-names = "pcie-mem", "cpu-pcie";
status = "disabled";
+
+ pcie1_port0: pcie@0 {
+ device_type = "pci";
+ reg = <0x0 0x0 0x0 0x0 0x0>;
+ bus-range = <0x01 0xff>;
+
+ phys = <&pcie1_phy>;
+
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+ };
};
pcie3: pcie@18000000 {
@@ -1092,12 +1102,22 @@ pcie3: pcie@18000000 {
"aux",
"ahb";
- phys = <&pcie3_phy>;
- phy-names = "pciephy";
interconnects = <&gcc MASTER_ANOC_PCIE3 &gcc SLAVE_ANOC_PCIE3>,
<&gcc MASTER_SNOC_PCIE3 &gcc SLAVE_SNOC_PCIE3>;
interconnect-names = "pcie-mem", "cpu-pcie";
status = "disabled";
+
+ pcie3_port0: pcie@0 {
+ device_type = "pci";
+ reg = <0x0 0x0 0x0 0x0 0x0>;
+ bus-range = <0x01 0xff>;
+
+ phys = <&pcie3_phy>;
+
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+ };
};
pcie2: pcie@20000000 {
@@ -1180,12 +1200,22 @@ pcie2: pcie@20000000 {
"aux",
"ahb";
- phys = <&pcie2_phy>;
- phy-names = "pciephy";
interconnects = <&gcc MASTER_ANOC_PCIE2 &gcc SLAVE_ANOC_PCIE2>,
<&gcc MASTER_SNOC_PCIE2 &gcc SLAVE_SNOC_PCIE2>;
interconnect-names = "pcie-mem", "cpu-pcie";
status = "disabled";
+
+ pcie2_port0: pcie@0 {
+ device_type = "pci";
+ reg = <0x0 0x0 0x0 0x0 0x0>;
+ bus-range = <0x01 0xff>;
+
+ phys = <&pcie2_phy>;
+
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+ };
};
pcie0: pcie@28000000 {
@@ -1267,12 +1297,22 @@ pcie0: pcie@28000000 {
"aux",
"ahb";
- phys = <&pcie0_phy>;
- phy-names = "pciephy";
interconnects = <&gcc MASTER_ANOC_PCIE0 &gcc SLAVE_ANOC_PCIE0>,
<&gcc MASTER_SNOC_PCIE0 &gcc SLAVE_SNOC_PCIE0>;
interconnect-names = "pcie-mem", "cpu-pcie";
status = "disabled";
+
+ pcie0_port0: pcie@0 {
+ device_type = "pci";
+ reg = <0x0 0x0 0x0 0x0 0x0>;
+ bus-range = <0x01 0xff>;
+
+ phys = <&pcie0_phy>;
+
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+ };
};
nsscc: clock-controller@39b00000 {
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 5/5] arm64: dts: qcom: ipq9574: enable the PCIe support on RDP454
2026-07-14 4:41 [PATCH 0/5] Switch PCIe node to new style of bindings for Qualcomm IPQ SoCs Kathiravan Thirumoorthy
` (3 preceding siblings ...)
2026-07-14 4:41 ` [PATCH 4/5] arm64: dts: qcom: ipq9574: Add PCIe bridge node Kathiravan Thirumoorthy
@ 2026-07-14 4:41 ` Kathiravan Thirumoorthy
2026-07-14 5:01 ` sashiko-bot
4 siblings, 1 reply; 7+ messages in thread
From: Kathiravan Thirumoorthy @ 2026-07-14 4:41 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Kathiravan Thirumoorthy,
Manivannan Sadhasivam
Enable the PCIe0 (x1) and PCIe2 (x2) instances to connect QCN92xx Wi‑Fi
cards.
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/ipq9574-rdp454.dts | 80 +++++++++++++++++++++++++++++
1 file changed, 80 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp454.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp454.dts
index f2334b9e0ed4..146422aede7d 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp454.dts
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp454.dts
@@ -18,3 +18,83 @@ / {
&qpic_nand {
status = "okay";
};
+
+&pcie0 {
+ pinctrl-0 = <&pcie0_default>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie0_phy {
+ status = "okay";
+};
+
+&pcie0_port0 {
+ reset-gpios = <&tlmm 23 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 24 GPIO_ACTIVE_LOW>;
+};
+
+&pcie2 {
+ pinctrl-0 = <&pcie2_default>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie2_phy {
+ status = "okay";
+};
+
+&pcie2_port0 {
+ reset-gpios = <&tlmm 29 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>;
+};
+
+&tlmm {
+ pcie0_default: pcie0-default-state {
+ clkreq-n-pins {
+ pins = "gpio22";
+ function = "pcie0_clk";
+ drive-strength = <6>;
+ bias-pull-up;
+ };
+
+ perst-n-pins {
+ pins = "gpio23";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-up;
+ };
+
+ wake-n-pins {
+ pins = "gpio24";
+ function = "pcie0_wake";
+ drive-strength = <6>;
+ bias-pull-up;
+ };
+ };
+
+ pcie2_default: pcie2-default-state {
+ clkreq-n-pins {
+ pins = "gpio28";
+ function = "pcie2_clk";
+ drive-strength = <6>;
+ bias-pull-up;
+ };
+
+ perst-n-pins {
+ pins = "gpio29";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-down;
+ };
+
+ wake-n-pins {
+ pins = "gpio30";
+ function = "pcie2_wake";
+ drive-strength = <6>;
+ bias-pull-up;
+ };
+ };
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 5/5] arm64: dts: qcom: ipq9574: enable the PCIe support on RDP454
2026-07-14 4:41 ` [PATCH 5/5] arm64: dts: qcom: ipq9574: enable the PCIe support on RDP454 Kathiravan Thirumoorthy
@ 2026-07-14 5:01 ` sashiko-bot
0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-07-14 5:01 UTC (permalink / raw)
To: Kathiravan Thirumoorthy; +Cc: robh, devicetree, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Mismatched and unsafe default bias for the active-low PERST# (reset) pin on PCIe0, causing premature reset de-assertion.
--
--- Patch [5]: [PATCH 5/5] arm64: dts: qcom: ipq9574: enable the PCIe support on RDP454 ---
commit 52495aceaf771805ada229c324028601d793b505
Author: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
arm64: dts: qcom: ipq9574: enable the PCIe support on RDP454
This commit enables the PCIe0 and PCIe2 instances on the IPQ9574 RDP454
board to connect QCN92xx Wi-Fi cards.
> diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp454.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp454.dts
> index f2334b9e0ed49..146422aede7db 100644
> --- a/arch/arm64/boot/dts/qcom/ipq9574-rdp454.dts
> +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp454.dts
[ ... ]
> + pcie0_default: pcie0-default-state {
> + clkreq-n-pins {
> + pins = "gpio22";
> + function = "pcie0_clk";
> + drive-strength = <6>;
> + bias-pull-up;
> + };
> +
> + perst-n-pins {
> + pins = "gpio23";
> + function = "gpio";
> + drive-strength = <8>;
> + bias-pull-up;
^^^^^^^^^^^^
[Severity: Medium]
Will this prematurely de-assert the reset for the QCN92xx Wi-Fi endpoint?
Because reset-gpios is active-low, configuring the default state with
bias-pull-up pulls the PERST# pin high before the PCIe host driver probes.
This can violate PCIe timing requirements if power and clocks are still
stabilizing, potentially causing link training failures or device
unresponsiveness.
Is it intentional that pcie0_default uses bias-pull-up here, while
pcie2_default correctly uses bias-pull-down for its perst-n-pins?
> + };
> +
> + wake-n-pins {
> + pins = "gpio24";
> + function = "pcie0_wake";
> + drive-strength = <6>;
> + bias-pull-up;
> + };
> + };
> +
> + pcie2_default: pcie2-default-state {
[ ... ]
> + perst-n-pins {
> + pins = "gpio29";
> + function = "gpio";
> + drive-strength = <8>;
> + bias-pull-down;
> + };
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260714-pcie_move_to_new_binding-v1-0-6bb25887a0dc@oss.qualcomm.com?part=5
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-07-14 5:01 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-14 4:41 [PATCH 0/5] Switch PCIe node to new style of bindings for Qualcomm IPQ SoCs Kathiravan Thirumoorthy
2026-07-14 4:41 ` [PATCH 1/5] arm64: dts: qcom: ipq8074: move PCIe phys and PERST# to port node Kathiravan Thirumoorthy
2026-07-14 4:41 ` [PATCH 2/5] arm64: dts: qcom: ipq6018: move PCIe phys " Kathiravan Thirumoorthy
2026-07-14 4:41 ` [PATCH 3/5] arm64: dts: qcom: ipq5018: move PCIe phys and PERST# " Kathiravan Thirumoorthy
2026-07-14 4:41 ` [PATCH 4/5] arm64: dts: qcom: ipq9574: Add PCIe bridge node Kathiravan Thirumoorthy
2026-07-14 4:41 ` [PATCH 5/5] arm64: dts: qcom: ipq9574: enable the PCIe support on RDP454 Kathiravan Thirumoorthy
2026-07-14 5:01 ` sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox