Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

/*
 * Device tree sources for Exynos5422 thermal zone
 *
 * Copyright (c) 2015 Lukasz Majewski <l.majewski@samsung.com>
 *			Anand Moon <linux.amoon@gmail.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 */

#include <dt-bindings/thermal/thermal.h>

/ {
	thermal-zones {
		cpu0_thermal: cpu0-thermal {
			thermal-sensors = <&tmu_cpu0 0>;
			polling-delay-passive = <250>;
			polling-delay = <0>;
			trips {
				cpu_alert0: cpu-alert-0 {
					temperature = <50000>; /* millicelsius */
					hysteresis = <5000>; /* millicelsius */
					type = "active";
				};
				cpu_alert1: cpu-alert-1 {
					temperature = <60000>; /* millicelsius */
					hysteresis = <5000>; /* millicelsius */
					type = "active";
				};
				cpu_alert2: cpu-alert-2 {
					temperature = <70000>; /* millicelsius */
					hysteresis = <5000>; /* millicelsius */
					type = "active";
				};
				cpu_crit0: cpu-crit-0 {
					temperature = <120000>; /* millicelsius */
					hysteresis = <0>; /* millicelsius */
					type = "critical";
				};
				/*
				 * Exyunos542x support only 4 trip-points
				 * so for these polling mode is required.
				 * Start polling at temperature level of last
				 * interrupt-driven trip: cpu_alert2
				 */
				cpu_alert3: cpu-alert-3 {
					temperature = <70000>; /* millicelsius */
					hysteresis = <10000>; /* millicelsius */
					type = "passive";
				};
				cpu_alert4: cpu-alert-4 {
					temperature = <85000>; /* millicelsius */
					hysteresis = <10000>; /* millicelsius */
					type = "passive";
				};

			};
			cooling-maps {
				map0 {
				     trip = <&cpu_alert0>;
				     cooling-device = <&fan0 0 1>;
				};
				map1 {
				     trip = <&cpu_alert1>;
				     cooling-device = <&fan0 1 2>;
				};
				map2 {
				     trip = <&cpu_alert2>;
				     cooling-device = <&fan0 2 3>;
				};
				/*
				 * When reaching cpu_alert3, reduce CPU
				 * by 2 steps. On Exynos5422/5800 that would
				 * be: 1500 MHz and 1100 MHz.
				 */
				map3 {
				     trip = <&cpu_alert3>;
				     cooling-device = <&cpu0 0 2>;
				};
				map4 {
				     trip = <&cpu_alert3>;
				     cooling-device = <&cpu4 0 2>;
				};

				/*
				 * When reaching cpu_alert4, reduce CPU
				 * further, down to 600 MHz (11 steps for big,
				 * 7 steps for LITTLE).
				 */
				map5 {
				     trip = <&cpu_alert4>;
				     cooling-device = <&cpu0 3 7>;
				};
				map6 {
				     trip = <&cpu_alert4>;
				     cooling-device = <&cpu4 3 11>;
				};
			};
		};
	};
};