diff options
author | Matt DeVillier <matt.devillier@gmail.com> | 2020-02-20 19:28:31 -0600 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2024-03-01 00:33:37 +0000 |
commit | 9bb70d55c0aadafae9ba29acc48a70ab8d000885 (patch) | |
tree | 27cb47dcf1e1e7d9e9a8ea342bfc5bbde7972a35 /src/ec | |
parent | ba210367b6d0954640752b59f34349644cd121a6 (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/Kconfig | 6 | ||||
-rw-r--r-- | src/ec/google/chromeec/ec.c | 5 |
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) |