Unverified Commit 87bf7a5f authored by Ondrej Jirman's avatar Ondrej Jirman Committed by Maxime Ripard
Browse files

ARM: dts: sun8i-a83t: Add thermal trip points/cooling maps



This enables passive cooling by down-regulating CPU voltage
and frequency.

For the trip points, I used values from the BSP code directly.

The critical trip point value is 30°C above the maximum recommended
ambient temperature (70°C) for the SoC from the datasheet, so there's
some headroom even at such a high ambient temperature.

Signed-off-by: default avatarOndrej Jirman <megous@megous.com>
Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
parent 7ad9f3d0
Loading
Loading
Loading
Loading
+54 −6
Original line number Diff line number Diff line
@@ -72,7 +72,7 @@
			#cooling-cells = <2>;
		};

		cpu@1 {
		cpu1: cpu@1 {
			compatible = "arm,cortex-a7";
			device_type = "cpu";
			clocks = <&ccu CLK_C0CPUX>;
@@ -83,7 +83,7 @@
			#cooling-cells = <2>;
		};

		cpu@2 {
		cpu2: cpu@2 {
			compatible = "arm,cortex-a7";
			device_type = "cpu";
			clocks = <&ccu CLK_C0CPUX>;
@@ -94,7 +94,7 @@
			#cooling-cells = <2>;
		};

		cpu@3 {
		cpu3: cpu@3 {
			compatible = "arm,cortex-a7";
			device_type = "cpu";
			clocks = <&ccu CLK_C0CPUX>;
@@ -116,7 +116,7 @@
			#cooling-cells = <2>;
		};

		cpu@101 {
		cpu101: cpu@101 {
			compatible = "arm,cortex-a7";
			device_type = "cpu";
			clocks = <&ccu CLK_C1CPUX>;
@@ -127,7 +127,7 @@
			#cooling-cells = <2>;
		};

		cpu@102 {
		cpu102: cpu@102 {
			compatible = "arm,cortex-a7";
			device_type = "cpu";
			clocks = <&ccu CLK_C1CPUX>;
@@ -138,7 +138,7 @@
			#cooling-cells = <2>;
		};

		cpu@103 {
		cpu103: cpu@103 {
			compatible = "arm,cortex-a7";
			device_type = "cpu";
			clocks = <&ccu CLK_C1CPUX>;
@@ -1188,12 +1188,60 @@
			polling-delay-passive = <0>;
			polling-delay = <0>;
			thermal-sensors = <&ths 0>;

			trips {
				cpu0_hot: cpu-hot {
					temperature = <80000>;
					hysteresis = <2000>;
					type = "passive";
				};

				cpu0_very_hot: cpu-very-hot {
					temperature = <100000>;
					hysteresis = <0>;
					type = "critical";
				};
			};

			cooling-maps {
				cpu-hot-limit {
					trip = <&cpu0_hot>;
					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>;
				};
			};
		};

		cpu1_thermal: cpu1-thermal {
			polling-delay-passive = <0>;
			polling-delay = <0>;
			thermal-sensors = <&ths 1>;

			trips {
				cpu1_hot: cpu-hot {
					temperature = <80000>;
					hysteresis = <2000>;
					type = "passive";
				};

				cpu1_very_hot: cpu-very-hot {
					temperature = <100000>;
					hysteresis = <0>;
					type = "critical";
				};
			};

			cooling-maps {
				cpu-hot-limit {
					trip = <&cpu1_hot>;
					cooling-device = <&cpu100 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
							 <&cpu101 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
							 <&cpu102 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
							 <&cpu103 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
				};
			};
		};

		gpu_thermal: gpu-thermal {