ARM: dts: qcom: enable tsens and thermal zone mitigations for monaco

Enable different thermal zones for tsens, different cooling
devices like regulator cooling devices, lmh vdd cooling devices,
qmi cooling devices etc. for monaco.

Change-Id: I292c7d34d103c0cfe708eb63903cf21d90b26c51
This commit is contained in:
Manaf Meethalavalappu Pallikunhi 2021-05-11 21:58:33 +05:30
commit ed19b4fcd5
5 changed files with 464 additions and 0 deletions

View file

@ -51,6 +51,14 @@
<RPM_SMD_REGULATOR_LEVEL_BINNING>;
qcom,use-voltage-level;
};
cx_cdev: cx-cdev-lvl {
compatible = "qcom,regulator-cooling-device";
regulator-cdev-supply = <&VDD_CX_FLOOR_LEVEL>;
regulator-levels = <RPM_SMD_REGULATOR_LEVEL_NONE
RPM_SMD_REGULATOR_LEVEL_NOM>;
#cooling-cells = <2>;
};
};
rpm-regulator-smpa3 {
@ -178,6 +186,13 @@
qcom,use-voltage-level;
};
mx_cdev: mx-cdev-lvl {
compatible = "qcom,regulator-cooling-device";
regulator-cdev-supply = <&VDD_MXA_LEVEL>;
regulator-levels = <RPM_SMD_REGULATOR_LEVEL_NONE
RPM_SMD_REGULATOR_LEVEL_NOM>;
#cooling-cells = <2>;
};
};
rpm-regulator-ldoa7 {

View file

@ -58,3 +58,7 @@
qcom,vdd-io-voltage-level = <1800000 1800000>;
qcom,vdd-io-current-level = <0 250000>;
};
&tsens0 {
status = "disabled";
};

View file

