[PATCH 5/6] arm64: versal-net: Add SysMon and thermal zone
Amit Kumar Mahapatra
amit.kumar-mahapatra at amd.com
Mon Nov 2 04:21:11 PST 2026
Describe the System Monitor (SysMon) block in the PMC, which provides
on-chip voltage and temperature monitoring, and use its device
temperature channel as the sensor for a thermal zone.
SysMon channel 0 is the current maximum temperature across all active
satellites.
The thermal zone has a critical trip at 125C. Passive trips and cooling
maps, voltage channels and per-satellite temperature channels depend on
the design and are left to board files.
Signed-off-by: Amit Kumar Mahapatra <amit.kumar-mahapatra at amd.com>
---
arch/arm64/boot/dts/xilinx/versal-net.dtsi | 29 ++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/arch/arm64/boot/dts/xilinx/versal-net.dtsi b/arch/arm64/boot/dts/xilinx/versal-net.dtsi
index 21bb917bcba1..394181c9a751 100644
--- a/arch/arm64/boot/dts/xilinx/versal-net.dtsi
+++ b/arch/arm64/boot/dts/xilinx/versal-net.dtsi
@@ -735,6 +735,28 @@ versal_fpga: versal-fpga {
compatible = "xlnx,versal-fpga";
};
+ sysmon_temp: thermal-sensor {
+ compatible = "generic-adc-thermal";
+ #thermal-sensor-cells = <0>;
+ io-channels = <&sysmon0 0>;
+ io-channel-names = "sensor-channel";
+ };
+
+ thermal-zones {
+ versal_thermal: versal-thermal {
+ polling-delay = <1000>; /* milliseconds */
+ thermal-sensors = <&sysmon_temp>;
+
+ trips {
+ ot_crit: ot-crit {
+ temperature = <125000>; /* millicelsius */
+ hysteresis = <0>; /* millicelsius */
+ type = "critical";
+ };
+ };
+ };
+ };
+
amba: axi {
compatible = "simple-bus";
bootph-all;
@@ -1033,6 +1055,13 @@ spi1: spi at f1970000 {
clock-names = "ref_clk", "pclk";
};
+ sysmon0: sysmon at f1270000 {
+ compatible = "xlnx,versal-sysmon";
+ reg = <0 0xf1270000 0 0x4000>;
+ interrupts = <0 202 4>;
+ #io-channel-cells = <1>;
+ };
+
ttc0: timer at f1dc0000 {
compatible = "cdns,ttc";
status = "disabled";
--
2.34.1
More information about the linux-arm-kernel
mailing list