Skip to content

Commit 11b72b1

Browse files
Ziyue Zhangandersson
authored andcommitted
arm64: dts: qcom: hamoa: Fix incomplete Root Port property migration
Historically, the Qualcomm PCIe controller node (Host bridge) described all Root Port properties, such as PHY, PERST#, and WAKE#. But to provide a more accurate hardware description and to support future multi-Root Port controllers, these properties were moved to the Root Port node in the devicetree bindings. Commit 960609b ("arm64: dts: qcom: hamoa: Move PHY, PERST, and Wake GPIOs to PCIe port nodes and add port Nodes for all PCIe ports") initiated this transition for the Hamoa platform by moving the PHY property to the Root Port node in hamoa.dtsi. However, it only updated some platform specific DTS files for PERST# and WAKE#, leaving others in a "mixed" binding state. While the PCIe controller driver supports both legacy and Root Port bindings, It cannot correctly handle a mix of both. In these cases, the driver parses the PHY from the Root Port node, but fails to find the PERST# property (which it then assumes is not present, as it is optional). Consequently, the controller probe succeeds, but PERST# remains uncontrolled, preventing PCIe endpoints from functioning. So, fix the incomplete migration by moving the PERST# and WAKE# properties from the controller node to the Root Port node in all remaining Hamoa platform DTS files. Fixes: 960609b ("arm64: dts: qcom: hamoa: Move PHY, PERST, and Wake GPIOs to PCIe port nodes and add port Nodes for all PCIe ports") Signed-off-by: Ziyue Zhang <[email protected]> Reviewed-by: Manivannan Sadhasivam <[email protected]> Reviewed-by: Konrad Dybcio <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Bjorn Andersson <[email protected]>
1 parent 88bdac5 commit 11b72b1

8 files changed

Lines changed: 65 additions & 46 deletions

arch/arm64/boot/dts/qcom/x1-asus-zenbook-a14.dtsi

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1032,9 +1032,6 @@
10321032
};
10331033

10341034
&pcie4 {
1035-
perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
1036-
wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
1037-
10381035
pinctrl-0 = <&pcie4_default>;
10391036
pinctrl-names = "default";
10401037

@@ -1048,10 +1045,12 @@
10481045
status = "okay";
10491046
};
10501047