@ -23,6 +23,15 @@
regulator-max-microvolt = <RPM_SMD_REGULATOR_LEVEL_BINNING>;
};
cx_cdev: cx-cdev-lvl {
compatible = "qcom,regulator-cooling-device";
regulator-cdev-supply = <&VDD_CX_LEVEL_AO>;
regulator-levels = <RPM_SMD_REGULATOR_LEVEL_NONE
RPM_SMD_REGULATOR_LEVEL_NOM>;
#cooling-cells = <2>;
status = "disabled";
};
S3A:
pm5100_s3: regulator-pm5100-s3 {
compatible = "qcom,stub-regulator";
@ -83,6 +92,15 @@
regulator-max-microvolt = <RPM_SMD_REGULATOR_LEVEL_BINNING>;
};
mx_cdev: mx-cdev-lvl {
compatible = "qcom,regulator-cooling-device";
regulator-cdev-supply = <&VDD_MXA_LEVEL>;
regulator-levels = <RPM_SMD_REGULATOR_LEVEL_NONE
RPM_SMD_REGULATOR_LEVEL_NOM>;
#cooling-cells = <2>;
status = "disabled";
};
VDD_LPI_CX_LEVEL:
L4A_LEVEL:
pm5100_l4_level: regulator-pm5100-l4-level {

419
qcom/monaco-thermal.dtsi Normal file
View file

@ -0,0 +1,419 @@
#include <dt-bindings/thermal/thermal_qti.h>
&cpufreq_hw {
#address-cells = <1>;
#size-cells = <1>;
lmh_dcvs0: qcom,limits-dcvs@f550800 {
compatible = "qcom,msm-hw-limits";
interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
qcom,affinity = <0>;
reg = <0xf550800 0x1000>,
<0xf521000 0x1000>;
qcom,no-cooling-device-register;
};
qcom,cpu-isolation {
compatible = "qcom,cpu-isolate";
cpu0_isolate: cpu0-isolate {
qcom,cpu = <&CPU0>;
#cooling-cells = <2>;
};
cpu1_isolate: cpu1-isolate {
qcom,cpu = <&CPU1>;
#cooling-cells = <2>;
};
cpu2_isolate: cpu2-isolate {
qcom,cpu = <&CPU2>;
#cooling-cells = <2>;
};
cpu3_isolate: cpu3-isolate {
qcom,cpu = <&CPU3>;
#cooling-cells = <2>;
};
};
};
&soc {
tsens0:tsens@4410000 {
compatible = "qcom,tsens26xx";
reg = <0x04410000 0x20>,
<0x04411000 0x140>;
reg-names = "tsens_srot_physical",
"tsens_tm_physical";
interrupts-extended = <&intc 0 275 IRQ_TYPE_LEVEL_HIGH>,
<&intc 0 190 IRQ_TYPE_LEVEL_HIGH>,
<&wakegic 89 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "tsens-upper-lower",
"tsens-critical",
"tsens-0C";
tsens-reinit-wa;
0C-sensor-num = <16>;
#thermal-sensor-cells = <1>;
};
qmi-tmd-devices {
compatible = "qcom,qmi-cooling-devices";
modem {
qcom,instance-id = <QMI_MODEM_INST_ID>;
modem_pa: modem_pa {
qcom,qmi-dev-name = "pa";
#cooling-cells = <2>;
};
modem_tj: modem_tj {
qcom,qmi-dev-name = "modem";
#cooling-cells = <2>;
};
modem_skin: modem_skin {
qcom,qmi-dev-name = "modem_skin";
#cooling-cells = <2>;
};
modem_wlan: modem_wlan {
qcom,qmi-dev-name = "wlan";
#cooling-cells = <2>;
};
};
adsp {
qcom,instance-id = <QMI_ADSP_INST_ID>;
adsp_vdd: adsp_vdd {
qcom,qmi-dev-name = "cpuv_restriction_cold";
#cooling-cells = <2>;
};
};
};
lmh_cpu_vdd: qcom,lmh-cpu-vdd@f550800 {
compatible = "qcom,lmh-cpu-vdd";
reg = <0xf550800 0x1000>;
#cooling-cells = <2>;
};
};
&thermal_zones {
gpu-step {
polling-delay-passive = <10>;
polling-delay = <0>;
thermal-governor = "step_wise";
thermal-sensors = <&tsens0 6>;
trips {
gpu_step_trip: gpu-trip {
temperature = <95000>;
hysteresis = <0>;
type = "passive";
};
gpu_cx_mon: gpu-cx-mon {
temperature = <100000>;
hysteresis = <5000>;
type = "passive";
};
};
cooling-maps {
gpu-cx-cdev1 {
trip = <&gpu_cx_mon>;
cooling-device = <&modem_tj 3 3>;
};
};
};
cpuss-0-step {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "step_wise";
thermal-sensors = <&tsens0 2>;
trips {
cpu0_2_config: cpu-0-2-config {
temperature = <110000>;
hysteresis = <10000>;
type = "passive";
};
};
cooling-maps {
cpu0_cdev {
trip = <&cpu0_2_config>;
cooling-device = <&cpu0_isolate 1 1>;
};
cpu2_cdev {
trip = <&cpu0_2_config>;
cooling-device = <&cpu2_isolate 1 1>;
};
};
};
cpuss-1-step {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "step_wise";
thermal-sensors = <&tsens0 3>;
trips {
cpu1_3_config: cpu-1-3-config {
temperature = <110000>;
hysteresis = <10000>;
type = "passive";
};
};
cooling-maps {
cpu1_cdev {
trip = <&cpu1_3_config>;
cooling-device = <&cpu1_isolate 1 1>;
};
cpu3_cdev {
trip = <&cpu1_3_config>;
cooling-device = <&cpu3_isolate 1 1>;
};
};
};
mdm-0-step {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "step_wise";
thermal-sensors = <&tsens0 4>;
trips {
mdm0_cx_mon: mdm0-cx-mon {
temperature = <100000>;
hysteresis = <5000>;
type = "passive";
};
};
cooling-maps {
mdm0-cx-cdev1 {
trip = <&mdm0_cx_mon>;
cooling-device = <&modem_tj 3 3>;
};
};
};
mdm-1-step {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "step_wise";
thermal-sensors = <&tsens0 5>;
trips {
mdm1_cx_mon: mdm1-cx-mon {
temperature = <100000>;
hysteresis = <5000>;
type = "passive";
};
};
cooling-maps {
mdm1-cx-cdev1 {
trip = <&mdm1_cx_mon>;
cooling-device = <&modem_tj 3 3>;
};
};
};
mapss-usr {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&tsens0 0>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
reset-mon-cfg {
temperature = <115000>;
hysteresis = <5000>;
type = "passive";
};
};
};
wlan-usr {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&tsens0 1>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
reset-mon-cfg {
temperature = <115000>;
hysteresis = <5000>;
type = "passive";
};
};
};
cpuss-0-usr {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&tsens0 2>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
reset-mon-cfg {
temperature = <115000>;
hysteresis = <5000>;
type = "passive";
};
};
};
cpuss-1-usr {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&tsens0 3>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
reset-mon-cfg {
temperature = <115000>;
hysteresis = <5000>;
type = "passive";
};
};
};
mdm-0-usr {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&tsens0 4>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
reset-mon-cfg {
temperature = <115000>;
hysteresis = <5000>;
type = "passive";
};
};
};
mdm-1-usr {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&tsens0 5>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
reset-mon-cfg {
temperature = <115000>;
hysteresis = <5000>;
type = "passive";
};
};
};
gpu-usr {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&tsens0 6>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
reset-mon-cfg {
temperature = <115000>;
hysteresis = <5000>;
type = "passive";
};
};
};
camera-usr {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&tsens0 7>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
reset-mon-cfg {
temperature = <115000>;
hysteresis = <5000>;
type = "passive";
};
};
};
zeroc-0-step {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-sensors = <&tsens0 16>;
thermal-governor = "step_wise";
trips {
zeroc_0_trip: active-config0 {
temperature = <1>;
hysteresis = <1>;
type = "passive";
};
};
cooling-maps {
lmh_cpu_cdev {
trip = <&zeroc_0_trip>;
cooling-device = <&lmh_cpu_vdd 1 1>;
};
cx_vdd_cdev {
trip = <&zeroc_0_trip>;
cooling-device = <&cx_cdev 1 1>;
};
mx_vdd_cdev {
trip = <&zeroc_0_trip>;
cooling-device = <&mx_cdev 1 1>;
};
adsp_vdd_cdev {
trip = <&zeroc_0_trip>;
cooling-device = <&adsp_vdd 1 1>;
};
};
};
};

