The core and vdd PMIC buck regulators were misconfigured, which caused
instability of the board and malfunction of high-speed interfaces, like
the RGMII. Configure the PMIC correctly to repair these problems. Also,
model the missing Enpirion EP53A8LQI on the DHCOR SoM as a fixed regulator.

Signed-off-by: Marek Vasut <ma...@denx.de>
Cc: Patrick Delaunay <patrick.delau...@st.com>
Cc: Patrice Chotard <patrice.chot...@st.com>
---
V2: - Model the Enpirion EP53A8LQI on the DHCOR SoM as a fixed regulator
    - Adjust the PMIC voltages further
---
 arch/arm/dts/stm32mp157a-avenger96.dts | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/arch/arm/dts/stm32mp157a-avenger96.dts 
b/arch/arm/dts/stm32mp157a-avenger96.dts
index 7a4b6e6a2c..4fa20bc31d 100644
--- a/arch/arm/dts/stm32mp157a-avenger96.dts
+++ b/arch/arm/dts/stm32mp157a-avenger96.dts
@@ -91,6 +91,17 @@
                states = <1800000 0x1>,
                         <2900000 0x0>;
        };
+
+       /* Enpirion EP3A8LQI U2 on the DHCOR */
+       vdd_io: regulator-buck-io {
+               compatible = "regulator-fixed";
+               regulator-name = "buck-io";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vdd>;
+       };
 };
 
 &ethernet0 {
@@ -167,7 +178,7 @@
 
                        vddcore: buck1 {
                                regulator-name = "vddcore";
-                               regulator-min-microvolt = <1200000>;
+                               regulator-min-microvolt = <800000>;
                                regulator-max-microvolt = <1350000>;
                                regulator-always-on;
                                regulator-initial-mode = <0>;
@@ -185,8 +196,8 @@
 
                        vdd: buck3 {
                                regulator-name = "vdd";
-                               regulator-min-microvolt = <3300000>;
-                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <2900000>;
+                               regulator-max-microvolt = <2900000>;
                                regulator-always-on;
                                st,mask_reset;
                                regulator-initial-mode = <0>;
@@ -268,6 +279,7 @@
                                regulator-name = "vbus_otg";
                                interrupts = <IT_OCP_OTG 0>;
                                interrupt-parent = <&pmic>;
+                               regulator-active-discharge = <1>;
                        };
 
                        vbus_sw: pwr_sw2 {
@@ -304,7 +316,7 @@
 };
 
 &pwr_regulators {
-       vdd-supply = <&vdd>;
+       vdd-supply = <&vdd_io>;
        vdd_3v3_usbfs-supply = <&vdd_usb>;
 };
 
-- 
2.25.1

Reply via email to