]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: qcom: sc8280xp-pmics: Add more temp-alarm devices
authorPengyu Luo <mitltlatltl@gmail.com>
Sat, 11 Jan 2025 08:32:08 +0000 (16:32 +0800)
committerBjorn Andersson <andersson@kernel.org>
Wed, 5 Feb 2025 03:14:36 +0000 (21:14 -0600)
There are 4 Qualcomm PMIC Die Temp Alarm Sensor Devices under windows os,
in separate dt files, pm8350c and pmr735a have already support temp alarm,
add the rest 2 devices for sc8280xp-pmic.

Temperature trip points are from dsdt(Temp. in tenths of degrees Kelvin).

example:
    Name (TPSV, 0x0E60) // 0x0E60 - 2730 = 950
    Method (_PSV, 0, NotSerialized)  // _PSV: Passive Temperature
    {
        Return (\_SB.TZ15.TPSV)
    }

    Name (TCRT, 0x0F28) // 0X0F28 - 2730 = 1150
    Method (_CRT, 0, NotSerialized)  // _CRT: Critical Temperature
    {
        Return (\_SB.TZ15.TCRT)
    }

Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
Link: https://lore.kernel.org/r/20250111083209.262269-2-mitltlatltl@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/sc8280xp-pmics.dtsi

index c19fb9c39ed998d492665f55cb38d4288acf1ebe..307df1d3dcd2ebe6ebf3b484aa9ad0f79271a1f5 100644 (file)
                        };
                };
 
+               pmc8280c_thermal: pmc8280c-thermal {
+                       polling-delay-passive = <100>;
+
+                       thermal-sensors = <&pmc8280c_temp_alarm>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
                pm8280_2_thermal: pm8280-2-thermal {
                        polling-delay-passive = <100>;
 
                                };
                        };
                };
+
+               pmr735a_thermal: pmr735a-thermal {
+                       polling-delay-passive = <100>;
+
+                       thermal-sensors = <&pmr735a_temp_alarm>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
        };
 };
 
                #address-cells = <1>;
                #size-cells = <0>;
 
+               pmc8280c_temp_alarm: temp-alarm@a00 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0xa00>;
+                       interrupts-extended = <&spmi_bus 0x2 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       #thermal-sensor-cells = <0>;
+               };
+
                pmc8280c_gpios: gpio@8800 {
                        compatible = "qcom,pm8350c-gpio", "qcom,spmi-gpio";
                        reg = <0x8800>;
                #address-cells = <1>;
                #size-cells = <0>;
 
+               pmr735a_temp_alarm: temp-alarm@a00 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0xa00>;
+                       interrupts-extended = <&spmi_bus 0x4 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       io-channels = <&pmk8280_vadc PMR735A_ADC7_DIE_TEMP>;
+                       io-channel-names = "thermal";
+                       #thermal-sensor-cells = <0>;
+               };
+
                pmr735a_gpios: gpio@8800 {
                        compatible = "qcom,pmr735a-gpio", "qcom,spmi-gpio";
                        reg = <0x8800>;