Re: [PATCH v3 2/5] arm64: dts: rockchip: enable automatic active cooling on Rock 5B

From: Dragan Simic
Date: Thu Feb 29 2024 - 16:25:31 EST


Hello Alexey,

On 2024-02-29 20:26, Alexey Charkov wrote:
This links the PWM fan on Radxa Rock 5B as an active cooling device
managed automatically by the thermal subsystem, with a target SoC
temperature of 65C and a minimum-spin interval from 55C to 65C to
ensure airflow when the system gets warm

I'd suggest that you replace "automatic active cooling" with "active
cooling" in the patch subject. I know, it may seem like more of the
unnecessary nitpicking, :) but I hope you'll agree that "automatic"
is actually redundant there. It would also make the patch subject
a bit shorter.

Another option would be to replace "automatic active cooling" with
"automatic fan control", which may actually be a better choice.
I'd be happy with whichever one you prefer. :)

Otherwise, please feel free to add:

Reviewed-by: Dragan Simic <dsimic@xxxxxxxxxxx>

Signed-off-by: Alexey Charkov <alchark@xxxxxxxxx>
---
arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts | 30 ++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
index a0e303c3a1dc..3f7fb055c4dc 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
@@ -52,7 +52,7 @@ led_rgb_b {

fan: pwm-fan {
compatible = "pwm-fan";
- cooling-levels = <0 95 145 195 255>;
+ cooling-levels = <0 120 150 180 210 240 255>;
fan-supply = <&vcc5v0_sys>;
pwms = <&pwm1 0 50000 0>;
#cooling-cells = <2>;
@@ -173,6 +173,34 @@ &cpu_l3 {
cpu-supply = <&vdd_cpu_lit_s0>;
};

+&package_thermal {
+ polling-delay = <1000>;
+
+ trips {
+ package_fan0: package-fan0 {
+ temperature = <55000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+ package_fan1: package-fan1 {
+ temperature = <65000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+ };
+
+ cooling-maps {
+ map1 {
+ trip = <&package_fan0>;
+ cooling-device = <&fan THERMAL_NO_LIMIT 1>;
+ };
+ map2 {
+ trip = <&package_fan1>;
+ cooling-device = <&fan 2 THERMAL_NO_LIMIT>;
+ };
+ };
+};
+
&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0m2_xfer>;