/*
 * Device tree sources for default Exynos7 thermal zone definition
 *
 * Copyright (c) 2016 Samsung Electronics Co., Ltd.
 *		http://www.samsung.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.
 *
 */

trips {
	cpu-alert-0 {
		temperature = <75000>; /* millicelsius */
		hysteresis = <10000>; /* millicelsius */
		type = "passive";
	};
	cpu-alert-1 {
		temperature = <80000>; /* millicelsius */
		hysteresis = <10000>; /* millicelsius */
		type = "passive";
	};
	cpu-alert-2 {
		temperature = <85000>; /* millicelsius */
		hysteresis = <10000>; /* millicelsius */
		type = "passive";
	};
	cpu-alert-3 {
		temperature = <90000>; /* millicelsius */
		hysteresis = <10000>; /* millicelsius */
		type = "passive";
	};
	cpu-alert-4 {
		temperature = <95000>; /* millicelsius */
		hysteresis = <10000>; /* millicelsius */
		type = "passive";
	};
	cpu-alert-5 {
		temperature = <100000>; /* millicelsius */
		hysteresis = <10000>; /* millicelsius */
		type = "passive";
	};
	cpu-alert-6 {
		temperature = <110000>; /* millicelsius */
		hysteresis = <10000>; /* millicelsius */
		type = "passive";
	};
	cpu-crit-0 {
		temperature = <115000>; /* millicelsius */
		hysteresis = <0>; /* millicelsius */
		type = "critical";
	};
};
