From: Mikhail Kshevetskiy Date: Tue, 30 Sep 2025 02:16:56 +0000 (+0300) Subject: arm64: dts: mediatek: mt7986-bpi-r3: Change fan PWM value for mid speed X-Git-Tag: v6.19-rc1~100^2~28^2~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8365a3e1fdc3e9a69114165877e0ca281ffdc8de;p=thirdparty%2Fkernel%2Flinux.git arm64: dts: mediatek: mt7986-bpi-r3: Change fan PWM value for mid speed Popular cheap PWM fans for this machine, like the ones coming in heatsink+fan combos will not work properly at the currently defined medium speed. Trying different pwm setting using a command echo $value > /sys/devices/platform/pwm-fan/hwmon/hwmon1/pwm1 I found: pwm1 value fan rotation speed cpu temperature notes ----------------------------------------------------------------- 0 maximal 31.5 Celsius too noisy 40 optimal 35.2 Celsius no noise hearable 95 minimal above 95 does not rotate 55.5 Celsius ----------------------------------------------------------------- Thus only cpu-active-high and cpu-active-low modes are usable. I think this is wrong. This patch fixes cpu-active-medium settings for bpi-r3 board. I know, the patch is not ideal as it can break pwm fan for some users. Likely this is the only official mt7986-bpi-r3 heatsink+fan solution available on the market. This patch may not be enough. Users may wants to tweak their thermal_zone0 trip points, thus tuning fan rotation speed depending on cpu temperature. That can be done on the base of the following example: === example ========= # cpu temperature below 25 Celsius degrees, no rotation echo 25000 > /sys/class/thermal/thermal_zone0/trip_point_4_temp # cpu temperature in [25..32] Celsius degrees, normal rotation speed echo 32000 > /sys/class/thermal/thermal_zone0/trip_point_3_temp # cpu temperature above 50 Celsius degrees, max rotation speed echo 50000 > /sys/class/thermal/thermal_zone0/trip_point_2_temp ===================== Signed-off-by: Mikhail Kshevetskiy Acked-by: Frank Wunderlich Reviewed-by: AngeloGioacchino Del Regno Signed-off-by: AngeloGioacchino Del Regno --- diff --git a/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts b/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts index e7654dc9a1c9b..19f538d160ab5 100644 --- a/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts +++ b/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts @@ -42,7 +42,7 @@ compatible = "pwm-fan"; #cooling-cells = <2>; /* cooling level (0, 1, 2) - pwm inverted */ - cooling-levels = <255 96 0>; + cooling-levels = <255 40 0>; pwms = <&pwm 0 10000>; status = "okay"; };