ec/google/wilco: Unmute audio on init
The speakers start up muted, and the EC must be told by the BIOS
to unmute it. This helps prevent popping noises on boot/resume.
Change-Id: I693f1d01e46e19362ef8fd0d5b3f4930967b5a12
Signed-off-by: Duncan Laurie <dlaurie@google.com>
Reviewed-on: https://review.coreboot.org/29203
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/ec/google/wilco/chip.c b/src/ec/google/wilco/chip.c
index 929d1cc..0cd0048 100644
--- a/src/ec/google/wilco/chip.c
+++ b/src/ec/google/wilco/chip.c
@@ -63,6 +63,9 @@
/* Direct power button to the host for processing */
wilco_ec_send(KB_POWER_BUTTON_TO_HOST, 1);
+
+ /* Unmute speakers */
+ wilco_ec_send(KB_HW_MUTE_CONTROL, AUDIO_UNMUTE_125MS);
}
static void wilco_ec_resource(struct device *dev, int index,
diff --git a/src/ec/google/wilco/commands.h b/src/ec/google/wilco/commands.h
index 7a9bc05..4a19030 100644
--- a/src/ec/google/wilco/commands.h
+++ b/src/ec/google/wilco/commands.h
@@ -36,6 +36,8 @@
KB_ACPI = 0x3a,
/* Manage the EC power button passthru to the host */
KB_POWER_BUTTON_TO_HOST = 0x3e,
+ /* Manage the EC control of speaker mute */
+ KB_HW_MUTE_CONTROL = 0x60,
/* Inform the EC that the host is about to enter S3 */
KB_SLP_EN = 0x64,
/* Inform the EC about BIOS boot progress */
@@ -54,6 +56,11 @@
BIOS_PROGRESS_POST_COMPLETE = 0x04,
};
+enum ec_audio_mute {
+ AUDIO_MUTE = 0, /* Mute speakers immediately */
+ AUDIO_UNMUTE_125MS, /* Unmute in 125ms */
+};
+
/*
* EC Information
*/