| // SPDX-License-Identifier: GPL-2.0-only |
| /* |
| * Copyright 2023 Google LLC. |
| * |
| */ |
| |
| /dts-v1/; |
| / { |
| /* List of SoCs that this device tree is compatible with */ |
| soc_compatible { |
| A0_FOPLP { |
| description = "A0,FOPLP"; |
| product_id = <0x09865>; |
| major = <0x0>; |
| minor = <0x0>; |
| pkg_mode = <0x0>; |
| }; |
| }; |
| }; |
| |
| #include "zuma-a0.dtsi" |
| |
| / { |
| |
| tmuctrl_0: BIG@100A0000 { |
| compatible = "samsung,gs-tmu-v3"; |
| reg = <0x0 0x100A0000 0x800>; |
| interrupts = <GIC_SPI IRQ_TMU_TOP_INTREQ_MISC IRQ_TYPE_LEVEL_HIGH>; |
| tmu_name = "BIG"; |
| id = <0>; |
| ect_nouse; |
| #thermal-sensor-cells = <0>; |
| |
| use-pi-thermal; |
| polling_delay_on = <25>; |
| polling_delay_off = <0>; |
| k_po = <30>; |
| k_pu = <30>; |
| k_i = <50>; |
| i_max = <5>; |
| integral_cutoff = <10>; |
| sustainable_power = <2000>; |
| control_temp_step = <1000>; // mC per second |
| |
| early_throttle_enable; |
| early_throttle_k_p = <50>; |
| early_throttle_offset = <10>; // in Celsius |
| |
| use-hardlimit-pid; |
| |
| tmu_work_affinity = "0-8"; |
| |
| use-acpm-gov; |
| irq_stepwise_gain = <2>; |
| timer_stepwise_gain = <1>; |
| thermal_pressure_time_window = <100>; |
| |
| mapped_cpus = "8"; |
| pressure_index = <0>; |
| |
| use-acpm-mpmm-throttle; |
| mpmm_enable = <0x1>; |
| mpmm_throttle_level = <0x4>; |
| mpmm_clr_throttle_level = <0x6>; |
| }; |
| |
| tmuctrl_1: MID@100A0000 { |
| compatible = "samsung,gs-tmu-v3"; |
| reg = <0x0 0x100A0000 0x800>; |
| interrupts = <GIC_SPI IRQ_TMU_TOP_INTREQ_MISC IRQ_TYPE_LEVEL_HIGH>; |
| tmu_name = "MID"; |
| id = <1>; |
| ect_nouse; |
| #thermal-sensor-cells = <0>; |
| |
| use-pi-thermal; |
| polling_delay_on = <25>; |
| polling_delay_off = <0>; |
| k_po = <60>; |
| k_pu = <60>; |
| k_i = <20>; |
| i_max = <5>; |
| integral_cutoff = <20>; |
| sustainable_power = <1000>; |
| control_temp_step = <1000>; // mC per second |
| |
| tmu_work_affinity = "0-8"; |
| |
| use-acpm-gov; |
| irq_stepwise_gain = <2>; |
| timer_stepwise_gain = <1>; |
| thermal_pressure_time_window = <100>; |
| |
| mapped_cpus = "4-7"; |
| pressure_index = <1>; |
| |
| use-acpm-mpmm-throttle; |
| mpmm_enable = <0xF>; |
| mpmm_throttle_level = <0x1AA>; |
| mpmm_clr_throttle_level = <0x100>; |
| }; |
| |
| tmuctrl_2: LITTLE@100A0000 { |
| compatible = "samsung,gs-tmu-v3"; |
| reg = <0x0 0x100A0000 0x800>; |
| interrupts = <GIC_SPI IRQ_TMU_TOP_INTREQ_MISC IRQ_TYPE_LEVEL_HIGH>; |
| tmu_name = "LITTLE"; |
| id = <2>; |
| ect_nouse; |
| #thermal-sensor-cells = <0>; |
| |
| use-pi-thermal; |
| polling_delay_on = <50>; |
| polling_delay_off = <0>; |
| k_po = <68>; |
| k_pu = <68>; |
| k_i = <22>; |
| i_max = <5>; |
| integral_cutoff = <20>; |
| sustainable_power = <200>; |
| control_temp_step = <1000>; // mC per second |
| |
| tmu_work_affinity = "0-8"; |
| |
| use-acpm-gov; |
| irq_stepwise_gain = <2>; |
| timer_stepwise_gain = <1>; |
| thermal_pressure_time_window = <100>; |
| |
| mapped_cpus = "0-3"; |
| pressure_index = <2>; |
| |
| mpmm_enable = <0x0>; |
| mpmm_throttle_level = <0x1AA>; |
| mpmm_clr_throttle_level = <0x1AA>; |
| }; |
| |
| tmuctrl_3: G3D@100B0000 { |
| compatible = "samsung,gs-tmu-v3"; |
| reg = <0x0 0x100B0000 0x800>; |
| interrupts = <GIC_SPI IRQ_TMU_SUB_INTREQ_MISC IRQ_TYPE_LEVEL_HIGH>; |
| tmu_name = "G3D"; |
| id = <3>; |
| ect_nouse; |
| #thermal-sensor-cells = <0>; |
| |
| use-pi-thermal; |
| polling_delay_on = <50>; |
| polling_delay_off = <0>; |
| k_po = <60>; |
| k_pu = <60>; |
| k_i = <20>; |
| i_max = <5>; |
| integral_cutoff = <20>; |
| sustainable_power = <200>; |
| control_temp_step = <1000>; // mC per second |
| |
| tmu_work_affinity = "0-8"; |
| |
| use-acpm-gov; |
| irq_stepwise_gain = <2>; |
| timer_stepwise_gain = <1>; |
| }; |
| |
| tmuctrl_4: ISP@100B0000 { |
| compatible = "samsung,gs-tmu-v3"; |
| reg = <0x0 0x100B0000 0x800>; |
| interrupts = <GIC_SPI IRQ_TMU_SUB_INTREQ_MISC IRQ_TYPE_LEVEL_HIGH>; |
| tmu_name = "ISP"; |
| id = <4>; |
| ect_nouse; |
| #thermal-sensor-cells = <0>; |
| |
| tmu_work_affinity = "0-8"; |
| }; |
| |
| tmuctrl_5: TPU@100B0000 { |
| compatible = "samsung,gs-tmu-v3"; |
| reg = <0x0 0x100B0000 0x800>; |
| interrupts = <GIC_SPI IRQ_TMU_SUB_INTREQ_MISC IRQ_TYPE_LEVEL_HIGH>; |
| tmu_name = "TPU"; |
| id = <5>; |
| ect_nouse; |
| #thermal-sensor-cells = <0>; |
| |
| use-pi-thermal; |
| polling_delay_on = <50>; |
| polling_delay_off = <0>; |
| k_po = <1>; |
| k_pu = <1>; |
| k_i = <1>; |
| i_max = <5>; |
| integral_cutoff = <20>; |
| sustainable_power = <200>; |
| control_temp_step = <1000>; // mC per second |
| |
| tmu_work_affinity = "0-8"; |
| |
| use-acpm-gov; |
| irq_stepwise_gain = <2>; |
| timer_stepwise_gain = <1>; |
| }; |
| |
| tmuctrl_6: AUR@100B0000 { |
| compatible = "samsung,gs-tmu-v3"; |
| reg = <0x0 0x100B0000 0x800>; |
| interrupts = <GIC_SPI IRQ_TMU_SUB_INTREQ_MISC IRQ_TYPE_LEVEL_HIGH>; |
| tmu_name = "AUR"; |
| id = <6>; |
| ect_nouse; |
| #thermal-sensor-cells = <0>; |
| tmu_work_affinity = "0-8"; |
| polling_delay_on = <50>; |
| |
| use-acpm-gov; |
| irq_stepwise_gain = <2>; |
| timer_stepwise_gain = <1>; |
| }; |
| |
| thermal_zones: thermal-zones { |
| big_thermal: BIG { |
| zone_name = "BIG_THERMAL"; |
| polling-delay-passive = <0>; |
| polling-delay = <0>; |
| thermal-sensors = <&tmuctrl_0>; |
| |
| trips { |
| big_cold: big-cold { |
| temperature = <20000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| big_switch_on: big-switch-on { |
| temperature = <75000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| big_control_temp: big-control-temp { |
| temperature = <95000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "passive"; |
| }; |
| big_alert1: big-alert1 { |
| temperature = <98000>; /* millicelsius */ |
| hysteresis = <98000>; /* 98C to avoid falling edge irq */ |
| type = "active"; |
| }; |
| big_early_throttle: big-early_throttle { |
| temperature = <85000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| big_sw_max_effort: big-sw_max_effort { |
| temperature = <102000>; /* millicelsius */ |
| hysteresis = <2000>; /* millicelsius */ |
| type = "active"; |
| }; |
| big_dfs: big-dfs { |
| temperature = <105000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| big_hot: big-hot { |
| temperature = <115000>; /* millicelsius */ |
| hysteresis = <3000>; /* millicelsius */ |
| type = "hot"; |
| }; |
| }; |
| cooling-maps { |
| map0 { |
| trip = <&big_control_temp>; |
| cooling-device = <&cpufreq_domain2 0 0>; |
| }; |
| }; |
| }; |
| mid_thermal: MID { |
| zone_name = "MID_THERMAL"; |
| polling-delay-passive = <0>; |
| polling-delay = <0>; |
| thermal-sensors = <&tmuctrl_1>; |
| |
| trips { |
| mid_cold: mid-cold { |
| temperature = <20000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| mid_switch_on: mid-switch-on { |
| temperature = <75000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| mid_control_temp: mid-control-temp { |
| temperature = <95000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "passive"; |
| }; |
| mid_alert1: mid-alert1 { |
| temperature = <98000>; /* millicelsius */ |
| hysteresis = <98000>; /* 98C to avoid falling edge irq */ |
| type = "active"; |
| }; |
| mid_alert2: mid-alert2 { |
| temperature = <100000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "passive"; |
| }; |
| mid_sw_max_effort: mid-sw_max_effort { |
| temperature = <102000>; /* millicelsius */ |
| hysteresis = <2000>; /* millicelsius */ |
| type = "active"; |
| }; |
| mid_dfs: mid-dfs { |
| temperature = <105000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| mid_hot: mid-hot { |
| temperature = <115000>; /* millicelsius */ |
| hysteresis = <3000>; /* millicelsius */ |
| type = "hot"; |
| }; |
| }; |
| cooling-maps { |
| map0 { |
| trip = <&mid_control_temp>; |
| cooling-device = <&cpufreq_domain1 0 0>; |
| }; |
| }; |
| }; |
| little_thermal: LITTLE { |
| zone_name = "LITTLE_THERMAL"; |
| polling-delay-passive = <0>; |
| polling-delay = <0>; |
| thermal-sensors = <&tmuctrl_2>; |
| |
| trips { |
| little_cold: little-cold { |
| temperature = <20000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| little_switch_on: little-switch-on { |
| temperature = <75000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| little_control_temp: little-control-temp { |
| temperature = <100000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "passive"; |
| }; |
| little_alert1: little-alert1 { |
| temperature = <102000>; /* millicelsius */ |
| hysteresis = <102000>; /* 102C to avoid falling edge irq */ |
| type = "active"; |
| }; |
| little_alert2: little-alert2 { |
| temperature = <103000>; /* millicelsius */ |
| hysteresis = <1000>; /* millicelsius */ |
| type = "passive"; |
| }; |
| little_sw_max_effort: little-sw_max_effort { |
| temperature = <104000>; /* millicelsius */ |
| hysteresis = <1000>; /* millicelsius */ |
| type = "passive"; |
| }; |
| little_dfs: little-dfs { |
| temperature = <105000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| little_hot: little-hot { |
| temperature = <115000>; /* millicelsius */ |
| hysteresis = <3000>; /* millicelsius */ |
| type = "hot"; |
| }; |
| }; |
| cooling-maps { |
| map0 { |
| trip = <&little_control_temp>; |
| cooling-device = <&cpufreq_domain0 0 0>; |
| }; |
| }; |
| }; |
| gpu_thermal: G3D { |
| zone_name = "G3D_THERMAL"; |
| polling-delay-passive = <0>; |
| polling-delay = <0>; |
| thermal-sensors = <&tmuctrl_3>; |
| |
| trips { |
| gpu_cold: gpu-cold { |
| temperature = <20000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| gpu_switch_on: gpu-switch-on { |
| temperature = <80000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| gpu_control_temp: gpu-control-temp { |
| temperature = <100000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "passive"; |
| }; |
| gpu_alert1: gpu-alert1 { |
| temperature = <102000>; /* millicelsius */ |
| hysteresis = <4000>; /* millicelsius */ |
| type = "passive"; |
| }; |
| gpu_alert2: gpu-alert2 { |
| temperature = <103000>; /* millicelsius */ |
| hysteresis = <103000>; /* 103C to avoid falling edge irq */ |
| type = "active"; |
| }; |
| gpu_sw_max_effort: gpu-sw_max_effort { |
| temperature = <107000>; /* millicelsius */ |
| hysteresis = <2000>; /* millicelsius */ |
| type = "active"; |
| }; |
| gpu_dfs: gpu-dfs { |
| temperature = <108000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| gpu_hot: gpu-hot { |
| temperature = <115000>; /* millicelsius */ |
| hysteresis = <3000>; /* millicelsius */ |
| type = "hot"; |
| }; |
| }; |
| cooling-maps { |
| map0 { |
| trip = <&gpu_control_temp>; |
| cooling-device = <&mali |
| THERMAL_NO_LIMIT |
| THERMAL_NO_LIMIT>; |
| }; |
| }; |
| }; |
| isp_thermal: ISP { |
| zone_name = "ISP_THERMAL"; |
| polling-delay-passive = <0>; |
| polling-delay = <0>; |
| thermal-sensors = <&tmuctrl_4>; |
| |
| trips { |
| isp_alert0: isp-alert0 { |
| temperature = <20000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| isp_alert1: isp-alert1 { |
| temperature = <80000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| isp_alert2: isp-alert2 { |
| temperature = <100000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "passive"; |
| }; |
| isp_alert3: isp-alert3 { |
| temperature = <102000>; /* millicelsius */ |
| hysteresis = <4000>; /* millicelsius */ |
| type = "passive"; |
| }; |
| isp_alert4: isp-alert4 { |
| temperature = <103000>; /* millicelsius */ |
| hysteresis = <103000>; /* 103C to avoid falling edge irq */ |
| type = "active"; |
| }; |
| isp_alert5: isp-alert5 { |
| temperature = <107000>; /* millicelsius */ |
| hysteresis = <107000>; /* 107C to avoid falling edge irq */ |
| type = "active"; |
| }; |
| isp_alert6: isp-alert6 { |
| temperature = <108000>; /* millicelsius */ |
| hysteresis = <108000>; /* 108C to avoid falling edge irq */ |
| type = "active"; |
| }; |
| isp_hot: isp-hot { |
| temperature = <115000>; /* millicelsius */ |
| hysteresis = <3000>; /* millicelsius */ |
| type = "hot"; |
| }; |
| }; |
| }; |
| tpu_thermal: TPU { |
| zone_name = "TPU_THERMAL"; |
| polling-delay-passive = <0>; |
| polling-delay = <0>; |
| thermal-sensors = <&tmuctrl_5>; |
| |
| trips { |
| tpu_cold: tpu-cold { |
| temperature = <20000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| tpu_switch_on: tpu-switch-on { |
| temperature = <80000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| tpu_control_temp: tpu-control-temp { |
| temperature = <100000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "passive"; |
| }; |
| tpu_alert1: tpu-alert1 { |
| temperature = <102000>; /* millicelsius */ |
| hysteresis = <4000>; /* millicelsius */ |
| type = "passive"; |
| }; |
| tpu_alert2: tpu-alert2 { |
| temperature = <103000>; /* millicelsius */ |
| hysteresis = <103000>; /* 103C to avoid falling edge irq */ |
| type = "active"; |
| }; |
| tpu_sw_max_effort: tpu-sw-max-effort { |
| temperature = <107000>; /* millicelsius */ |
| hysteresis = <2000>; /* millicelsius */ |
| type = "active"; |
| }; |
| tpu_dfs: tpu-dfs { |
| temperature = <108000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| tpu_hot: tpu-hot { |
| temperature = <115000>; /* millicelsius */ |
| hysteresis = <3000>; /* millicelsius */ |
| type = "hot"; |
| }; |
| }; |
| cooling-maps { |
| map0 { |
| trip = <&tpu_control_temp>; |
| cooling-device = <&tpu_cooling 0 0>; |
| }; |
| }; |
| }; |
| aur_thermal: AUR { |
| zone_name = "AUR_THERMAL"; |
| polling-delay-passive = <0>; |
| polling-delay = <0>; |
| thermal-sensors = <&tmuctrl_6>; |
| |
| trips { |
| aur_cold: aur-cold { |
| temperature = <20000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| aur_switch_on: aur-switch-on { |
| temperature = <80000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| aur_control_temp: aur-control-temp { |
| temperature = <100000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "passive"; |
| }; |
| aur_alert1: aur-alert1 { |
| temperature = <102000>; /* millicelsius */ |
| hysteresis = <4000>; /* millicelsius */ |
| type = "passive"; |
| }; |
| aur_alert2: aur-alert2 { |
| temperature = <103000>; /* millicelsius */ |
| hysteresis = <103000>; /* 103C to avoid falling edge irq */ |
| type = "active"; |
| }; |
| aur_sw_max_effort: aur-sw_max_effort { |
| temperature = <107000>; /* millicelsius */ |
| hysteresis = <2000>; /* millicelsius */ |
| type = "active"; |
| }; |
| aur_dfs: aur-dfs { |
| temperature = <108000>; /* millicelsius */ |
| hysteresis = <5000>; /* millicelsius */ |
| type = "active"; |
| }; |
| aur_hot: aur-hot { |
| temperature = <115000>; /* millicelsius */ |
| hysteresis = <3000>; /* millicelsius */ |
| type = "hot"; |
| }; |
| }; |
| cooling-maps { |
| map0 { |
| trip = <&aur_control_temp>; |
| cooling-device = <&gxp_cooling 0 0>; |
| }; |
| }; |
| }; |
| }; |
| |
| acpm_gov { |
| thermal_pressure_polling_delay_on = <100>; |
| thermal_pressure_polling_delay_off = <0>; |
| |
| work_affinity = "0-8"; |
| }; |
| }; |