[PATCH] arm64: dts: airoha: en7581: Add thermal node to to EN7581 SoC
Lorenzo Bianconi
lorenzo at kernel.org
Mon Mar 9 08:49:49 PDT 2026
Introduce thermal controller node to EN7581 SoC.
Define thermal-zones and related cpu trips and cooling-maps.
Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
---
arch/arm64/boot/dts/airoha/en7581.dtsi | 52 ++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
diff --git a/arch/arm64/boot/dts/airoha/en7581.dtsi b/arch/arm64/boot/dts/airoha/en7581.dtsi
index ff6908a76e8eb6cf91343495d1fe531a868e41fb..092c8ab0f4322552495dbe00b9e41e087876817e 100644
--- a/arch/arm64/boot/dts/airoha/en7581.dtsi
+++ b/arch/arm64/boot/dts/airoha/en7581.dtsi
@@ -4,6 +4,7 @@
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/en7523-clk.h>
#include <dt-bindings/reset/airoha,en7581-reset.h>
+#include <dt-bindings/thermal/thermal.h>
/ {
interrupt-parent = <&gic>;
@@ -74,6 +75,7 @@ cpu0: cpu at 0 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <0x0>;
+ #cooling-cells = <2>;
enable-method = "psci";
clock-frequency = <80000000>;
next-level-cache = <&l2>;
@@ -83,6 +85,7 @@ cpu1: cpu at 1 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <0x1>;
+ #cooling-cells = <2>;
enable-method = "psci";
clock-frequency = <80000000>;
next-level-cache = <&l2>;
@@ -92,6 +95,7 @@ cpu2: cpu at 2 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <0x2>;
+ #cooling-cells = <2>;
enable-method = "psci";
clock-frequency = <80000000>;
next-level-cache = <&l2>;
@@ -101,6 +105,7 @@ cpu3: cpu at 3 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <0x3>;
+ #cooling-cells = <2>;
enable-method = "psci";
clock-frequency = <80000000>;
next-level-cache = <&l2>;
@@ -124,6 +129,39 @@ timer {
<GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
};
+ thermal-zones {
+ cpu_thermal: cpu-thermal {
+ polling-delay-passive = <0>;
+ polling-delay = <0>;
+
+ thermal-sensors = <&thermal 0>;
+
+ trips {
+ cpu_hot: cpu-hot {
+ temperature = <95000>;
+ hysteresis = <1000>;
+ type = "hot";
+ };
+
+ cpu-critical {
+ temperature = <120000>;
+ hysteresis = <1000>;
+ type = "critical";
+ };
+ };
+
+ cooling-maps {
+ map0 {
+ trip = <&cpu_hot>;
+ 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>;
+ };
+ };
+ };
+ };
+
clk20m: clock-20000000 {
compatible = "fixed-clock";
#clock-cells = <0>;
@@ -173,6 +211,11 @@ spi_nand: nand at 0 {
};
};
+ chip_scu: syscon at 1fa20000 {
+ compatible = "airoha,en7581-chip-scu", "syscon";
+ reg = <0x0 0x1fa20000 0x0 0x388>;
+ };
+
scuclk: clock-controller at 1fb00000 {
compatible = "airoha,en7581-scu";
reg = <0x0 0x1fb00000 0x0 0x970>;
@@ -300,6 +343,15 @@ rng at 1faa1000 {
interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
};
+ thermal: thermal-sensor at 1efbd000 {
+ compatible = "airoha,en7581-thermal";
+ reg = <0x0 0x1efbd000 0x0 0xd5c>;
+ interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
+ airoha,chip-scu = <&chip_scu>;
+
+ #thermal-sensor-cells = <0>;
+ };
+
system-controller at 1fbf0200 {
compatible = "airoha,en7581-gpio-sysctl", "syscon",
"simple-mfd";
---
base-commit: 405c09548a695ca7be58b5b9d3ac8388630e907f
change-id: 20260309-airoha-7581-thermal-zones-6005779dacda
Best regards,
--
Lorenzo Bianconi <lorenzo at kernel.org>
More information about the Linux-mediatek
mailing list