2025-12-04 8:36 PM
I have tried changing the ldo7 of stpmic25A in stm32mp257f-ev1,
i have a custom board using stm32mp257fai3 and stpmic25a, where im using LDO7 for ethernet which needs 1v. so i tried experimenting the voltage first in stm32mp257f-ev1 EVK board and i applied below patch to change the voltage from 3.3v to 1v in all the boot components, but im still getting 3.3v at the vdd pin of the sdcard even after changes, why it so?
im in middle of a board bring up, so hoping for a quick reply
Thanks in advance,
FYR,
tf-a patch:
diff --git a/fdts/stm32mp257f-ev1.dts b/fdts/stm32mp257f-ev1.dts
index 848ab89925..9771c7c2b6 100644
--- a/fdts/stm32mp257f-ev1.dts
+++ b/fdts/stm32mp257f-ev1.dts
@@ -144,10 +144,10 @@
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <2500000>;
};
- vdd_sdcard: ldo7 {
- regulator-name = "vdd_sdcard";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
+ vdd_eth2: ldo7 {
+ regulator-name = "vdd_eth2";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1000000>;
regulator-always-on;
};
vddio_sdcard: ldo8 {
@@ -225,7 +225,7 @@
pinctrl-0 = <&sdmmc1_b4_pins_a>;
st,neg-edge;
bus-width = <4>;
- vmmc-supply = <&vdd_sdcard>;
+ vmmc-supply = <&vdd_eth2>;
vqmmc-supply = <&vddio1>;
status = "okay";
};Optee-os patch:
diff --git a/core/arch/arm/dts/stm32mp257f-ev1.dts b/core/arch/arm/dts/stm32mp257f-ev1.dts
index 053037ea7..924f2204e 100644
--- a/core/arch/arm/dts/stm32mp257f-ev1.dts
+++ b/core/arch/arm/dts/stm32mp257f-ev1.dts
@@ -310,12 +310,12 @@
regulator-off-in-suspend;
};
};
- vdd_sdcard: ldo7 {
- regulator-name = "vdd_sdcard";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
+ vdd_eth2: ldo7 {
+ regulator-name = "vdd_eth2";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1000000>;
regulator-over-current-protection;
- st,regulator-bypass-microvolt = <3300000>;
+ st,regulator-bypass-microvolt = <1000000>;
st,pwrctrl-sel = <3>;
st,pwrctrl-reset;
};
@@ -494,7 +494,7 @@
regulator@17 {
reg = <VOLTD_SCMI_STPMIC2_LDO7>;
- voltd-supply = <&vdd_sdcard>;
+ voltd-supply = <&vdd_eth2>;
};
};
};
u-boot patch
diff --git a/arch/arm/dts/stm32mp257f-ev1.dts b/arch/arm/dts/stm32mp257f-ev1.dts
index 8a240acbe00..d3fee9cde5f 100644
--- a/arch/arm/dts/stm32mp257f-ev1.dts
+++ b/arch/arm/dts/stm32mp257f-ev1.dts
@@ -698,9 +698,9 @@
reg = <VOLTD_SCMI_STPMIC2_LDO4>;
regulator-name = "vdd3v3_usb";
};
- scmi_vdd_sdcard: regulator@17 {
+ scmi_vdd_eth2: regulator@17 {
reg = <VOLTD_SCMI_STPMIC2_LDO7>;
- regulator-name = "vdd_sdcard";
+ regulator-name = "vdd_eth2";
};
};
@@ -713,7 +713,7 @@
disable-wp;
st,neg-edge;
bus-width = <4>;
- vmmc-supply = <&scmi_vdd_sdcard>;
+ vmmc-supply = <&scmi_vdd_eth2>;
vqmmc-supply = <&scmi_vddio1>;
sd-uhs-sdr12;
sd-uhs-sdr25;
Linux kernel patch
diff --git a/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts b/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
index 8a240acbe..d3fee9cde 100644
--- a/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
+++ b/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
@@ -698,9 +698,9 @@ scmi_vdd3v3_usb: regulator@14 {
reg = <VOLTD_SCMI_STPMIC2_LDO4>;
regulator-name = "vdd3v3_usb";
};
- scmi_vdd_sdcard: regulator@17 {
+ scmi_vdd_eth2: regulator@17 {
reg = <VOLTD_SCMI_STPMIC2_LDO7>;
- regulator-name = "vdd_sdcard";
+ regulator-name = "vdd_eth2";
};
};
@@ -713,7 +713,7 @@ &sdmmc1 {
disable-wp;
st,neg-edge;
bus-width = <4>;
- vmmc-supply = <&scmi_vdd_sdcard>;
+ vmmc-supply = <&scmi_vdd_eth2>;
vqmmc-supply = <&scmi_vddio1>;
sd-uhs-sdr12;
sd-uhs-sdr25;