1051-
&pcie6a {
1052-
perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
1053-
wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
1048+
&pcie4_port0 {
1049+
reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
1050+
wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
1051+
};
10541052

1053+
&pcie6a {
10551054
vddpe-3v3-supply = <&vreg_nvme>;
10561055

10571056
pinctrl-0 = <&pcie6a_default>;
@@ -1067,6 +1066,11 @@
10671066
status = "okay";
10681067
};
10691068

1069+
&pcie6a_port0 {
1070+
reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
1071+
wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
1072+
};
1073+
10701074
&pm8550_gpios {
10711075
rtmr0_default: rtmr0-reset-n-active-state {
10721076
pins = "gpio10";

arch/arm64/boot/dts/qcom/x1-crd.dtsi

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1216,15 +1216,17 @@
12161216
};
12171217

12181218
&pcie4 {
1219-
perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
1220-
wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
1221-
12221219
pinctrl-0 = <&pcie4_default>;
12231220
pinctrl-names = "default";
12241221

12251222
status = "okay";
12261223
};
12271224

1225+
&pcie4_port0 {
1226+
reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
1227+
wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
1228+
};
1229+
12281230
&pcie4_phy {
12291231
vdda-phy-supply = <&vreg_l3i_0p8>;
12301232
vdda-pll-supply = <&vreg_l3e_1p2>;
@@ -1233,9 +1235,6 @@
12331235
};
12341236

12351237
&pcie5 {
1236-
perst-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
1237-
wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
1238-
12391238
vddpe-3v3-supply = <&vreg_wwan>;
12401239

12411240
pinctrl-0 = <&pcie5_default>;
@@ -1251,10 +1250,12 @@
12511250
status = "okay";
12521251
};
12531252

1254-
&pcie6a {
1255-
perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
1256-
wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
1253+
&pcie5_port0 {
1254+
reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
1255+
wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
1256+
};
12571257

1258+
&pcie6a {
12581259
vddpe-3v3-supply = <&vreg_nvme>;
12591260

12601261
pinctrl-names = "default";
@@ -1270,6 +1271,11 @@
12701271
status = "okay";
12711272
};
12721273

1274+
&pcie6a_port0 {
1275+
reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
1276+
wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
1277+
};
1278+
12731279
&pm8550_gpios {
12741280
kypd_vol_up_n: kypd-vol-up-n-state {
12751281
pins = "gpio6";

arch/arm64/boot/dts/qcom/x1-dell-thena.dtsi

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1081,9 +1081,6 @@
10811081
};
10821082

10831083
&pcie4 {
1084-
perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
1085-
wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
1086-
10871084
pinctrl-0 = <&pcie4_default>;
10881085
pinctrl-names = "default";
10891086

@@ -1098,6 +1095,9 @@
10981095
};
10991096

11001097
&pcie4_port0 {
1098+
reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
1099+
wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
1100+
11011101
wifi@0 {
11021102
compatible = "pci17cb,1107";
11031103
reg = <0x10000 0x0 0x0 0x0 0x0>;
@@ -1115,9 +1115,6 @@
11151115
};
11161116

11171117
&pcie6a {
1118-
perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
1119-
wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
1120-
11211118
vddpe-3v3-supply = <&vreg_nvme>;
11221119

11231120
pinctrl-0 = <&pcie6a_default>;
@@ -1126,6 +1123,11 @@
11261123
status = "okay";
11271124
};
11281125

1126+
&pcie6a_port0 {
1127+
reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
1128+
wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
1129+
};
1130+
11291131
&pcie6a_phy {
11301132
vdda-phy-supply = <&vreg_l1d_0p8>;
11311133
vdda-pll-supply = <&vreg_l2j_1p2>;

arch/arm64/boot/dts/qcom/x1-hp-omnibook-x14.dtsi

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1065,9 +1065,6 @@
10651065
};
10661066

10671067
&pcie4 {
1068-
perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
1069-
wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
1070-
10711068
pinctrl-0 = <&pcie4_default>;
10721069
pinctrl-names = "default";
10731070

@@ -1082,6 +1079,9 @@
10821079
};
10831080

10841081
&pcie4_port0 {
1082+
reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
1083+
wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
1084+
10851085
wifi@0 {
10861086
compatible = "pci17cb,1107";
10871087
reg = <0x10000 0x0 0x0 0x0 0x0>;
@@ -1099,9 +1099,6 @@
10991099
};
11001100

11011101
&pcie6a {
1102-
perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
1103-
wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
1104-
11051102
vddpe-3v3-supply = <&vreg_nvme>;
11061103

11071104
pinctrl-0 = <&pcie6a_default>;
@@ -1110,6 +1107,11 @@
11101107
status = "okay";
11111108
};
11121109

1110+
&pcie6a_port0 {
1111+
reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
1112+
wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
1113+
};
1114+
11131115
&pcie6a_phy {
11141116
vdda-phy-supply = <&vreg_l1d_0p8>;
11151117
vdda-pll-supply = <&vreg_l2j_1p2>;

arch/arm64/boot/dts/qcom/x1-microsoft-denali.dtsi

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -964,9 +964,6 @@
964964
};
965965

966966
&pcie6a {
967-
perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
968-
wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
969-
970967
vddpe-3v3-supply = <&vreg_nvme>;
971968

972969
pinctrl-0 = <&pcie6a_default>;
@@ -982,6 +979,11 @@
982979
status = "okay";
983980
};
984981

982+
&pcie6a_port0 {
983+
reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
984+
wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
985+
};
986+
985987
&pm8550_gpios {
986988
rtmr0_default: rtmr0-reset-n-active-state {
987989
pins = "gpio10";

arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1126,9 +1126,6 @@
11261126
};
11271127

11281128
&pcie4 {
1129-
perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
1130-
wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
1131-
11321129
pinctrl-0 = <&pcie4_default>;
11331130
pinctrl-names = "default";
11341131

@@ -1143,6 +1140,9 @@
11431140
};
11441141

11451142
&pcie4_port0 {
1143+
reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
1144+
wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
1145+
11461146
wifi@0 {
11471147
compatible = "pci17cb,1107";
11481148
reg = <0x10000 0x0 0x0 0x0 0x0>;

arch/arm64/boot/dts/qcom/x1e80100-medion-sprchrgd-14-s1.dts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1033,9 +1033,6 @@
10331033
};
10341034

10351035
&pcie4 {
1036-
perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
1037-
wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
1038-
10391036
pinctrl-0 = <&pcie4_default>;
10401037
pinctrl-names = "default";
10411038

@@ -1050,6 +1047,9 @@
10501047
};
10511048

10521049
&pcie4_port0 {
1050+
reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
1051+
wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
1052+
10531053
wifi@0 {
10541054
compatible = "pci17cb,1107";
10551055
reg = <0x10000 0x0 0x0 0x0 0x0>;
@@ -1067,10 +1067,6 @@
10671067
};
10681068

10691069
&pcie6a {
1070-
perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
1071-
1072-
wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
1073-
10741070
vddpe-3v3-supply = <&vreg_nvme>;
10751071

10761072
pinctrl-0 = <&pcie6a_default>;
@@ -1086,6 +1082,11 @@
10861082
status = "okay";
10871083
};
10881084

1085+
&pcie6a_port0 {
1086+
reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
1087+
wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
1088+
};
1089+
10891090
&pm8550_gpios {
10901091
rtmr0_default: rtmr0-reset-n-active-state {
10911092
pins = "gpio10";

arch/arm64/boot/dts/qcom/x1p42100-lenovo-thinkbook-16.dts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1131,9 +1131,6 @@
11311131
};
11321132

11331133
&pcie4 {
1134-
perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
1135-
wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
1136-
11371134
pinctrl-0 = <&pcie4_default>;
11381135
pinctrl-names = "default";
11391136

@@ -1148,6 +1145,9 @@
11481145
};
11491146

11501147
&pcie4_port0 {
1148+
reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
1149+
wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
1150+
11511151
wifi@0 {
11521152
compatible = "pci17cb,1107";
11531153
reg = <0x10000 0x0 0x0 0x0 0x0>;
@@ -1165,9 +1165,6 @@
11651165
};
11661166

11671167
&pcie6a {
1168-
perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
1169-
wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
1170-
11711168
vddpe-3v3-supply = <&vreg_nvme>;
11721169

11731170
pinctrl-0 = <&pcie6a_default>;
@@ -1183,6 +1180,11 @@
11831180
status = "okay";
11841181
};
11851182

1183+
&pcie6a_port0 {
1184+
reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
1185+
wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
1186+
};
1187+
11861188
&pm8550_pwm {
11871189
status = "okay";
11881190
};

0 commit comments

Comments
 (0)