// SPDX-License-Identifier: GPL-2.0-only OR MIT
/*
 * Copyright (C) 2023-2024 Texas Instruments Incorporated - https://www.ti.com/
 */

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

thermal_zones: thermal-zones {
	main0_thermal: main0-thermal {
		polling-delay-passive = <250>;	/* milliSeconds */
		polling-delay = <500>;		/* milliSeconds */
		thermal-sensors = <&wkup_vtm0 0>;

		trips {
			main0_alert: main0-alert {
				temperature = <95000>;
				hysteresis = <2000>;
				type = "passive";
			};

			main0_crit: main0-crit {
				temperature = <105000>;	/* milliCelsius */
				hysteresis = <2000>;	/* milliCelsius */
				type = "critical";
			};
		};

		cooling-maps {
			map0 {
				trip = <&main0_alert>;
				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>;
			};
		};
	};

	main1_thermal: main1-thermal {
		polling-delay-passive = <250>;	/* milliSeconds */
		polling-delay = <500>;		/* milliSeconds */
		thermal-sensors = <&wkup_vtm0 1>;

		trips {
			main1_alert: main1-alert {
				temperature = <95000>;
				hysteresis = <2000>;
				type = "passive";
			};

			main1_crit: main1-crit {
				temperature = <105000>;	/* milliCelsius */
				hysteresis = <2000>;	/* milliCelsius */
				type = "critical";
			};
		};

		cooling-maps {
			map0 {
				trip = <&main1_alert>;
				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>;
			};
		};
	};
};
