Skip to content

Commit ac62730

Browse files
Ziyue Zhangandersson
authored andcommitted
arm64: dts: qcom: Add PCIe3 and PCIe5 regulators for HAMAO-IOT-EVK board
HAMAO IoT EVK uses PCIe5 to connect an SDX65 module for WWAN functionality and PCIe3 to connect a SATA controller. These interfaces require multiple voltage rails: PCIe5 needs 3.3V supplied by vreg_wwan, while PCIe3 requires 12V, 3.3V, and 3.3V AUX rails, controlled via PMIC GPIOs. Add the required fixed regulators with related pin configuration, and connect them to the PCIe3 and PCIe5 ports to ensure proper power for the SDX65 module and SATA controller. Move reset and wake GPIO properties from RC nodes to port nodes. Signed-off-by: Ziyue Zhang <ziyue.zhang@oss.qualcomm.com> Reviewed-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260109104504.3147745-4-ziyue.zhang@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
1 parent a395b85 commit ac62730

2 files changed

Lines changed: 97 additions & 6 deletions

File tree

arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,48 @@
253253
regulator-boot-on;
254254
};
255255

256+
vreg_pcie_12v: regulator-pcie-12v {
257+
compatible = "regulator-fixed";
258+
259+
regulator-name = "VREG_PCIE_12V";
260+
regulator-min-microvolt = <12000000>;
261+
regulator-max-microvolt = <12000000>;
262+
263+
gpio = <&pm8550ve_8_gpios 8 GPIO_ACTIVE_HIGH>;
264+
enable-active-high;
265+
266+
pinctrl-0 = <&pcie_x8_12v>;
267+
pinctrl-names = "default";
268+
};
269+
270+
vreg_pcie_3v3: regulator-pcie-3v3 {
271+
compatible = "regulator-fixed";
272+
273+
regulator-name = "VREG_PCIE_3P3";
274+
regulator-min-microvolt = <3300000>;
275+
regulator-max-microvolt = <3300000>;
276+
277+
gpio = <&pmc8380_3_gpios 6 GPIO_ACTIVE_HIGH>;
278+
enable-active-high;
279+
280+
pinctrl-0 = <&pm_sde7_main_3p3_en>;
281+
pinctrl-names = "default";
282+
};
283+
284+
vreg_pcie_3v3_aux: regulator-pcie-3v3-aux {
285+
compatible = "regulator-fixed";
286+
287+
regulator-name = "VREG_PCIE_3P3_AUX";
288+
regulator-min-microvolt = <3300000>;
289+
regulator-max-microvolt = <3300000>;
290+
291+
gpio = <&pmc8380_3_gpios 8 GPIO_ACTIVE_HIGH>;
292+
enable-active-high;
293+
294+
pinctrl-0 = <&pm_sde7_aux_3p3_en>;
295+
pinctrl-names = "default";
296+
};
297+
256298
/* Left unused as the retimer is not used on this board. */
257299
vreg_rtmr0_1p15: regulator-rtmr0-1p15 {
258300
compatible = "regulator-fixed";
@@ -920,7 +962,19 @@
920962
status = "okay";
921963
};
922964

965+
&pcie3_port0 {
966+
vpcie12v-supply = <&vreg_pcie_12v>;
967+
vpcie3v3-supply = <&vreg_pcie_3v3>;
968+
vpcie3v3aux-supply = <&vreg_pcie_3v3_aux>;
969+
970+
reset-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
971+
wake-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
972+
};
973+
923974
&pcie4_port0 {
975+
reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
976+
wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
977+
924978
wifi@0 {
925979
compatible = "pci17cb,1107";
926980
reg = <0x10000 0x0 0x0 0x0 0x0>;
@@ -937,10 +991,24 @@
937991
};
938992
};
939993

994+
&pcie5 {
995+
vddpe-3v3-supply = <&vreg_wwan>;
996+
};
997+
998+
&pcie5_port0 {
999+
reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
1000+
wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
1001+
};
1002+
9401003
&pcie6a {
9411004
vddpe-3v3-supply = <&vreg_nvme>;
9421005
};
9431006

1007+
&pcie6a_port0 {
1008+
reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
1009+
wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
1010+
};
1011+
9441012
&pm8550_gpios {
9451013
rtmr0_default: rtmr0-reset-n-active-state {
9461014
pins = "gpio10";
@@ -961,6 +1029,17 @@
9611029
};
9621030
};
9631031

1032+
&pm8550ve_8_gpios {
1033+
pcie_x8_12v: pcie-12v-default-state {
1034+
pins = "gpio8";
1035+
function = "normal";
1036+
output-enable;
1037+
output-high;
1038+
bias-pull-down;
1039+
power-source = <0>;
1040+
};
1041+
};
1042+
9641043
&pm8550ve_9_gpios {
9651044
usb0_1p8_reg_en: usb0-1p8-reg-en-state {
9661045
pins = "gpio8";
@@ -1025,6 +1104,24 @@
10251104
};
10261105
};
10271106

1107+
&pmc8380_3_gpios {
1108+
pm_sde7_aux_3p3_en: pcie-aux-3p3-default-state {
1109+
pins = "gpio8";
1110+
function = "normal";
1111+
output-enable;
1112+
bias-pull-down;
1113+
power-source = <0>;
1114+
};
1115+
1116+
pm_sde7_main_3p3_en: pcie-main-3p3-default-state {
1117+
pins = "gpio6";
1118+
function = "normal";
1119+
output-enable;
1120+
bias-pull-down;
1121+
power-source = <0>;
1122+
};
1123+
};
1124+
10281125
&pmc8380_5_gpios {
10291126
usb0_pwr_1p15_reg_en: usb0-pwr-1p15-reg-en-state {
10301127
pins = "gpio8";

arch/arm64/boot/dts/qcom/hamoa-iot-som.dtsi

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -405,9 +405,6 @@
405405
};
406406

407407
&pcie4 {
408-
perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
409-
wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
410-
411408
pinctrl-0 = <&pcie4_default>;
412409
pinctrl-names = "default";
413410

@@ -436,9 +433,6 @@
436433
};
437434

438435
&pcie6a {
439-
perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
440-
wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
441-
442436
pinctrl-0 = <&pcie6a_default>;
443437
pinctrl-names = "default";
444438

0 commit comments

Comments
 (0)