Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+45 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@
 */

#include "sun8i-a23-a33.dtsi"
#include <dt-bindings/thermal/thermal.h>

/ {
	cpu0_opp_table: opp_table0 {
@@ -133,6 +134,7 @@
			clocks = <&ccu CLK_CPUX>;
			clock-names = "cpu";
			operating-points-v2 = <&cpu0_opp_table>;
			#cooling-cells = <2>;
		};

		cpu@2 {
@@ -388,6 +390,49 @@
			};
		};
	};

	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 {