arm64: dts: qcom: sm7225-fairphone-fp4: Add PM6150L thermals

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: Luca Weiss <luca.weiss@fairphone.com>
Link: https://lore.kernel.org/r/20240705-fp4-thermals-v2-2-a4870a8d084f@fairphone.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
This commit is contained in:
Luca Weiss 2024-07-05 14:40:10 +02:00 committed by Bjorn Andersson
parent 4d37847187
commit 8cf636a032

View File

@ -93,6 +93,20 @@
};
};
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_GPIO2_100K_PU>;
io-channel-names = "sensor-channel";
};
thermal-zones {
chg-skin-thermal {
thermal-sensors = <&pm7250b_adc_tm 0>;
@ -118,6 +132,30 @@
};
};
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";
};
};
};
pm8008-thermal {
polling-delay-passive = <100>;
thermal-sensors = <&pm8008>;
@ -137,6 +175,64 @@
};
};
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>;
@ -596,6 +692,91 @@
status = "okay";
};
&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";
@ -618,6 +799,14 @@
};
};
&pm6150l_gpios {
pm6150l_adc_default: adc-default-state {
pins = "gpio6", "gpio7", "gpio10";
function = PMIC_GPIO_FUNC_NORMAL;
bias-high-impedance;
};
};
&pm6150l_wled {
qcom,switching-freq = <800>;
qcom,current-limit-microamp = <20000>;