[PATCH v2 3/4] arm64: dts: qcom: Add PMIC thermal support for Shikra CQ2390M SoM platform
From: Jishnu Prakash
Date: Thu Jul 09 2026 - 05:45:46 EST
Add ADC channels for pa, quiet and msm thermistors along with
their ADC thermal bridge nodes and thermal zones for PMIC
thermal mitigation.
Co-developed-by: Rakesh Kota <rakesh.kota@xxxxxxxxxxxxxxxx>
Signed-off-by: Rakesh Kota <rakesh.kota@xxxxxxxxxxxxxxxx>
Signed-off-by: Jishnu Prakash <jishnu.prakash@xxxxxxxxxxxxxxxx>
---
arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi | 123 +++++++++++++++++++++++++++
1 file changed, 123 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi b/arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi
index dc3861489f64..7ebb206697ec 100644
--- a/arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi
+++ b/arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi
@@ -4,6 +4,7 @@
*/
#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/iio/qcom,spmi-vadc.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include "shikra.dtsi"
@@ -27,9 +28,131 @@ key-volume-up {
linux,can-disable;
};
};
+
+ msm_therm_bridge: msm-therm-bridge {
+ compatible = "generic-adc-thermal";
+ io-channels = <&pm4125_adc ADC5_AMUX_THM3_100K_PU>;
+ io-channel-names = "sensor-channel";
+ #thermal-sensor-cells = <0>;
+ };
+
+ pa_therm_bridge: pa-therm-bridge {
+ compatible = "generic-adc-thermal";
+ io-channels = <&pm4125_adc ADC5_AMUX_THM1_100K_PU>;
+ io-channel-names = "sensor-channel";
+ #thermal-sensor-cells = <0>;
+ };
+
+ quiet_therm_bridge: quiet-therm-bridge {
+ compatible = "generic-adc-thermal";
+ io-channels = <&pm4125_adc ADC5_AMUX_THM2_100K_PU>;
+ io-channel-names = "sensor-channel";
+ #thermal-sensor-cells = <0>;
+ };
+
+ thermal-zones {
+ sys-1-thermal {
+ polling-delay-passive = <2000>;
+ polling-delay = <0>;
+ thermal-sensors = <&pa_therm_bridge>;
+
+ trips {
+ active-config0 {
+ temperature = <80000>;
+ hysteresis = <2000>;
+ type = "hot";
+ };
+ };
+ };
+
+ sys-2-thermal {
+ polling-delay-passive = <2000>;
+ polling-delay = <0>;
+ thermal-sensors = <&quiet_therm_bridge>;
+
+ trips {
+ active-config0 {
+ temperature = <80000>;
+ hysteresis = <2000>;
+ type = "hot";
+ };
+ };
+ };
+
+ sys-3-thermal {
+ polling-delay-passive = <2000>;
+ polling-delay = <0>;
+ thermal-sensors = <&msm_therm_bridge>;
+
+ trips {
+ active-config0 {
+ temperature = <80000>;
+ hysteresis = <2000>;
+ type = "hot";
+ };
+ };
+ };
+ };
+};
+
+&pm4125_adc {
+ pinctrl-0 = <&pm4125_adc_gpio5_default>, <&pm4125_adc_gpio6_default>;
+ pinctrl-names = "default";
+
+ channel@4d {
+ reg = <ADC5_AMUX_THM1_100K_PU>;
+ label = "pa_therm";
+ qcom,ratiometric;
+ qcom,hw-settle-time = <200>;
+ qcom,pre-scaling = <1 1>;
+ };
+
+ channel@4e {
+ reg = <ADC5_AMUX_THM2_100K_PU>;
+ label = "quiet_therm";
+ qcom,ratiometric;
+ qcom,hw-settle-time = <200>;
+ qcom,pre-scaling = <1 1>;
+ };
+
+ channel@4f {
+ reg = <ADC5_AMUX_THM3_100K_PU>;
+ label = "msm_therm";
+ qcom,ratiometric;
+ qcom,hw-settle-time = <200>;
+ qcom,pre-scaling = <1 1>;
+ };
+
+ channel@54 {
+ reg = <ADC5_GPIO3_100K_PU>;
+ label = "chgr_skin";
+ qcom,ratiometric;
+ qcom,hw-settle-time = <200>;
+ qcom,pre-scaling = <1 1>;
+ };
+
+ channel@55 {
+ reg = <ADC5_GPIO4_100K_PU>;
+ label = "gnss_therm";
+ qcom,ratiometric;
+ qcom,hw-settle-time = <200>;
+ qcom,pre-scaling = <1 1>;
+ };
};
&pm4125_gpios {
+ pm4125_adc_gpio5_default: pm4125-adc-gpio5-state {
+ pins = "gpio5";
+ function = PMIC_GPIO_FUNC_NORMAL;
+ bias-high-impedance;
+ };
+
+ pm4125_adc_gpio6_default: pm4125-adc-gpio6-state {
+ pins = "gpio6";
+ function = PMIC_GPIO_FUNC_NORMAL;
+ bias-high-impedance;
+ };
+
vol_up_n: vol-up-n-state {
pins = "gpio9";
function = PMIC_GPIO_FUNC_NORMAL;
--
2.43.0