summaryrefslogtreecommitdiff
path: root/board/eldrid/thermal.c
diff options
context:
space:
mode:
authorScott Chao <scott_chao@wistron.corp-partner.google.com>2020-10-05 18:57:15 +0800
committerCommit Bot <commit-bot@chromium.org>2020-10-07 02:32:42 +0000
commit34f587bb478d5b27427552a16322de9c47e0838d (patch)
treeb992dee91e53c5fbcb806de1b0629d1d1ea8f635 /board/eldrid/thermal.c
parent900189e9b6e95cce90d06586a4f3c8e4c6ce201e (diff)
downloadchrome-ec-34f587bb478d5b27427552a16322de9c47e0838d.tar.gz
volteer: move thermal setting to variant
Since each variant may have different thermal sensor placement. Move thermal params and configs from baseboard to variant. BUG=b:170143672 BRANCH=none TEST=make -j BOARD=eldrid TEST=make buildall Signed-off-by: Scott Chao <scott_chao@wistron.corp-partner.google.com> Change-Id: Ie12f4cecad5f93c491e51a5fadfe856829f5b2e3 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2449510 Reviewed-by: Keith Short <keithshort@chromium.org>
Diffstat (limited to 'board/eldrid/thermal.c')
-rw-r--r--board/eldrid/thermal.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/board/eldrid/thermal.c b/board/eldrid/thermal.c
index ce36ce3860..2f4210c36c 100644
--- a/board/eldrid/thermal.c
+++ b/board/eldrid/thermal.c
@@ -17,6 +17,60 @@
#define CPUTS(outstr) cputs(CC_THERMAL, outstr)
#define CPRINTS(format, args...) cprints(CC_THERMAL, format, ## args)
+
+/******************************************************************************/
+/* EC thermal management configuration */
+/*
+ * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at
+ * 130 C. However, sensor is located next to DDR, so we need to use the lower
+ * DDR temperature limit (85 C).
+ * TODO(b/170143672): Have different sensor placement. The temperature need to
+ * be changed.
+ */
+const static struct ec_thermal_config thermal_cpu = {
+ .temp_host = {
+ [EC_TEMP_THRESH_HIGH] = C_TO_K(70),
+ [EC_TEMP_THRESH_HALT] = C_TO_K(80),
+ },
+ .temp_host_release = {
+ [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
+ },
+ .temp_fan_off = C_TO_K(35),
+ .temp_fan_max = C_TO_K(50),
+};
+
+/*
+ * Inductor limits - used for both charger and PP3300 regulator
+ *
+ * Need to use the lower of the charger IC, PP3300 regulator, and the inductors
+ *
+ * Charger max recommended temperature 100C, max absolute temperature 125C
+ * PP3300 regulator: operating range -40 C to 145 C
+ *
+ * Inductors: limit of 125c
+ * PCB: limit is 80c
+ */
+const static struct ec_thermal_config thermal_inductor = {
+ .temp_host = {
+ [EC_TEMP_THRESH_HIGH] = C_TO_K(75),
+ [EC_TEMP_THRESH_HALT] = C_TO_K(80),
+ },
+ .temp_host_release = {
+ [EC_TEMP_THRESH_HIGH] = C_TO_K(65),
+ },
+ .temp_fan_off = C_TO_K(40),
+ .temp_fan_max = C_TO_K(55),
+};
+
+struct ec_thermal_config thermal_params[] = {
+ [TEMP_SENSOR_1_CHARGER] = thermal_inductor,
+ [TEMP_SENSOR_2_PP3300_REGULATOR] = thermal_inductor,
+ [TEMP_SENSOR_3_DDR_SOC] = thermal_cpu,
+ [TEMP_SENSOR_4_FAN] = thermal_cpu,
+};
+BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
+
+/******************************************************************************/
struct fan_step {
/*
* Sensor 1~4 trigger point, set -1 if we're not using this