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

Commit c87efcc3 authored by Matthias Kaehlcke's avatar Matthias Kaehlcke Committed by Heiko Stuebner
Browse files

ARM: dts: rockchip: Configure the GPU thermal zone for mickey



mickey crams a lot of hardware into a tiny package, which requires
more aggressive thermal throttling than for devices with a larger
footprint. Configure the GPU thermal zone to throttle the GPU
progressively at temperatures >= 60°C. Heat dissipated by the
CPUs also affects the GPU temperature, hence we cap the CPU
frequency to 1.4 GHz for temperatures above 65°C. Further throttling
of the CPUs may be performed by the CPU thermal zone.

The configuration matches that of the downstream Chrome OS 3.14
kernel, the 'official' kernel for mickey.

Signed-off-by: default avatarMatthias Kaehlcke <mka@chromium.org>
Reviewed-by: default avatarDouglas Anderson <dianders@chromium.org>
Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
parent 11983d85
Loading
Loading
Loading
Loading
+67 −0
Original line number Diff line number Diff line
@@ -136,6 +136,73 @@
	};
};

&gpu_thermal {
	/delete-node/ trips;
	/delete-node/ cooling-maps;

	trips {
		gpu_alert_warmish: gpu_alert_warmish {
			temperature = <60000>; /* millicelsius */
			hysteresis = <2000>; /* millicelsius */
			type = "passive";
		};
		gpu_alert_warm: gpu_alert_warm {
			temperature = <65000>; /* millicelsius */
			hysteresis = <2000>; /* millicelsius */
			type = "passive";
		};
		gpu_alert_hotter: gpu_alert_hotter {
			temperature = <84000>; /* millicelsius */
			hysteresis = <2000>; /* millicelsius */
			type = "passive";
		};
		gpu_alert_very_very_hot: gpu_alert_very_very_hot {
			temperature = <86000>; /* millicelsius */
			hysteresis = <2000>; /* millicelsius */
			type = "passive";
		};
		gpu_crit: gpu_crit {
			temperature = <90000>; /* millicelsius */
			hysteresis = <2000>; /* millicelsius */
			type = "critical";
		};
	};

	cooling-maps {
		/* After 1st level throttle the GPU down to as low as 400 MHz */
		gpu_warmish_limit_gpu {
			trip = <&gpu_alert_warmish>;
			cooling-device = <&gpu THERMAL_NO_LIMIT 1>;
		};

		/*
		 * Slightly after we throttle the GPU, we'll also make sure that
		 * the CPU can't go faster than 1.4 GHz.  Note that we won't
		 * throttle the CPU lower than 1.4 GHz due to GPU heat--we'll
		 * let the CPU do the rest itself.
		 */
		gpu_warm_limit_cpu {
			trip = <&gpu_alert_warm>;
			cooling-device = <&cpu0 4 4>,
					 <&cpu1 4 4>,
					 <&cpu2 4 4>,
					 <&cpu3 4 4>;
		};

		/* When hot, GPU goes down to 300 MHz */
		gpu_hotter_limit_gpu {
			trip = <&gpu_alert_hotter>;
			cooling-device = <&gpu 2 2>;
		};

		/* When really hot, don't let GPU go _above_ 300 MHz */
		gpu_very_very_hot_limit_gpu {
			trip = <&gpu_alert_very_very_hot>;
			cooling-device = <&gpu 2 THERMAL_NO_LIMIT>;
		};
	};
};

&i2c2 {
	status = "disabled";
};