rockchip-rk3588: add Rock 5 ITX PWM fan control overlay

The Rock 5 ITX DTB defines the PWM fan as /pwm-fan without a labelled
phandle, so the existing rockchip-rk3588-fanctrl overlay (which targets
&fan) has no effect on this board.

The default cooling-levels in the Rock 5 ITX DTB start at 0, which means
the fan receives no PWM signal at idle and falls back to running at full
speed regardless of temperature.

This overlay patches /pwm-fan directly using target-path, replacing the
cooling-levels with a curve that starts at 1 (near-silent at idle) and
adds rockchip,temp-trips to ramp the fan gradually across four steps
at 45°C, 50°C, 55°C, and 65°C.

Tested on Rock 5 ITX running Armbian with linux-vendor-rk35xx 6.1.
This commit is contained in:
Charlie Carpinteri 2026-04-19 13:00:47 +10:00 committed by Igor
parent 03192b8175
commit dc91ec0391
7 changed files with 51 additions and 0 deletions

View File

@ -56,6 +56,7 @@ dtbo-$(CONFIG_ARCH_ROCKCHIP) += \
rockchip-rk3568-hk-uart1.dtbo \
rockchip-rk3568-rock-3a-disable-uart2.dtbo \
rockchip-rk3588-fanctrl.dtbo \
rockchip-rk3588-rock-5-itx-pwm-fan.dtbo \
rockchip-rk3588-sata0.dtbo \
rockchip-rk3588-sata1.dtbo \
rockchip-rk3588-sata2.dtbo \

View File

@ -292,3 +292,15 @@ Some NanoPC-T6 boards use a A3A444 eMMC chip. Under heavy I/O load when running
in HS400 mode, this will often result in I/O errors.
Reducing the eMMC frequency from the default 200000000 Hz to 150000000 Hz improves
stability and eliminates the I/O errors.
**********************************
Details for Rock 5 ITX overlays:
### rockchip-rk3588-rock-5-itx-pwm-fan
The Rock 5 ITX DTB defines the fan as a /pwm-fan node without a labelled phandle,
so the generic rockchip-rk3588-fanctrl overlay (which targets &fan) does not apply.
This overlay patches the /pwm-fan node directly, fixing the default cooling-levels
which start at 0 — causing the fan to receive no PWM signal at idle and default to
full speed. The corrected curve starts at 1 (near-silent) and ramps through four
steps tied to temperature trip points (45°C / 50°C / 55°C / 65°C).

View File

@ -0,0 +1,12 @@
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target-path = "/pwm-fan";
__overlay__ {
cooling-levels = <1 64 128 192 255>;
rockchip,temp-trips = <45000 1 50000 2 55000 3 65000 4>;
};
};
};

View File

@ -67,6 +67,7 @@ dtbo-$(CONFIG_ARCH_ROCKCHIP) += \
rockchip-rk3568-hk-uart1.dtbo \
rockchip-rk3568-rock-3a-disable-uart2.dtbo \
rockchip-rk3588-fanctrl.dtbo \
rockchip-rk3588-rock-5-itx-pwm-fan.dtbo \
rockchip-rk3588-sata0.dtbo \
rockchip-rk3588-sata1.dtbo \
rockchip-rk3588-sata2.dtbo \

View File

@ -0,0 +1,12 @@
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target-path = "/pwm-fan";
__overlay__ {
cooling-levels = <1 64 128 192 255>;
rockchip,temp-trips = <45000 1 50000 2 55000 3 65000 4>;
};
};
};

View File

@ -67,6 +67,7 @@ dtbo-$(CONFIG_ARCH_ROCKCHIP) += \
rockchip-rk3568-hk-uart1.dtbo \
rockchip-rk3568-rock-3a-disable-uart2.dtbo \
rockchip-rk3588-fanctrl.dtbo \
rockchip-rk3588-rock-5-itx-pwm-fan.dtbo \
rockchip-rk3588-sata0.dtbo \
rockchip-rk3588-sata1.dtbo \
rockchip-rk3588-sata2.dtbo \

View File

@ -0,0 +1,12 @@
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target-path = "/pwm-fan";
__overlay__ {
cooling-levels = <1 64 128 192 255>;
rockchip,temp-trips = <45000 1 50000 2 55000 3 65000 4>;
};
};
};