arm64: dts: imx8mq-librem5: Set the DVS voltages lower
authorSebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Thu, 9 Mar 2023 20:46:01 +0000 (21:46 +0100)
committerShawn Guo <shawnguo@kernel.org>
Mon, 27 Mar 2023 01:47:49 +0000 (09:47 +0800)
They're still in the operating range according to i.MX 8M Quad
datasheet. There's some headroom added over minimal values to
account for voltage drop.

Operational ranges (min - typ - max [selected]):
 - VDD_SOC (BUCK1): 0.81 - 0.9 - 0.99 [0.88]
 - VDD_ARM (BUCK2): 0.81 - 0.9 - 1.05 [0.84] (1000MHz)
                    0.90 - 1.0 - 1.05 [0.93] (1500MHz)
 - VDD_GPU (BUCK3): 0.81 - 0.9 - 1.05 [0.85] (800MHz)
                    0.90 - 1.0 - 1.05 [ -- ] (1000MHz)
 - VDD_VPU (BUCK4): 0.81 - 0.9 - 1.05 [ -- ] (550/500/588MHz)
                    0.90 - 1.0 - 1.05 [0.93] (660/600/800MHz)

Idle power consumption doesn't appear to be influenced much,
but a simple load test (`cat /dev/urandom | pigz - > /dev/null`
combined with running Animatch) seems to show about 0.3W of
difference.

Care is advised, as there may be differences between each
units in how low can they be undervolted - in my experience,
reaching that point usually makes the phone fail to boot.
In my case, it appears that my Birch phone can go down the most.

This is a somewhat conservative set of values that I've seen
working well on all my devices; I haven't tried very hard to
optimize it, so more experiments are welcome.

Signed-off-by: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx8mq-librem5-r3.dts
arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi

index 4533a84..077c5cd 100644 (file)
@@ -7,7 +7,7 @@
 
 &a53_opp_table {
        opp-1000000000 {
-               opp-microvolt = <1000000>;
+               opp-microvolt = <950000>;
        };
 };
 
index 509776a..eaf35cf 100644 (file)
                                regulator-max-microvolt = <1300000>;
                                regulator-boot-on;
                                regulator-ramp-delay = <1250>;
-                               rohm,dvs-run-voltage = <900000>;
-                               rohm,dvs-idle-voltage = <850000>;
+                               rohm,dvs-run-voltage = <880000>;
+                               rohm,dvs-idle-voltage = <820000>;
                                rohm,dvs-suspend-voltage = <800000>;
                                regulator-always-on;
                        };
                                regulator-max-microvolt = <1300000>;
                                regulator-boot-on;
                                regulator-ramp-delay = <1250>;
-                               rohm,dvs-run-voltage = <1000000>;
-                               rohm,dvs-idle-voltage = <900000>;
+                               rohm,dvs-run-voltage = <950000>;
+                               rohm,dvs-idle-voltage = <850000>;
                                regulator-always-on;
                        };
 
                                regulator-min-microvolt = <700000>;
                                regulator-max-microvolt = <1300000>;
                                regulator-boot-on;
-                               rohm,dvs-run-voltage = <900000>;
+                               rohm,dvs-run-voltage = <850000>;
                        };
 
                        buck4_reg: BUCK4 {
                                regulator-name = "buck4";
                                regulator-min-microvolt = <700000>;
                                regulator-max-microvolt = <1300000>;
-                               rohm,dvs-run-voltage = <1000000>;
+                               rohm,dvs-run-voltage = <930000>;
                        };
 
                        buck5_reg: BUCK5 {
        fsl,ext-reset-output;
        status = "okay";
 };
+
+&a53_opp_table {
+       opp-1000000000 {
+               opp-microvolt = <850000>;
+       };
+
+       opp-1500000000 {
+               opp-microvolt = <950000>;
+       };
+};