@@ -80,6 +80,22 @@ pmc@c360000 {
};
};
+ bpmp {
+ i2c {
+ tegra_tmp451: thermal-sensor@4c {
+ compatible = "ti,tmp451";
+ reg = <0x4c>;
+ vcc-supply = <&vdd_1v8_ao>;
+ #thermal-sensor-cells = <1>;
+ status = "okay";
+ };
+ };
+
+ thermal {
+ status = "okay";
+ };
+ };
+
vdd_5v0_sys: regulator-vdd-5v0-sys {
compatible = "regulator-fixed";
regulator-name = "VIN_SYS_5V0";
@@ -139,4 +155,264 @@ vdd_12v_pcie: regulator-vdd-12v-pcie {
gpio = <&gpio TEGRA234_MAIN_GPIO(A, 1) GPIO_ACTIVE_LOW>;
regulator-boot-on;
};
+
+ thermal-zones {
+ cpu-thermal {
+ polling-delay = <1000>;
+ polling-delay-passive = <1000>;
+ thermal-sensors = <&{/bpmp/thermal} TEGRA234_THERMAL_ZONE_CPU>;
+ status = "okay";
+
+ trips {
+ cpu_sw_shutdown: cpu-sw-shutdown {
+ temperature = <104500>;
+ hysteresis = <0>;
+ type = "critical";
+ };
+
+ cpu_sw_throttle: cpu-sw-throttle {
+ temperature = <99000>;
+ hysteresis = <0>;
+ type = "passive";
+ };
+ };
+
+ cooling-maps {
+ map0 {
+ trip = <&cpu_sw_throttle>;
+ cooling-device = <&cpu0_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu1_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu2_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
+ };
+
+ gpu-thermal {
+ polling-delay = <1000>;
+ polling-delay-passive = <1000>;
+ thermal-sensors = <&{/bpmp/thermal} TEGRA234_THERMAL_ZONE_GPU>;
+ status = "okay";
+ status = "disabled";
+
+ trips {
+ gpu_sw_shutdown: gpu-sw-shutdown {
+ temperature = <104500>;
+ hysteresis = <0>;
+ type = "critical";
+ };
+
+ gpu_sw_throttle: gpu-sw-throttle {
+ temperature = <99000>;
+ hysteresis = <0>;
+ type = "passive";
+ };
+ };
+
+ cooling-maps {
+ map0 {
+ trip = <&gpu_sw_throttle>;
+ cooling-device = <&cpu0_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu1_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu2_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
+ };
+
+ cv0-thermal {
+ polling-delay = <1000>;
+ polling-delay-passive = <1000>;
+ thermal-sensors = <&{/bpmp/thermal} TEGRA234_THERMAL_ZONE_CV0>;
+ status = "okay";
+
+ trips {
+ cv0_sw_shutdown: cv0-sw-shutdown {
+ temperature = <104500>;
+ hysteresis = <0>;
+ type = "critical";
+ };
+
+ cv0_sw_throttle: cv0-sw-throttle {
+ temperature = <99000>;
+ hysteresis = <0>;
+ type = "passive";
+ };
+ };
+
+ cooling-maps {
+ map0 {
+ trip = <&cv0_sw_throttle>;
+ cooling-device = <&cpu0_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu1_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu2_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
+ };
+
+
+ cv1-thermal {
+ polling-delay = <1000>;
+ polling-delay-passive = <1000>;
+ thermal-sensors = <&{/bpmp/thermal} TEGRA234_THERMAL_ZONE_CV1>;
+ status = "okay";
+ status = "disabled";
+
+ trips {
+ cv1_sw_shutdown: cv1-sw-shutdown {
+ temperature = <104500>;
+ hysteresis = <0>;
+ type = "critical";
+ };
+
+ cv1_sw_throttle: cv1-sw-throttle {
+ temperature = <99000>;
+ hysteresis = <0>;
+ type = "passive";
+ };
+ };
+
+ cooling-maps {
+ map0 {
+ trip = <&cv1_sw_throttle>;
+ cooling-device = <&cpu0_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu1_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu2_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
+ };
+
+ cv2-thermal {
+ polling-delay = <1000>;
+ polling-delay-passive = <1000>;
+ thermal-sensors = <&{/bpmp/thermal} TEGRA234_THERMAL_ZONE_CV2>;
+ status = "okay";
+
+ trips {
+ cv2_sw_shutdown: cv2-sw-shutdown {
+ temperature = <104500>;
+ hysteresis = <0>;
+ type = "critical";
+ };
+
+ cv2_sw_throttle: cv2-sw-throttle {
+ temperature = <99000>;
+ hysteresis = <0>;
+ type = "passive";
+ };
+ };
+
+ cooling-maps {
+ map0 {
+ trip = <&cv2_sw_throttle>;
+ cooling-device = <&cpu0_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu1_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu2_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
+ };
+
+ soc0-thermal {
+ polling-delay = <1000>;
+ polling-delay-passive = <1000>;
+ thermal-sensors = <&{/bpmp/thermal} TEGRA234_THERMAL_ZONE_SOC0>;
+ status = "okay";
+
+ trips {
+ soc0_sw_shutdown: soc0-sw-shutdown {
+ temperature = <104500>;
+ hysteresis = <0>;
+ type = "critical";
+ };
+
+ soc0_sw_throttle: soc0-sw-throttle {
+ temperature = <99000>;
+ hysteresis = <0>;
+ type = "passive";
+ };
+ };
+
+ cooling-maps {
+ map0 {
+ trip = <&soc0_sw_throttle>;
+ cooling-device = <&cpu0_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu1_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu2_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
+ };
+
+ soc1-thermal {
+ polling-delay = <1000>;
+ polling-delay-passive = <1000>;
+ thermal-sensors = <&{/bpmp/thermal} TEGRA234_THERMAL_ZONE_SOC1>;
+ status = "okay";
+
+ trips {
+ soc1_sw_shutdown: soc1-sw-shutdown {
+ temperature = <104500>;
+ hysteresis = <0>;
+ type = "critical";
+ };
+
+ soc1_sw_throttle: soc1-sw-throttle {
+ temperature = <99000>;
+ hysteresis = <0>;
+ type = "passive";
+ };
+ };
+
+ cooling-maps {
+ map0 {
+ trip = <&soc1_sw_throttle>;
+ cooling-device = <&cpu0_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu1_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu2_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
+ };
+
+ soc2-thermal {
+ polling-delay = <1000>;
+ polling-delay-passive = <1000>;
+ thermal-sensors = <&{/bpmp/thermal} TEGRA234_THERMAL_ZONE_SOC2>;
+ status = "okay";
+
+ trips {
+ soc2_sw_shutdown: soc2-sw-shutdown {
+ temperature = <104500>;
+ hysteresis = <0>;
+ type = "critical";
+ };
+
+ soc2_sw_throttle: soc2-sw-throttle {
+ temperature = <99000>;
+ hysteresis = <0>;
+ type = "passive";
+ };
+ };
+
+ cooling-maps {
+ map0 {
+ trip = <&soc2_sw_throttle>;
+ cooling-device = <&cpu0_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu1_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+ <&cpu2_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
+ };
+
+ tj-thermal {
+ polling-delay = <1000>;
+ polling-delay-passive = <1000>;
+ thermal-sensors = <&{/bpmp/thermal} TEGRA234_THERMAL_ZONE_TJ_MAX>;
+ status = "okay";
+
+ trips {
+ tj_sw_shutdown: tj-sw-shutdown {
+ temperature = <104500>;
+ hysteresis = <0>;
+ type = "critical";
+ };
+ };
+ };
+ };
};
@@ -2377,4 +2377,36 @@ sound {
label = "NVIDIA Jetson AGX Orin APE";
};
+
+ thermal-zones {
+ tboard-thermal {
+ polling-delay = <1000>;
+ polling-delay-passive = <1000>;
+ thermal-sensors = <&tegra_tmp451 0>;
+ status = "okay";
+
+ trips {
+ tboard_sw_shutdown: tboard-sw-shutdown {
+ temperature = <107000>;
+ hysteresis = <0>;
+ type = "critical";
+ };
+ };
+ };
+
+ tdiode-thermal {
+ polling-delay = <1000>;
+ polling-delay-passive = <1000>;
+ thermal-sensors = <&tegra_tmp451 1>;
+ status = "okay";
+
+ trips {
+ tdiode_sw_shutdown: tdiode-sw-shutdown {
+ temperature = <107000>;
+ hysteresis = <0>;
+ type = "critical";
+ };
+ };
+ };
+ };
};
@@ -8,6 +8,8 @@
#include <dt-bindings/pinctrl/pinctrl-tegra-io-pad.h>
#include <dt-bindings/power/tegra234-powergate.h>
#include <dt-bindings/reset/tegra234-reset.h>
+#include <dt-bindings/thermal/tegra234-bpmp-thermal.h>
+#include <dt-bindings/thermal/thermal.h>
/ {
compatible = "nvidia,tegra234";
@@ -3135,6 +3137,12 @@ bpmp_i2c: i2c {
#address-cells = <1>;
#size-cells = <0>;
};
+
+ thermal {
+ compatible = "nvidia,tegra186-bpmp-thermal";
+ #thermal-sensor-cells = <1>;
+ status = "disabled";
+ };
};
cpus {
@@ -3155,6 +3163,7 @@ cpu0_0: cpu@0 {
d-cache-line-size = <64>;
d-cache-sets = <256>;
next-level-cache = <&l2c0_0>;
+ #cooling-cells = <2>;
};
cpu0_1: cpu@100 {
@@ -3219,6 +3228,7 @@ cpu1_0: cpu@10000 {
d-cache-line-size = <64>;
d-cache-sets = <256>;
next-level-cache = <&l2c1_0>;
+ #cooling-cells = <2>;
};
cpu1_1: cpu@10100 {
@@ -3283,6 +3293,7 @@ cpu2_0: cpu@20000 {
d-cache-line-size = <64>;
d-cache-sets = <256>;
next-level-cache = <&l2c2_0>;
+ #cooling-cells = <2>;
};
cpu2_1: cpu@20100 {
@@ -3580,4 +3591,52 @@ timer {
interrupt-parent = <&gic>;
always-on;
};
+
+ thermal-zones {
+ cpu-thermal {
+ thermal-sensors = <&{/bpmp/thermal} TEGRA234_THERMAL_ZONE_CPU>;
+ status = "disabled";
+ };
+
+ gpu-thermal {
+ thermal-sensors = <&{/bpmp/thermal} TEGRA234_THERMAL_ZONE_GPU>;
+ status = "disabled";
+ };
+
+ cv0-thermal {
+ thermal-sensors = <&{/bpmp/thermal} TEGRA234_THERMAL_ZONE_CV0>;
+ status = "disabled";
+ };
+
+
+ cv1-thermal {
+ thermal-sensors = <&{/bpmp/thermal} TEGRA234_THERMAL_ZONE_CV1>;
+ status = "disabled";
+ };
+
+ cv2-thermal {
+ thermal-sensors = <&{/bpmp/thermal} TEGRA234_THERMAL_ZONE_CV2>;
+ status = "disabled";
+ };
+
+ soc0-thermal {
+ thermal-sensors = <&{/bpmp/thermal} TEGRA234_THERMAL_ZONE_SOC0>;
+ status = "disabled";
+ };
+
+ soc1-thermal {
+ thermal-sensors = <&{/bpmp/thermal} TEGRA234_THERMAL_ZONE_SOC1>;
+ status = "disabled";
+ };
+
+ soc2-thermal {
+ thermal-sensors = <&{/bpmp/thermal} TEGRA234_THERMAL_ZONE_SOC2>;
+ status = "disabled";
+ };
+
+ tj-thermal {
+ thermal-sensors = <&{/bpmp/thermal} TEGRA234_THERMAL_ZONE_TJ_MAX>;
+ status = "disabled";
+ };
+ };
};