[PATCH 6/6] arm64: dts: qcom: hamoa: add thermal hw-bin support
From: Gaurav Kohli
Date: Fri Oct 02 2026 - 06:53:12 EST
From: Amit Kucheria <amit.kucheria@xxxxxxxxxxxxxxxx>
hamoa-based SoCs expose their manufacturing bin in a single i-temp bit
of a qfprom fuse. Add the i-temp nvmem cell to the qfprom node
and wire the tsens controllers to it so the tsens driver can feed
the bin to the thermal core.
Use that bin for the GPU passive trip points so industrial-temp
parts keep the higher 105C threshold without a board-specific
override.
Signed-off-by: Amit Kucheria <amit.kucheria@xxxxxxxxxxxxxxxx>
Co-developed-by: Gaurav Kohli <gaurav.kohli@xxxxxxxxxxxxxxxx>
Signed-off-by: Gaurav Kohli <gaurav.kohli@xxxxxxxxxxxxxxxx>
---
arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts | 66 ------------------------------
arch/arm64/boot/dts/qcom/hamoa.dtsi | 41 +++++++++++++++----
2 files changed, 33 insertions(+), 74 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts b/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
index 776bded3a312..03d753a0ab74 100644
--- a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
+++ b/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
@@ -1553,69 +1553,3 @@ &usb_mp_hsphy0 {
&usb_mp_hsphy1 {
phys = <&eusb6_repeater>;
};
-
-&thermal_zones {
- gpuss-0-thermal {
- trips {
- trip-point0 {
- temperature = <105000>;
- };
- };
- };
-
- gpuss-1-thermal {
- trips {
- trip-point0 {
- temperature = <105000>;
- };
- };
- };
-
- gpuss-2-thermal {
- trips {
- trip-point0 {
- temperature = <105000>;
- };
- };
- };
-
- gpuss-3-thermal {
- trips {
- trip-point0 {
- temperature = <105000>;
- };
- };
- };
-
- gpuss-4-thermal {
- trips {
- trip-point0 {
- temperature = <105000>;
- };
- };
- };
-
- gpuss-5-thermal {
- trips {
- trip-point0 {
- temperature = <105000>;
- };
- };
- };
-
- gpuss-6-thermal {
- trips {
- trip-point0 {
- temperature = <105000>;
- };
- };
- };
-
- gpuss-7-thermal {
- trips {
- trip-point0 {
- temperature = <105000>;
- };
- };
- };
-};
diff --git a/arch/arm64/boot/dts/qcom/hamoa.dtsi b/arch/arm64/boot/dts/qcom/hamoa.dtsi
index fcd88e5f5d7e..c81f4bbd5b90 100644
--- a/arch/arm64/boot/dts/qcom/hamoa.dtsi
+++ b/arch/arm64/boot/dts/qcom/hamoa.dtsi
@@ -2766,6 +2766,9 @@ tsens0: thermal-sensor@c271000 {
interrupt-names = "uplow",
"critical";
+ nvmem-cells = <&i_temp>;
+ nvmem-cell-names = "i-temp";
+
#qcom,sensors = <16>;
#thermal-sensor-cells = <1>;
@@ -2781,6 +2784,9 @@ tsens1: thermal-sensor@c272000 {
interrupt-names = "uplow",
"critical";
+ nvmem-cells = <&i_temp>;
+ nvmem-cell-names = "i-temp";
+
#qcom,sensors = <16>;
#thermal-sensor-cells = <1>;
@@ -2796,6 +2802,9 @@ tsens2: thermal-sensor@c273000 {
interrupt-names = "uplow",
"critical";
+ nvmem-cells = <&i_temp>;
+ nvmem-cell-names = "i-temp";
+
#qcom,sensors = <16>;
#thermal-sensor-cells = <1>;
@@ -2811,6 +2820,9 @@ tsens3: thermal-sensor@c274000 {
interrupt-names = "uplow",
"critical";
+ nvmem-cells = <&i_temp>;
+ nvmem-cell-names = "i-temp";
+
#qcom,sensors = <16>;
#thermal-sensor-cells = <1>;
@@ -8809,6 +8821,11 @@ gpu_speed_bin: gpu-speed-bin@119 {
reg = <0x119 0x2>;
bits = <7 8>;
};
+ i_temp: i-temp@180 {
+ reg = <0x180 0x4>;
+ /* bits = <offset width>: 1 bit at offset 0 */
+ bits = <0 1>;
+ };
};
pmu@24091000 {
@@ -9669,7 +9686,8 @@ map0 {
trips {
gpuss0_alert0: trip-point0 {
- temperature = <95000>;
+ temperature-bin = <95000 105000>;
+ thermal-hw-bin = <0x1>, <0x2>;
hysteresis = <1000>;
type = "passive";
};
@@ -9696,7 +9714,8 @@ map0 {
trips {
gpuss1_alert0: trip-point0 {
- temperature = <95000>;
+ temperature-bin = <95000 105000>;
+ thermal-hw-bin = <0x1>, <0x2>;
hysteresis = <1000>;
type = "passive";
};
@@ -9723,7 +9742,8 @@ map0 {
trips {
gpuss2_alert0: trip-point0 {
- temperature = <95000>;
+ temperature-bin = <95000 105000>;
+ thermal-hw-bin = <0x1>, <0x2>;
hysteresis = <1000>;
type = "passive";
};
@@ -9750,7 +9770,8 @@ map0 {
trips {
gpuss3_alert0: trip-point0 {
- temperature = <95000>;
+ temperature-bin = <95000 105000>;
+ thermal-hw-bin = <0x1>, <0x2>;
hysteresis = <1000>;
type = "passive";
};
@@ -9777,7 +9798,8 @@ map0 {
trips {
gpuss4_alert0: trip-point0 {
- temperature = <95000>;
+ temperature-bin = <95000 105000>;
+ thermal-hw-bin = <0x1>, <0x2>;
hysteresis = <1000>;
type = "passive";
};
@@ -9804,7 +9826,8 @@ map0 {
trips {
gpuss5_alert0: trip-point0 {
- temperature = <95000>;
+ temperature-bin = <95000 105000>;
+ thermal-hw-bin = <0x1>, <0x2>;
hysteresis = <1000>;
type = "passive";
};
@@ -9831,7 +9854,8 @@ map0 {
trips {
gpuss6_alert0: trip-point0 {
- temperature = <95000>;
+ temperature-bin = <95000 105000>;
+ thermal-hw-bin = <0x1>, <0x2>;
hysteresis = <1000>;
type = "passive";
};
@@ -9858,7 +9882,8 @@ map0 {
trips {
gpuss7_alert0: trip-point0 {
- temperature = <95000>;
+ temperature-bin = <95000 105000>;
+ thermal-hw-bin = <0x1>, <0x2>;
hysteresis = <1000>;
type = "passive";
};
--
2.34.1