mvebu: puzzle-m90x: optimize thermal zone
authorDaniel Golle <daniel@makrotopia.org>
Thu, 21 Mar 2024 20:59:13 +0000 (20:59 +0000)
committerDaniel Golle <daniel@makrotopia.org>
Thu, 21 Mar 2024 21:25:38 +0000 (21:25 +0000)
 * have more defined PWM steps similar to the vendor's shell script doing
   the same thing
 * replace PWM values with experiencal values provided by forum users
 * increase hyteresis to prevent changing fan speed every second
   (just because it's annoying to listen to)
 * add 'hot' trip point at 75 deg. to warn users that shutdown is imminent

Tested on Puzzle M902 only for now, PWM values for Puzzle M901 might be
slightly different but should quite certainly also be rised.

Suggested-by: Martin Gierschner <martin_gierschner@gmx.de>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
target/linux/mvebu/files/arch/arm64/boot/dts/marvell/cn9131-puzzle-m901.dts
target/linux/mvebu/files/arch/arm64/boot/dts/marvell/cn9132-puzzle-m902.dts
target/linux/mvebu/files/arch/arm64/boot/dts/marvell/puzzle-thermal.dtsi

index a33f8394ca649c8d1ab587aae9640990447e2063..d214853f1be1167c2d1ea60cdc5f105a14ef696a 100644 (file)
                        chassis_fan_group0: fan-group@0 {
                                #cooling-cells = <2>;
                                reg = <0x00>;
-                               cooling-levels = <80 102 170 230 255>;
+                               cooling-levels = <0 159 195 211 223 241 255>;
                        };
                };
        };
index 4b153fdc8c483e560954275c1c767c0badc46cfd..8c775e4a4f9a983792bc8bb22945d6eac2625b4f 100644 (file)
                        chassis_fan_group0: fan-group@0 {
                                #cooling-cells = <2>;
                                reg = <0x00>;
-                               cooling-levels = <80 102 170 230 255>;
+                               cooling-levels = <0 159 195 211 223 241 255>;
                        };
                };
        };
index a8ce8fd102c69614de541f54780169b504a6ebde..ea79ab224e4af885935969c3139777938670a299 100644 (file)
@@ -3,38 +3,62 @@
        polling-delay = <1000>;                                                 \
                                                                                \
        trips {                                                                 \
+               cpu-hot {                                                       \
+                       temperature = <75000>;                                  \
+                       hysteresis = <5000>;                                    \
+                       type = "hot";                                           \
+               };                                                              \
+               _cname##_active_full: cpu-active-full {                         \
+                       temperature = <70000>;                                  \
+                       hysteresis = <5000>;                                    \
+                       type = "active";                                        \
+               };                                                              \
                _cname##_active_high: cpu-active-high {                         \
-                       temperature = <80000>;                                  \
-                       hysteresis = <2000>;                                    \
+                       temperature = <65000>;                                  \
+                       hysteresis = <5000>;                                    \
                        type = "active";                                        \
                };                                                              \
                _cname##_active_med: cpu-active-med {                           \
-                       temperature = <72000>;                                  \
-                       hysteresis = <2000>;                                    \
+                       temperature = <62500>;                                  \
+                       hysteresis = <3000>;                                    \
                        type = "active";                                        \
                };                                                              \
                _cname##_active_low: cpu-active-low {                           \
-                       temperature = <65000>;                                  \
-                       hysteresis = <2000>;                                    \
+                       temperature = <60000>;                                  \
+                       hysteresis = <3000>;                                    \
+                       type = "active";                                        \
+               };                                                              \
+               _cname##_active_min: cpu-active-min {                           \
+                       temperature = <55000>;                                  \
+                       hysteresis = <5000>;                                    \
                        type = "active";                                        \
                };                                                              \
                _cname##_active_idle: cpu-active-idle {                         \
-                       temperature = <60000>;                                  \
-                       hysteresis = <2000>;                                    \
+                       temperature = <50000>;                                  \
+                       hysteresis = <5000>;                                    \
                        type = "active";                                        \
                };                                                              \
        };                                                                      \
        cooling-maps {                                                          \
+               cpu-active-full {                                               \
+                       trip = <&_cname##_active_full>;                         \
+                       cooling-device = <_fan THERMAL_NO_LIMIT                 \
+                                              THERMAL_NO_LIMIT>;               \
+               };                                                              \
                cpu-active-high {                                               \
                        trip = <&_cname##_active_high>;                         \
-                       cooling-device = <_fan 3 THERMAL_NO_LIMIT>;             \
+                       cooling-device = <_fan 4 5>;                            \
                };                                                              \
                cpu-active-med {                                                \
                        trip = <&_cname##_active_med>;                          \
-                       cooling-device = <_fan 2 3>;                            \
+                       cooling-device = <_fan 3 4>;                            \
                };                                                              \
                cpu-active-low {                                                \
                        trip = <&_cname##_active_low>;                          \
+                       cooling-device = <_fan 2 3>;                            \
+               };                                                              \
+               cpu-active-min {                                                \
+                       trip = <&_cname##_active_min>;                          \
                        cooling-device = <_fan 1 2>;                            \
                };                                                              \
                cpu-active-idle {                                               \