new file mode 100644
@@ -0,0 +1,153 @@
+
+#include <dt-bindings/thermal/thermal.h>
+
+/ {
+
+ tsensor: tsensor@0,f7030700 {
+ compatible = "hisilicon,tsensor";
+ reg = <0x0 0xf7030700 0x0 0x1000>;
+ interrupts = <0 7 0x4>;
+ clocks = <&clock_sys HI6220_TSENSOR_CLK>;
+ clock-names = "thermal_clk";
+ #thermal-sensor-cells = <1>;
+
+ local_sensor {
+ hisilicon,tsensor-id = <0>;
+ hisilicon,tsensor-thres-temp = <80000>;
+ hisilicon,tsensor-reset-temp = <100000>;
+ hisilicon,tsensor-bind-irq;
+ };
+
+ acpu1_sensor {
+ hisilicon,tsensor-id = <1>;
+ hisilicon,tsensor-thres-temp = <80000>;
+ hisilicon,tsensor-reset-temp = <100000>;
+ };
+
+ acpu0_sensor {
+ hisilicon,tsensor-id = <2>;
+ hisilicon,tsensor-thres-temp = <80000>;
+ hisilicon,tsensor-reset-temp = <100000>;
+ };
+
+ gpu_sensor {
+ hisilicon,tsensor-id = <3>;
+ hisilicon,tsensor-thres-temp = <80000>;
+ hisilicon,tsensor-reset-temp = <100000>;
+ };
+ };
+
+ thermal-zones {
+ local: local {
+ /* milliseconds */
+ polling-delay-passive = <1000>;
+ /* milliseconds */
+ polling-delay = <5000>;
+
+ /* sensor ID */
+ thermal-sensors = <&tsensor 0>;
+
+ trips {
+ local_alert: local_alert {
+ /* millicelsius */
+ temperature = <70000>;
+ /* millicelsius */
+ hysteresis = <2000>;
+ type = "passive";
+ };
+ local_crit: local_crit {
+ temperature = <90000>;
+ hysteresis = <2000>;
+ type = "critical";
+ };
+ };
+
+ cooling-maps {
+ /* There are currently no cooling maps
+ because there are no cooling devices */
+ };
+ };
+
+ cluster1: cluster1 {
+ polling-delay-passive = <1000>;
+ polling-delay = <5000>;
+
+ /* sensor ID */
+ thermal-sensors = <&tsensor 1>;
+
+ trips {
+ cluster1_alert: cluster1_alert {
+ temperature = <70000>;
+ hysteresis = <2000>;
+ type = "passive";
+ };
+ cluster1_crit: cluster1_crit {
+ temperature = <90000>;
+ hysteresis = <2000>;
+ type = "critical";
+ };
+ };
+
+ cooling-maps {
+ /* There are currently no cooling maps
+ because there are no cooling devices */
+ };
+ };
+
+ cluster0: cluster0 {
+ polling-delay-passive = <1000>;
+ polling-delay = <5000>;
+
+ /* sensor ID */
+ thermal-sensors = <&tsensor 2>;
+
+ trips {
+ cluster0_alert: cluster0_alert {
+ temperature = <70000>;
+ hysteresis = <2000>;
+ type = "passive";
+ };
+ cluster0_crit: cluster0_crit {
+ temperature = <90000>;
+ hysteresis = <2000>;
+ type = "critical";
+ };
+ };
+
+ cooling-maps {
+ map0 {
+ trip = <&cluster0_alert>;
+ cooling-device =
+ <&cpu0 THERMAL_NO_LIMIT
+ THERMAL_NO_LIMIT>;
+ };
+ };
+ };
+
+ gpu: gpu {
+ polling-delay-passive = <1000>;
+ polling-delay = <5000>;
+
+ /* sensor ID */
+ thermal-sensors = <&tsensor 3>;
+
+ trips {
+ gpu_alert: gpu_alert {
+ temperature = <70000>;
+ hysteresis = <2000>;
+ type = "passive";
+ };
+ gpu_crit: gpu_crit {
+ temperature = <90000>;
+ hysteresis = <2000>;
+ type = "critical";
+ };
+ };
+
+ cooling-maps {
+ /* There are currently no cooling maps
+ because there are no cooling devices */
+ };
+ };
+ };
+}