From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Describe the power plumbing to allow fully suspending the slot and the
connected SD controller.
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
.../boot/dts/qcom/x1e80100-microsoft-romulus.dtsi | 71 ++++++++++++++++++++++
1 file changed, 71 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus.dtsi b/arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus.dtsi
index 0fd8516580b2679ee425438cb73fd4078cb20581..3a4df8f8066ae699eb7d889530f976fce565757e 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus.dtsi
@@ -331,6 +331,54 @@ vph_pwr: regulator-vph-pwr {
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 = <&vreg_12v_x8_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_pcie_3v3_aux: regulator-pcie-3v3-aux {
+ compatible = "regulator-fixed";
+
+ regulator-name = "vreg_pcie_3v3_aux";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&pmc8380_3_gpios 8 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&sde7_aux_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_pcie_3v3_main: regulator-pcie-3v3-main {
+ compatible = "regulator-fixed";
+
+ regulator-name = "vreg_pcie_3v3_main";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&pmc8380_3_gpios 6 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&sde7_main_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
sound {
compatible = "qcom,x1e80100-sndcard";
model = "X1E80100-Romulus";
@@ -1022,6 +1070,12 @@ &pcie3_phy {
status = "okay";
};
+&pcie3_port {
+ vpcie12v-supply = <&vreg_pcie_12v>;
+ vpcie3v3-supply = <&vreg_pcie_3v3_main>;
+ vpcie3v3aux-supply = <&vreg_pcie_3v3_aux>;
+};
+
&pcie4 {
status = "okay";
};
@@ -1066,6 +1120,13 @@ rtmr0_3p3_reg_en: rtmr0-3p3-reg-en-state {
};
};
+&pm8550ve_8_gpios {
+ vreg_12v_x8_en: 12v-x8-reg-en-state {
+ pins = "gpio8";
+ function = "normal";
+ };
+};
+
&pm8550ve_9_gpios {
rtmr0_1p8_reg_en: rtmr0-1p8-reg-en-state {
pins = "gpio8";
@@ -1082,6 +1143,16 @@ edp_bl_en: edp-bl-en-state {
input-disable;
output-enable;
};
+
+ sde7_main_reg_en: sde7-main-reg-en-state {
+ pins = "gpio6";
+ function = "normal";
+ };
+
+ sde7_aux_reg_en: sde7-aux-reg-en-state {
+ pins = "gpio8";
+ function = "normal";
+ };
};
&pmc8380_5_gpios {
--
2.50.1
On Tue, Aug 12, 2025 at 03:47:23PM +0200, Konrad Dybcio wrote: > From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> > > Describe the power plumbing to allow fully suspending the slot and the > connected SD controller. > > Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Are you sure these supplies really exist on the board? E.g. on the x1e001de-devkit, Windows toggles all these GPIOs, but there doesn't seem to be anything connected to two of them, the 12V supply is simply always on. Even more importantly, for a laptop I would expect they use some part that doesn't need a beefy 12V supply. I don't have the datasheet for RTS5261, but e.g. in [1] this chip is explicitly advertised with 3.3V power. I guess it's hard to be sure without schematics and it surely doesn't hurt to toggle these GPIOs like on Windows, but perhaps a comment that some of these likely don't exist would be good ... [1]: https://www.sdcard.org/cms/wp-content/uploads/2023/06/SDA_computex2023_Realtek.pdf > --- > .../boot/dts/qcom/x1e80100-microsoft-romulus.dtsi | 71 ++++++++++++++++++++++ > 1 file changed, 71 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus.dtsi b/arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus.dtsi > index 0fd8516580b2679ee425438cb73fd4078cb20581..3a4df8f8066ae699eb7d889530f976fce565757e 100644 > --- a/arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus.dtsi > +++ b/arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus.dtsi > @@ -331,6 +331,54 @@ vph_pwr: regulator-vph-pwr { > 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 = <&vreg_12v_x8_en>; > + pinctrl-names = "default"; > + > + regulator-boot-on; > + }; > + > + vreg_pcie_3v3_aux: regulator-pcie-3v3-aux { > + compatible = "regulator-fixed"; > + > + regulator-name = "vreg_pcie_3v3_aux"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + > + gpio = <&pmc8380_3_gpios 8 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + > + pinctrl-0 = <&sde7_aux_reg_en>; > + pinctrl-names = "default"; > + > + regulator-boot-on; > + }; > + > + vreg_pcie_3v3_main: regulator-pcie-3v3-main { > + compatible = "regulator-fixed"; > + > + regulator-name = "vreg_pcie_3v3_main"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + > + gpio = <&pmc8380_3_gpios 6 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + > + pinctrl-0 = <&sde7_main_reg_en>; > + pinctrl-names = "default"; > + > + regulator-boot-on; > + }; > + > sound { > compatible = "qcom,x1e80100-sndcard"; > model = "X1E80100-Romulus"; > @@ -1022,6 +1070,12 @@ &pcie3_phy { > status = "okay"; > }; > > +&pcie3_port { > + vpcie12v-supply = <&vreg_pcie_12v>; > + vpcie3v3-supply = <&vreg_pcie_3v3_main>; > + vpcie3v3aux-supply = <&vreg_pcie_3v3_aux>; > +}; > + > &pcie4 { > status = "okay"; > }; > @@ -1066,6 +1120,13 @@ rtmr0_3p3_reg_en: rtmr0-3p3-reg-en-state { > }; > }; > > +&pm8550ve_8_gpios { > + vreg_12v_x8_en: 12v-x8-reg-en-state { > + pins = "gpio8"; > + function = "normal"; > + }; > +}; > + > &pm8550ve_9_gpios { > rtmr0_1p8_reg_en: rtmr0-1p8-reg-en-state { > pins = "gpio8"; > @@ -1082,6 +1143,16 @@ edp_bl_en: edp-bl-en-state { > input-disable; > output-enable; > }; > + > + sde7_main_reg_en: sde7-main-reg-en-state { > + pins = "gpio6"; > + function = "normal"; > + }; > + > + sde7_aux_reg_en: sde7-aux-reg-en-state { > + pins = "gpio8"; > + function = "normal"; > + }; > }; I think you should either do a full configuration (include power-source and everything else essential as well) or omit this entirely, because like this you will need the proper configuration from the boot firmware anyway. Thanks, Stephan
On 8/12/25 5:45 PM, Stephan Gerhold wrote: > On Tue, Aug 12, 2025 at 03:47:23PM +0200, Konrad Dybcio wrote: >> From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> >> >> Describe the power plumbing to allow fully suspending the slot and the >> connected SD controller. >> >> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> > > Are you sure these supplies really exist on the board? E.g. on the > x1e001de-devkit, Windows toggles all these GPIOs, but there doesn't seem > to be anything connected to two of them, the 12V supply is simply always > on. Unfortunately, I have no schematics for this board.. I did reverse the polarity (and removed enable-active-high from the vreg node) to no effect.. so it may be that they're actually unnecessary, i.e. so is this patch > > Even more importantly, for a laptop I would expect they use some part > that doesn't need a beefy 12V supply. I don't have the datasheet for > RTS5261, but e.g. in [1] this chip is explicitly advertised with 3.3V > power. > > I guess it's hard to be sure without schematics and it surely doesn't > hurt to toggle these GPIOs like on Windows, but perhaps a comment that > some of these likely don't exist would be good ... > > [1]: https://www.sdcard.org/cms/wp-content/uploads/2023/06/SDA_computex2023_Realtek.pdf > >> --- [...] >> + sde7_main_reg_en: sde7-main-reg-en-state { >> + pins = "gpio6"; >> + function = "normal"; >> + }; >> + >> + sde7_aux_reg_en: sde7-aux-reg-en-state { >> + pins = "gpio8"; >> + function = "normal"; >> + }; >> }; > > I think you should either do a full configuration (include power-source > and everything else essential as well) or omit this entirely, because > like this you will need the proper configuration from the boot firmware > anyway. 'function' alone is really important on PMIC GPIOs, fwiw Konrad
© 2016 - 2025 Red Hat, Inc.