]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ARM: dts: qcom: msm8960: Add thermal sensor (tsens)
authorRudraksha Gupta <guptarud@gmail.com>
Fri, 28 Feb 2025 01:16:55 +0000 (17:16 -0800)
committerBjorn Andersson <andersson@kernel.org>
Thu, 13 Mar 2025 22:08:37 +0000 (17:08 -0500)
Add support for the thermal sensor (tsens) on the MSM8960 by copying and
modifying the relevant nodes from the APQ8064 dtsi. These changes enable
thermal management.

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Rudraksha Gupta <guptarud@gmail.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250227-expressatt-tsens-v4-2-d70afa5a1fd0@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm/boot/dts/qcom/qcom-msm8960.dtsi

index 1a98a4a9a586164451e2777c53d978cf47ce3d24..b476ad8951194547da7451bc21e1586472179f55 100644 (file)
                reg = <0x80000000 0>;
        };
 
+       thermal-zones {
+               cpu0-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 0>;
+
+                       trips {
+                               cpu_alert0: trip0 {
+                                       temperature = <60000>;
+                                       hysteresis = <10000>;
+                                       type = "passive";
+                               };
+
+                               cpu_crit0: trip1 {
+                                       temperature = <95000>;
+                                       hysteresis = <10000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu1-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsens 1>;
+
+                       trips {
+                               cpu_alert1: trip0 {
+                                       temperature = <60000>;
+                                       hysteresis = <10000>;
+                                       type = "passive";
+                               };
+
+                               cpu_crit1: trip1 {
+                                       temperature = <95000>;
+                                       hysteresis = <10000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+
        cpu-pmu {
                compatible = "qcom,krait-pmu";
                interrupts = <GIC_PPI 10 0x304>;
                        cpu-offset = <0x80000>;
                };
 
+               qfprom: efuse@700000 {
+                       compatible = "qcom,msm8960-qfprom", "qcom,qfprom";
+                       reg = <0x00700000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       tsens_calib: calib@404 {
+                               reg = <0x404 0x10>;
+                       };
+
+                       tsens_backup: backup-calib@414 {
+                               reg = <0x414 0x10>;
+                       };
+               };
+
                msmgpio: pinctrl@800000 {
                        compatible = "qcom,msm8960-pinctrl";
                        gpio-controller;
                };
 
                gcc: clock-controller@900000 {
-                       compatible = "qcom,gcc-msm8960";
+                       compatible = "qcom,gcc-msm8960", "syscon";
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                        reg = <0x900000 0x4000>;
                                 <&pxo_board>,
                                 <&lcc PLL4>;
                        clock-names = "cxo", "pxo", "pll4";
+
+                       tsens: thermal-sensor {
+                               compatible = "qcom,msm8960-tsens";
+
+                               nvmem-cells = <&tsens_calib>, <&tsens_backup>;
+                               nvmem-cell-names = "calib", "calib_backup";
+                               interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "uplow";
+
+                               #qcom,sensors = <5>;
+                               #thermal-sensor-cells = <1>;
+                       };
                };
 
                lcc: clock-controller@28000000 {