arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
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 <mikhail.kshevetskiy@iopsys.eu>
Acked-by: Frank Wunderlich <frank-w@public-files.de>
---
Changes from v1 to v2:
* improve patch description
Changes from v2 to v3:
* added question to Frank Wunderlich
Changes from v3 to v4:
* Acked by Frank Wunderlich
---
arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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 ed79ad1ae871..b0cc0cbdff0f 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 @@ fan: pwm-fan {
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";
};
--
2.51.0
On Tue, 30 Sep 2025 05:16:56 +0300, Mikhail Kshevetskiy wrote:
> 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:
>
> [...]
Applied to v6.18-next/dts64, thanks!
[1/1] arm64: dts: mediatek: mt7986-bpi-r3: Change fan PWM value for mid speed
commit: 8365a3e1fdc3e9a69114165877e0ca281ffdc8de
Cheers,
Angelo
Il 30/09/25 04:16, Mikhail Kshevetskiy ha scritto: > 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 <mikhail.kshevetskiy@iopsys.eu> > Acked-by: Frank Wunderlich <frank-w@public-files.de> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Is there any chances get it merged to linux-6.18? Regards, Mikhail Kshevetskiy On 30.09.2025 14:34, AngeloGioacchino Del Regno wrote: > Il 30/09/25 04:16, Mikhail Kshevetskiy ha scritto: >> 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 <mikhail.kshevetskiy@iopsys.eu> >> Acked-by: Frank Wunderlich <frank-w@public-files.de> > > Reviewed-by: AngeloGioacchino Del Regno > <angelogioacchino.delregno@collabora.com> > >
Il 09/10/25 10:55, Mikhail Kshevetskiy ha scritto: > Is there any chances get it merged to linux-6.18? > No, the window is closed - but I have added this patch to my notes, will be picked as soon as RC1 is out, will be in linux-next soon after, and will land in 6.19. Cheers, Angelo > Regards, > Mikhail Kshevetskiy > > > > On 30.09.2025 14:34, AngeloGioacchino Del Regno wrote: >> Il 30/09/25 04:16, Mikhail Kshevetskiy ha scritto: >>> 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 <mikhail.kshevetskiy@iopsys.eu> >>> Acked-by: Frank Wunderlich <frank-w@public-files.de> >> >> Reviewed-by: AngeloGioacchino Del Regno >> <angelogioacchino.delregno@collabora.com> >> >>
© 2016 - 2026 Red Hat, Inc.