Configure the thermals for the PA_THERM1, MSM_THERM, PA_THERM0,
RFC_CAM_THERM, CAM_FLASH_THERM and QUIET_THERM thermistors connected to
PM6150L.

Due to hardware constraints we can only register 4 zones with
pm6150l_adc_tm, the other 2 we can register via generic-adc-thermal.

The trip points can really only be considered as placeholders, more
configuration with cooling etc. can be added later.

Signed-off-by: erebion <[email protected]>
---
 .../dts/qcom/sm6350-sony-xperia-lena-pdx213.dts    | 202 +++++++++++++++++++++
 1 file changed, 202 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm6350-sony-xperia-lena-pdx213.dts 
b/arch/arm64/boot/dts/qcom/sm6350-sony-xperia-lena-pdx213.dts
index 4e9707712a651..487ef75f2f1de 100644
--- a/arch/arm64/boot/dts/qcom/sm6350-sony-xperia-lena-pdx213.dts
+++ b/arch/arm64/boot/dts/qcom/sm6350-sony-xperia-lena-pdx213.dts
@@ -12,7 +12,9 @@
 #define PMK8350_SID 6
 
 #include <dt-bindings/firmware/qcom,scm.h>
+#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
+#include <dt-bindings/input/input.h>
 #include <dt-bindings/leds/common.h>
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
@@ -70,6 +72,20 @@ lcdb_dummy: regulator-lcdb-dummy {
                regulator-boot-on;
        };
 
+       msm_therm_sensor: thermal-sensor-msm {
+               compatible = "generic-adc-thermal";
+               #thermal-sensor-cells = <0>;
+               io-channels = <&pm6150l_adc ADC5_AMUX_THM2_100K_PU>;
+               io-channel-names = "sensor-channel";
+       };
+
+       rear_cam_sensor: thermal-sensor-rear-cam {
+               compatible = "generic-adc-thermal";
+               #thermal-sensor-cells = <0>;
+               io-channels = <&pm6150l_adc ADC5_GPIO6_100K_PU>;
+               io-channel-names = "sensor-channel";
+       };
+
        touch_en_vreg: regulator-touch-en {
                compatible = "regulator-fixed";
                regulator-name = "touch_en_vreg";
@@ -115,6 +131,99 @@ active-config0 {
                        };
                };
 
+               pa0-thermal {
+                       thermal-sensors = <&pm6150l_adc_tm 1>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               pa1-thermal {
+                       thermal-sensors = <&pm6150l_adc_tm 0>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               quiet-thermal {
+                       thermal-sensors = <&pm6150l_adc_tm 3>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               rear-cam-thermal {
+                       polling-delay-passive = <1000>;
+                       polling-delay = <5000>;
+                       thermal-sensors = <&rear_cam_sensor>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               rfc-flash-thermal {
+                       thermal-sensors = <&pm6150l_adc_tm 2>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               sdm-skin-thermal {
+                       polling-delay-passive = <1000>;
+                       polling-delay = <5000>;
+                       thermal-sensors = <&msm_therm_sensor>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <45000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <55000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               xo-thermal {
+                       thermal-sensors = <&pmk8350_adc_tm 0>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
        };
 };
 
@@ -392,6 +501,99 @@ &mpss {
        status = "okay";
 };
 
+&pm6150l_gpios {
+       pm6150l_adc_default: adc-default-state {
+               pins = "gpio6", "gpio7", "gpio10";
+               function = PMIC_GPIO_FUNC_NORMAL;
+               bias-high-impedance;
+       };
+};
+
+&pm6150l_adc {
+       pinctrl-0 = <&pm6150l_adc_default>;
+       pinctrl-names = "default";
+
+       channel@4d {
+               reg = <ADC5_AMUX_THM1_100K_PU>;
+               label = "pa_therm1";
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               qcom,ratiometric;
+       };
+
+       channel@4e {
+               reg = <ADC5_AMUX_THM2_100K_PU>;
+               label = "msm_therm";
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               qcom,ratiometric;
+       };
+
+       channel@4f {
+               reg = <ADC5_AMUX_THM3_100K_PU>;
+               label = "pa_therm0";
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               qcom,ratiometric;
+       };
+
+       channel@53 {
+               reg = <ADC5_GPIO2_100K_PU>;
+               label = "rear_cam_therm";
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               qcom,ratiometric;
+       };
+
+       channel@54 {
+               reg = <ADC5_GPIO3_100K_PU>;
+               label = "rear_cam_flash_therm";
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               qcom,ratiometric;
+       };
+
+       channel@55 {
+               reg = <ADC5_GPIO4_100K_PU>;
+               label = "quiet_therm";
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               qcom,ratiometric;
+       };
+};
+
+&pm6150l_adc_tm {
+       status = "okay";
+
+       pa-therm1@0 {
+               reg = <0>;
+               io-channels = <&pm6150l_adc ADC5_AMUX_THM1_100K_PU>;
+               qcom,hw-settle-time-us = <200>;
+               qcom,ratiometric;
+       };
+
+       pa-therm0@1 {
+               reg = <1>;
+               io-channels = <&pm6150l_adc ADC5_AMUX_THM3_100K_PU>;
+               qcom,hw-settle-time-us = <200>;
+               qcom,ratiometric;
+       };
+
+       rear-cam-flash-therm@2 {
+               reg = <2>;
+               io-channels = <&pm6150l_adc ADC5_GPIO3_100K_PU>;
+               qcom,hw-settle-time-us = <200>;
+               qcom,ratiometric;
+               };
+
+       quiet-therm@3 {
+               reg = <3>;
+               io-channels = <&pm6150l_adc ADC5_GPIO4_100K_PU>;
+               qcom,hw-settle-time-us = <200>;
+               qcom,ratiometric;
+       };
+};
+
 &pm6150l_flash {
        status = "okay";
 

-- 
2.53.0

Reply via email to