diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi index ca9f3334f..82970991c 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi @@ -1039,31 +1039,72 @@ thermal-zones { cpu-thermal { - polling-delay-passive = <0>; - polling-delay = <0>; + polling-delay-passive = <250>; + polling-delay = <1000>; thermal-sensors = <&ths 0>; trips { - cpu_alert: cpu-alert { + cpu_warm: cpu_warm { + temperature = <75000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu_hot_pre: cpu_hot_pre { + temperature = <80000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu_hot: cpu_hot { temperature = <85000>; hysteresis = <2000>; type = "passive"; }; - cpu-crit { - temperature = <100000>; - hysteresis = <0>; + cpu_very_hot_pre: cpu_very_hot_pre { + temperature = <90000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu_very_hot: cpu_very_hot { + temperature = <95000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu_crit: cpu_crit { + temperature = <105000>; + hysteresis = <2000>; type = "critical"; }; }; cooling-maps { - map0 { - trip = <&cpu_alert>; - cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, - <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, - <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, - <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + cpu_warm_limit_cpu { + trip = <&cpu_warm>; + cooling-device = <&cpu0 THERMAL_NO_LIMIT 2>; + }; + + cpu_hot_pre_limit_cpu { + trip = <&cpu_hot_pre>; + cooling-device = <&cpu0 2 3>; + }; + + cpu_hot_limit_cpu { + trip = <&cpu_hot>; + cooling-device = <&cpu0 3 4>; + }; + + cpu_very_hot_pre_limit_cpu { + trip = <&cpu_very_hot_pre>; + cooling-device = <&cpu0 5 6>; + }; + + cpu_very_hot_limit_cpu { + trip = <&cpu_very_hot>; + cooling-device = <&cpu0 7 THERMAL_NO_LIMIT>; }; }; };