Rockchip平台cpu散热风扇随温度自动调速的配置方法

Rockchip平台cpu散热风扇随温度自动调速的配置方法

CPU的散热风扇硬件是有一个PWM来控制转速,Android的内核中有对应的驱动,Rockchip RK3588上面已经实现根据cpu温度自动调速的功能,下面介绍rockchip平台上面如何进行软件配置。

注:根据cpu温度调整风扇转速的功能在RK3588 Android2的 SDK的RKR12版本上才有支持。

1,确认kernel的config配置打开如下配置:

arch/arm64/configs/rockchip_defconfig
CONFIG_SENSORS_PWM_FAN=y

2,DTS中加入fan的配置

fan: pwm-fan {
                compatible = "pwm-fan";
                #cooling-cells = <2>;
                pwms = <&pwm9 0 50000 0>;
                cooling-levels = <0 50 100 150 200 255>;
                rockchip,temp-trips = <
                        50000   1
                        55000   2
                        60000   3
                        65000   4
                        70000   5
                >;
        };


其中:

  • pwms = <&pwm11 0 50000 0>; 是配置使用那个pwm
  • cooling-levels = <0 50 100 150 200 255>;是配置转速(pwm的占空比)的档位,档位数量和大小可以自己定义,这里配置6个档位,转速的范围是0-255。
  • rockchip,temp-trips 是配置cpu温度和风扇转速档位的对应关系,可以根据实际需要进行调整,如50度对应档位1。

3,配置打开PWM
这里风扇接的pwm11,所以dts中要配置打开pwm11,并配置对应的pinctrl。 不同的硬件设计使用的pwm可能不一样,需要根据实际硬件设计来对应配置。

&pwm11 {
        pinctrl-0 = <&pwm11m1_pins>;
        status = "okay";
};

4,调试
可以通过下面的节点查看风扇与温度对应的档位信息

rk3588_s:/ # cat /sys/class/thermal/cooling_device0/
cur_state   max_state   power/      subsystem/  type        uevent
//当前风扇档位
1|rk3588_s:/ # cat /sys/class/thermal/cooling_device0/cur_state
0
//最新档位数
rk3588_s:/ # cat /sys/class/thermal/cooling_device0/max_state
6

可以echo 0-6的值到/sys/class/thermal/cooling_device0/cur_state进行手动调试转速

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

loitawu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值