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>
diff --git a/src/ec/google/chromeec/Kconfig b/src/ec/google/chromeec/Kconfig
index fb93b56..3b0beda 100644
--- a/src/ec/google/chromeec/Kconfig
+++ b/src/ec/google/chromeec/Kconfig
@@ -206,4 +206,10 @@
 	  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 fbb0033..8fdfbfb 100644
--- a/src/ec/google/chromeec/ec.c
+++ b/src/ec/google/chromeec/ec.c
@@ -1181,6 +1181,11 @@
 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)