mvebu: puzzle-m90x: optimize thermal zone

* 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>
This commit is contained in:
Daniel Golle 2024-03-21 20:59:13 +00:00
parent 879826154f
commit 1a47ce5ff2
3 changed files with 36 additions and 12 deletions

View File

@ -112,7 +112,7 @@
chassis_fan_group0: fan-group@0 { chassis_fan_group0: fan-group@0 {
#cooling-cells = <2>; #cooling-cells = <2>;
reg = <0x00>; reg = <0x00>;
cooling-levels = <80 102 170 230 255>; cooling-levels = <0 159 195 211 223 241 255>;
}; };
}; };
}; };

View File

@ -157,7 +157,7 @@
chassis_fan_group0: fan-group@0 { chassis_fan_group0: fan-group@0 {
#cooling-cells = <2>; #cooling-cells = <2>;
reg = <0x00>; reg = <0x00>;
cooling-levels = <80 102 170 230 255>; cooling-levels = <0 159 195 211 223 241 255>;
}; };
}; };
}; };

View File

@ -3,38 +3,62 @@
polling-delay = <1000>; \ polling-delay = <1000>; \
\ \
trips { \ 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 { \ _cname##_active_high: cpu-active-high { \
temperature = <80000>; \ temperature = <65000>; \
hysteresis = <2000>; \ hysteresis = <5000>; \
type = "active"; \ type = "active"; \
}; \ }; \
_cname##_active_med: cpu-active-med { \ _cname##_active_med: cpu-active-med { \
temperature = <72000>; \ temperature = <62500>; \
hysteresis = <2000>; \ hysteresis = <3000>; \
type = "active"; \ type = "active"; \
}; \ }; \
_cname##_active_low: cpu-active-low { \ _cname##_active_low: cpu-active-low { \
temperature = <65000>; \ temperature = <60000>; \
hysteresis = <2000>; \ hysteresis = <3000>; \
type = "active"; \
}; \
_cname##_active_min: cpu-active-min { \
temperature = <55000>; \
hysteresis = <5000>; \
type = "active"; \ type = "active"; \
}; \ }; \
_cname##_active_idle: cpu-active-idle { \ _cname##_active_idle: cpu-active-idle { \
temperature = <60000>; \ temperature = <50000>; \
hysteresis = <2000>; \ hysteresis = <5000>; \
type = "active"; \ type = "active"; \
}; \ }; \
}; \ }; \
cooling-maps { \ cooling-maps { \
cpu-active-full { \
trip = <&_cname##_active_full>; \
cooling-device = <_fan THERMAL_NO_LIMIT \
THERMAL_NO_LIMIT>; \
}; \
cpu-active-high { \ cpu-active-high { \
trip = <&_cname##_active_high>; \ trip = <&_cname##_active_high>; \
cooling-device = <_fan 3 THERMAL_NO_LIMIT>; \ cooling-device = <_fan 4 5>; \
}; \ }; \
cpu-active-med { \ cpu-active-med { \
trip = <&_cname##_active_med>; \ trip = <&_cname##_active_med>; \
cooling-device = <_fan 2 3>; \ cooling-device = <_fan 3 4>; \
}; \ }; \
cpu-active-low { \ cpu-active-low { \
trip = <&_cname##_active_low>; \ trip = <&_cname##_active_low>; \
cooling-device = <_fan 2 3>; \
}; \
cpu-active-min { \
trip = <&_cname##_active_min>; \
cooling-device = <_fan 1 2>; \ cooling-device = <_fan 1 2>; \
}; \ }; \
cpu-active-idle { \ cpu-active-idle { \