Commit a5ce7a3d authored by Quentin Schulz's avatar Quentin Schulz Committed by Maxime Ripard

ARM: sun8i: a33: add CPU thermal throttling

This adds CPU thermal throttling for the Allwinner A33. It uses the
thermal sensor present in the SoC's GPADC.
Signed-off-by: default avatarQuentin Schulz <quentin.schulz@free-electrons.com>
Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
parent a424f635
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
*/ */
#include "sun8i-a23-a33.dtsi" #include "sun8i-a23-a33.dtsi"
#include <dt-bindings/thermal/thermal.h>
/ { / {
cpu0_opp_table: opp_table0 { cpu0_opp_table: opp_table0 {
...@@ -133,6 +134,7 @@ cpu@0 { ...@@ -133,6 +134,7 @@ cpu@0 {
clocks = <&ccu CLK_CPUX>; clocks = <&ccu CLK_CPUX>;
clock-names = "cpu"; clock-names = "cpu";
operating-points-v2 = <&cpu0_opp_table>; operating-points-v2 = <&cpu0_opp_table>;
#cooling-cells = <2>;
}; };
cpu@2 { cpu@2 {
...@@ -388,6 +390,49 @@ drc0_out_tcon0: endpoint@0 { ...@@ -388,6 +390,49 @@ drc0_out_tcon0: endpoint@0 {
}; };
}; };
}; };
thermal-zones {
cpu_thermal {
/* milliseconds */
polling-delay-passive = <250>;
polling-delay = <1000>;
thermal-sensors = <&ths>;
cooling-maps {
map0 {
trip = <&cpu_alert0>;
cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
map1 {
trip = <&cpu_alert1>;
cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
};
trips {
cpu_alert0: cpu_alert0 {
/* milliCelsius */
temperature = <75000>;
hysteresis = <2000>;
type = "passive";
};
cpu_alert1: cpu_alert1 {
/* milliCelsius */
temperature = <90000>;
hysteresis = <2000>;
type = "hot";
};
cpu_crit: cpu_crit {
/* milliCelsius */
temperature = <110000>;
hysteresis = <2000>;
type = "critical";
};
};
};
};
}; };
&ccu { &ccu {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment