blob: 1bc1b04de1f98ac97c20e186d3c3db6553e295c8 [file] [log] [blame]
// 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";
};
};