[PATCH 2/2] arm64: dts: rockchip: Add fan cooling maps for LubanCat 4
From: Pufan Jin <hidden>
Date: 2026-08-01 04:51:19
Also in:
linux-devicetree, linux-rockchip, lkml
Subsystem:
the rest · Maintainer:
Linus Torvalds
The fan node has no cooling maps, so nothing binds it to a thermal zone. The pwm-fan driver deliberately falls back to the highest cooling level when it probes without a thermal zone to drive it, which leaves the fan running at full speed regardless of temperature. Bind the fan to the package thermal zone with one active trip per cooling level, reusing the trip temperatures from the vendor kernel. The lower bound of the first map and the upper bound of the last one are left unlimited so that the fan can stop below 42C and reach full speed above 65C. Signed-off-by: Pufan Jin <redacted> --- .../boot/dts/rockchip/rk3588s-lubancat-4.dts | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-lubancat-4.dts b/arch/arm64/boot/dts/rockchip/rk3588s-lubancat-4.dts
index bf413de979cd..a0fc128ce6e1 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-lubancat-4.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-lubancat-4.dts@@ -11,6 +11,7 @@ #include <dt-bindings/leds/common.h> #include <dt-bindings/pinctrl/rockchip.h> #include <dt-bindings/soc/rockchip,vop2.h> +#include <dt-bindings/thermal/thermal.h> #include "rk3588s.dtsi" / {
@@ -300,6 +301,58 @@ rgmii_phy1: ethernet-phy@1 { }; }; +&package_thermal { + polling-delay = <1000>; + + trips { + package_fan0: package-fan0 { + temperature = <42000>; + hysteresis = <2000>; + type = "active"; + }; + + package_fan1: package-fan1 { + temperature = <55000>; + hysteresis = <2000>; + type = "active"; + }; + + package_fan2: package-fan2 { + temperature = <60000>; + hysteresis = <2000>; + type = "active"; + }; + + package_fan3: package-fan3 { + temperature = <65000>; + hysteresis = <2000>; + type = "active"; + }; + }; + + cooling-maps { + map0 { + trip = <&package_fan0>; + cooling-device = <&fan THERMAL_NO_LIMIT 1>; + }; + + map1 { + trip = <&package_fan1>; + cooling-device = <&fan 2 2>; + }; + + map2 { + trip = <&package_fan2>; + cooling-device = <&fan 3 3>; + }; + + map3 { + trip = <&package_fan3>; + cooling-device = <&fan 4 THERMAL_NO_LIMIT>; + }; + }; +}; + &pcie2x1l2 { pinctrl-0 = <&pcie2_reset>; pinctrl-names = "default";
--
2.55.0