diff --git a/qcom/pmih010x.dtsi b/qcom/pmih010x.dtsi index 74b13279..840166db 100644 --- a/qcom/pmih010x.dtsi +++ b/qcom/pmih010x.dtsi @@ -236,6 +236,24 @@ qcom,wf-brake-disable; }; }; + + pmih010x_bcl: bcl@4700 { + compatible = "qcom,bcl-v5"; + reg = <0x4700 0x100>; + interrupts = <0x7 0x47 0x0 IRQ_TYPE_NONE>, + <0x7 0x47 0x1 IRQ_TYPE_NONE>, + <0x7 0x47 0x2 IRQ_TYPE_NONE>; + interrupt-names = "bcl-lvl0", + "bcl-lvl1", + "bcl-lvl2"; + qcom,pmic7-threshold; + #thermal-sensor-cells = <1>; + }; + + bcl_soc: bcl-soc { + compatible = "qcom,msm-bcl-soc"; + #thermal-sensor-cells = <0>; + }; }; }; @@ -293,4 +311,136 @@ }; }; }; + + pmih010x-ibat-lvl0 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&pmih010x_bcl 0>; + + trips { + ibat_lvl0:ibat-lvl0 { + temperature = <13500>; + hysteresis = <200>; + type = "passive"; + }; + }; + }; + + pmih010x-ibat-lvl1 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&pmih010x_bcl 1>; + + trips { + ibat_lvl1:ibat-lvl1 { + temperature = <15000>; + hysteresis = <200>; + type = "passive"; + }; + }; + }; + + pmih010x-bcl-lvl0 { + polling-delay-passive = <100>; + polling-delay = <0>; + thermal-sensors = <&pmih010x_bcl 5>; + + trips { + thermal-engine-trip { + temperature = <100>; + hysteresis = <0>; + type = "passive"; + }; + + thermal-hal-trip { + temperature = <100>; + hysteresis = <0>; + type = "passive"; + }; + + b_bcl_lvl0: b-bcl-lvl0 { + temperature = <1>; + hysteresis = <1>; + type = "passive"; + }; + }; + }; + + pmih010x-bcl-lvl1 { + polling-delay-passive = <100>; + polling-delay = <0>; + thermal-sensors = <&pmih010x_bcl 6>; + + trips { + thermal-engine-trip { + temperature = <100>; + hysteresis = <0>; + type = "passive"; + }; + + thermal-hal-trip { + temperature = <100>; + hysteresis = <0>; + type = "passive"; + }; + + b_bcl_lvl1: b-bcl-lvl1 { + temperature = <1>; + hysteresis = <1>; + type = "passive"; + }; + }; + }; + + pmih010x-bcl-lvl2 { + polling-delay-passive = <100>; + polling-delay = <0>; + thermal-sensors = <&pmih010x_bcl 7>; + + trips { + thermal-engine-trip { + temperature = <100>; + hysteresis = <0>; + type = "passive"; + }; + + thermal-hal-trip { + temperature = <100>; + hysteresis = <0>; + type = "passive"; + }; + + b_bcl_lvl2: b-bcl-lvl2 { + temperature = <1>; + hysteresis = <1>; + type = "passive"; + }; + }; + }; + + socd { + polling-delay-passive = <100>; + polling-delay = <0>; + thermal-sensors = <&bcl_soc>; + + trips { + thermal-engine-trip { + temperature = <100>; + hysteresis = <0>; + type = "passive"; + }; + + thermal-hal-trip { + temperature = <100>; + hysteresis = <0>; + type = "passive"; + }; + + socd_trip: socd-trip { + temperature = <90>; + hysteresis = <0>; + type = "passive"; + }; + }; + }; }; diff --git a/qcom/sun-cdp.dtsi b/qcom/sun-cdp.dtsi index e513c217..1429e454 100644 --- a/qcom/sun-cdp.dtsi +++ b/qcom/sun-cdp.dtsi @@ -1,6 +1,6 @@ // SPDX-License-Identifier: BSD-3-Clause /* - * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved. */ #include @@ -8,6 +8,7 @@ #include #include "sun-pmic-overlay.dtsi" +#include "sun-thermal-overlay.dtsi" &soc { gpio_keys { diff --git a/qcom/sun-mtp.dtsi b/qcom/sun-mtp.dtsi index df2c37d1..29fc02db 100644 --- a/qcom/sun-mtp.dtsi +++ b/qcom/sun-mtp.dtsi @@ -1,6 +1,6 @@ // SPDX-License-Identifier: BSD-3-Clause /* - * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved. */ #include @@ -8,6 +8,7 @@ #include #include "sun-pmic-overlay.dtsi" +#include "sun-thermal-overlay.dtsi" &soc { gpio_keys { diff --git a/qcom/sun-qrd.dtsi b/qcom/sun-qrd.dtsi index d8d798cb..7b7cd1f1 100644 --- a/qcom/sun-qrd.dtsi +++ b/qcom/sun-qrd.dtsi @@ -1,6 +1,6 @@ // SPDX-License-Identifier: BSD-3-Clause /* - * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved. */ #include @@ -8,6 +8,7 @@ #include #include "sun-pmic-overlay.dtsi" +#include "sun-thermal-overlay.dtsi" &soc { gpio_keys { diff --git a/qcom/sun-thermal-modem.dtsi b/qcom/sun-thermal-modem.dtsi index c6dddf92..1a7b2dff 100644 --- a/qcom/sun-thermal-modem.dtsi +++ b/qcom/sun-thermal-modem.dtsi @@ -116,6 +116,11 @@ qcom,qmi-dev-name = "cpuv_restriction_cold"; #cooling-cells = <2>; }; + + modem_bcl: modem_bcl { + qcom,qmi-dev-name = "bcl"; + #cooling-cells = <2>; + }; }; }; diff --git a/qcom/sun-thermal-overlay.dtsi b/qcom/sun-thermal-overlay.dtsi new file mode 100644 index 00000000..65af4a4b --- /dev/null +++ b/qcom/sun-thermal-overlay.dtsi @@ -0,0 +1,112 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +#include + +&thermal_zones { + socd { + cooling-maps { + socd_apc1 { + trip = <&socd_trip>; + cooling-device = <&APC1_MX_CX_PAUSE 1 1>; + }; + + socd_cdsp1 { + trip = <&socd_trip>; + cooling-device = <&cdsp_sw 4 4>; + }; + + socd_gpu0 { + trip = <&socd_trip>; + cooling-device = <&msm_gpu 4 4>; + }; + }; + }; + + pmih010x-bcl-lvl1 { + cooling-maps { + lbat_modem1 { + trip = <&b_bcl_lvl1>; + cooling-device = <&modem_bcl 2 2>; + }; + + lbat_cdsp1 { + trip = <&b_bcl_lvl1>; + cooling-device = <&cdsp_sw 4 4>; + }; + + lbat_gpu1 { + trip = <&b_bcl_lvl1>; + cooling-device = <&msm_gpu 4 4>; + }; + }; + }; + + pmih010x-bcl-lvl2 { + cooling-maps { + lbat_cdsp2 { + trip = <&b_bcl_lvl2>; + cooling-device = <&cdsp_sw 5 THERMAL_NO_LIMIT>; + }; + + lbat_gpu2 { + trip = <&b_bcl_lvl2>; + cooling-device = <&msm_gpu 5 THERMAL_NO_LIMIT>; + }; + }; + }; + + pm8550-bcl-lvl0 { + cooling-maps { + vph_modem0 { + trip = <&bcl_lvl0>; + cooling-device = <&modem_bcl 1 1>; + }; + + vph_cdsp0 { + trip = <&bcl_lvl0>; + cooling-device = <&cdsp_sw 2 2>; + }; + + vph_gpu0 { + trip = <&bcl_lvl0>; + cooling-device = <&msm_gpu 2 2>; + }; + }; + }; + + pm8550-bcl-lvl1 { + cooling-maps { + vph_modem1 { + trip = <&bcl_lvl1>; + cooling-device = <&modem_bcl 2 2>; + }; + + vph_cdsp1 { + trip = <&bcl_lvl1>; + cooling-device = <&cdsp_sw 4 4>; + }; + + vph_gpu1 { + trip = <&bcl_lvl1>; + cooling-device = <&msm_gpu 4 4>; + }; + }; + }; + + pm8550-bcl-lvl2 { + cooling-maps { + vph_cdsp2 { + trip = <&bcl_lvl2>; + cooling-device = <&cdsp_sw 5 THERMAL_NO_LIMIT>; + }; + + vph_gpu2 { + trip = <&bcl_lvl2>; + cooling-device = <&msm_gpu 5 THERMAL_NO_LIMIT>; + }; + }; + }; +};