From 2ee84c9e622a2f5e90aab245e83177e93a9033bc Mon Sep 17 00:00:00 2001
From: sunrise <[email protected]>
Date: Mon, 1 Mar 2021 14:32:51 +0800
Subject: [PATCH] added pwm fan
Signed-off-by: sunrise <[email protected]>
---
.../arm64/boot/dts/rockchip/rk3399-cvesa.dtsi | 15 -------
.../arch/arm64/boot/dts/rockchip/rk3399.dtsi | 42 ++++++++++++++++++-
kernel/arch/arm64/configs/rockchip_defconfig | 3 +-
3 files changed, 42 insertions(+), 18 deletions(-)
diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3399-cvesa.dtsi b/kernel/arch/arm64/boot/dts/rockchip/rk3399-cvesa.dtsi
index 8da5e7ab7b..4a3934839b 100644
--- a/kernel/arch/arm64/boot/dts/rockchip/rk3399-cvesa.dtsi
+++ b/kernel/arch/arm64/boot/dts/rockchip/rk3399-cvesa.dtsi
@@ -157,21 +157,6 @@
vin-supply = <&vcc_sys>;
};
- vdd_log: vdd-log {
- compatible = "pwm-regulator";
- pwms = <&pwm2 0 25000 1>;
- regulator-name = "vdd_log";
- regulator-min-microvolt = <800000>;
- regulator-max-microvolt = <1400000>;
- regulator-always-on;
- regulator-boot-on;
-
- /* for rockchip boot on */
- rockchip,pwm_id= <2>;
- rockchip,pwm_voltage = <900000>;
- pwm-supply = <&vcc_sys>;
- };
-
/* switched by pmic_sleep */
vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
compatible = "regulator-fixed";
diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/kernel/arch/arm64/boot/dts/rockchip/rk3399.dtsi
index f1771c5eea..77f68ff62e 100644
--- a/kernel/arch/arm64/boot/dts/rockchip/rk3399.dtsi
+++ b/kernel/arch/arm64/boot/dts/rockchip/rk3399.dtsi
@@ -792,6 +792,16 @@
status = "disabled";
};
+ pwm_fan: pwm-fan {
+ compatible = "pwm-fan";
+ pwms = <&pwm2 0 40000 0>;
+ regulator-name = "pwm_fan";
+ cooling-min-state = <0>;
+ cooling-max-state = <3>;
+ #cooling-cells = <2>;
+ cooling-levels = <0 130 170 230>;
+ };
+
thermal_zones: thermal-zones {
soc_thermal: soc-thermal {
polling-delay-passive = <20>;
@@ -801,6 +811,21 @@
thermal-sensors = <&tsadc 0>;
trips {
+ cpu0_alert0: cpu-alert-0 {
+ temperature = <40000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+ cpu0_alert1: cpu-alert-1 {
+ temperature = <50000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+ cpu0_alert2: cpu-alert-2 {
+ temperature = <60000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
threshold: trip-point-0 {
temperature = <70000>;
hysteresis = <2000>;
@@ -820,23 +845,36 @@
cooling-maps {
map0 {
+ trip = <&cpu0_alert0>;
+ cooling-device = <&pwm_fan 0 1>;
+ };
+ map1 {
+ trip = <&cpu0_alert1>;
+ cooling-device = <&pwm_fan 1 2>;
+ };
+ map2 {
+ trip = <&cpu0_alert2>;
+ cooling-device = <&pwm_fan 2 3>;
+ };
+ map3 {
trip = <&target>;
cooling-device =
<&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
contribution = <4096>;
};
- map1 {
+ map4 {
trip = <&target>;
cooling-device =
<&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
contribution = <1024>;
};
- map2 {
+ map5 {
trip = <&target>;
cooling-device =
<&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
contribution = <4096>;
};
+
};
};
diff --git a/kernel/arch/arm64/configs/rockchip_defconfig b/kernel/arch/arm64/configs/rockchip_defconfig
index fa080145e2..7ced897d65 100644
--- a/kernel/arch/arm64/configs/rockchip_defconfig
+++ b/kernel/arch/arm64/configs/rockchip_defconfig
@@ -442,6 +442,7 @@ CONFIG_ROCKCHIP_REMOTECTL=y
CONFIG_ROCKCHIP_REMOTECTL_PWM=y
CONFIG_SENSOR_DEVICE=y
CONFIG_GSENSOR_DEVICE=y
+CONFIG_SENSORS_PWM_FAN=y
CONFIG_GS_MMA8452=y
CONFIG_MPU6880_ACC=y
CONFIG_MPU6500_ACC=y
@@ -512,7 +513,7 @@ CONFIG_BATTERY_RK818=y
CONFIG_CHARGER_RK818=y
CONFIG_THERMAL=y
CONFIG_THERMAL_WRITABLE_TRIPS=y
-CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR=y
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
CONFIG_THERMAL_GOV_FAIR_SHARE=y
CONFIG_THERMAL_GOV_STEP_WISE=y
CONFIG_THERMAL_GOV_USER_SPACE=y
--
2.17.1
算法的修改 主要在 drivers/thermal/step_wise.c ,drivers/thermal/thermal_core.c