summaryrefslogtreecommitdiff
path: root/src/ec
diff options
context:
space:
mode:
authorMatt DeVillier <matt.devillier@gmail.com>2020-02-20 19:28:31 -0600
committerFelix Held <felix-coreboot@felixheld.de>2024-03-01 00:33:37 +0000
commit9bb70d55c0aadafae9ba29acc48a70ab8d000885 (patch)
tree27cb47dcf1e1e7d9e9a8ea342bfc5bbde7972a35 /src/ec
parentba210367b6d0954640752b59f34349644cd121a6 (diff)
ec/chromeec: Enable auto fan control on startup
Several older ChromeOS boards have issues with fan control on cold boot and/or on S3 resume, so add functionality to allow those boards to programmatically enable auto fan control. TEST=build/boot google/link, verify fan ramps up/down accordingly with CPU load. Change-Id: I08a8562531f8af0c71230477d0221d536443f096 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/80712 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Caveh Jalali <caveh@chromium.org>
Diffstat (limited to 'src/ec')
-rw-r--r--src/ec/google/chromeec/Kconfig6
-rw-r--r--src/ec/google/chromeec/ec.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/src/ec/google/chromeec/Kconfig b/src/ec/google/chromeec/Kconfig
index fb93b5662e..3b0beda24e 100644
--- a/src/ec/google/chromeec/Kconfig
+++ b/src/ec/google/chromeec/Kconfig
@@ -206,4 +206,10 @@ config EC_GOOGLE_CHROMEEC_INCLUDE_SSFC_IN_FW_CONFIG
Fetch Second Source Factory Cache from CBI EEPROM and add it in the most significant
32 bits of firmware configuration.
+config EC_GOOGLE_CHROMEEC_AUTO_FAN_CTRL
+ depends on EC_GOOGLE_CHROMEEC
+ bool "Enable automatic fan control"
+ help
+ Put the fan in auto mode at boot.
+
source "src/ec/google/chromeec/*/Kconfig"
diff --git a/src/ec/google/chromeec/ec.c b/src/ec/google/chromeec/ec.c
index fbb0033d59..8fdfbfbb28 100644
--- a/src/ec/google/chromeec/ec.c
+++ b/src/ec/google/chromeec/ec.c
@@ -1181,6 +1181,11 @@ int google_chromeec_get_pd_port_caps(int port,
void google_chromeec_init(void)
{
google_chromeec_log_uptimeinfo();
+
+ /* Enable automatic fan control */
+ if (CONFIG(EC_GOOGLE_CHROMEEC_AUTO_FAN_CTRL)) {
+ ec_cmd_thermal_auto_fan_ctrl(PLAT_EC);
+ }
}
int google_ec_running_ro(void)