View file

@ -43,6 +43,8 @@
i-cache-size = <0x8000>;
next-level-cache = <&L2_0>;
qcom,freq-domain = <&cpufreq_hw 0 4>;
qcom,lmh-dcvs = <&lmh_dcvs0>;
#cooling-cells = <2>;
L2_0: l2-cache {
compatible = "arm,arch-cache";
cache-size = <0x80000>;
@ -68,6 +70,7 @@
i-cache-size = <0x8000>;
qcom,freq-domain = <&cpufreq_hw 0 4>;
next-level-cache = <&L2_0>;
qcom,lmh-dcvs = <&lmh_dcvs0>;
L1_I_1: l1-icache {
compatible = "arm,arch-cache";
@ -88,6 +91,7 @@
i-cache-size = <0x8000>;
qcom,freq-domain = <&cpufreq_hw 0 4>;
next-level-cache = <&L2_0>;
qcom,lmh-dcvs = <&lmh_dcvs0>;
L1_I_2: l1-icache {
compatible = "arm,arch-cache";
@ -108,6 +112,7 @@
i-cache-size = <0x8000>;
qcom,freq-domain = <&cpufreq_hw 0 4>;
next-level-cache = <&L2_0>;
qcom,lmh-dcvs = <&lmh_dcvs0>;
L1_I_3: l1-icache {
compatible = "arm,arch-cache";
@ -1249,6 +1254,8 @@
};
};
thermal_zones: thermal-zones { };
system_pm_rpm {
compatible = "qcom,system-pm-rpm";
};
@ -1282,6 +1289,7 @@
#include "monaco-pm.dtsi"
#include "monaco-audio.dtsi"
#include "monaco-usb.dtsi"
#include "monaco-thermal.dtsi"
&qupv3_se6_2uart {
status = "ok"