mb/google/octopus: add ALC5682I-VS to be supported in the SSFC

Add ALC5682I-VS codec support. ALC5682I-VD/ALC5682I-VS load different
hid name depending on SSFC.

BUG=b:198722640
BRANCH=octopus
TEST=Set CBI SSFC BIT9-11 to select codec, and test audio works

Change-Id: I80be12d88e100ce8586371fc49b36447859e24f8
Signed-off-by: Paul Huang <paul2_huang@pegatron.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/59856
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Marco Chen <marcochen@google.com>
diff --git a/src/mainboard/google/octopus/mainboard.c b/src/mainboard/google/octopus/mainboard.c
index 9ffd633..fbebe57 100644
--- a/src/mainboard/google/octopus/mainboard.c
+++ b/src/mainboard/google/octopus/mainboard.c
@@ -62,6 +62,7 @@
 	/* For RT5682, GPIO 137 should be set as EDGE_BOTH. */
 	const struct pad_config rt5682_gpio_137 = PAD_CFG_GPI_APIC_IOS(GPIO_137,
 			NONE, DEEP, EDGE_BOTH, INVERT, HIZCRx1, DISPUPD);
+	enum ssfc_audio_codec codec = ssfc_get_audio_codec();
 
 	if (table == NULL || num == 0)
 		return;
@@ -72,7 +73,8 @@
 	 * provide override_table right now so it will be returned earlier since
 	 * table above is NULL.
 	 */
-	if (ssfc_get_audio_codec() != SSFC_AUDIO_CODEC_RT5682)
+	if ((codec != SSFC_AUDIO_CODEC_RT5682) &&
+		(codec != SSFC_AUDIO_CODEC_RT5682_VS))
 		return;
 
 	while (num--) {
@@ -192,13 +194,26 @@
 			continue;
 		}
 
-		if ((audio_dev->chip_ops == &drivers_i2c_generic_ops) &&
-			(codec == SSFC_AUDIO_CODEC_RT5682)) {
+		if (audio_dev->chip_ops == &drivers_i2c_generic_ops) {
 			struct drivers_i2c_generic_config *cfg =
 				audio_dev->chip_info;
 
-			if (cfg != NULL && !strcmp(cfg->hid, "10EC5682")) {
-				printk(BIOS_INFO, "enable RT5682.\n");
+			if ((cfg != NULL && !strcmp(cfg->hid, "10EC5682")) &&
+				(codec == SSFC_AUDIO_CODEC_RT5682)) {
+				printk(BIOS_INFO, "enable RT5682 VD.\n");
+				continue;
+			}
+
+			if ((cfg != NULL && !strcmp(cfg->hid, "10EC5682")) &&
+				(codec == SSFC_AUDIO_CODEC_RT5682_VS)) {
+				cfg->hid = "RTL5682";
+				printk(BIOS_INFO, "enable RT5682 VS.\n");
+				continue;
+			}
+
+			if ((cfg != NULL && !strcmp(cfg->hid, "RTL5682")) &&
+				(codec == SSFC_AUDIO_CODEC_RT5682_VS)) {
+				printk(BIOS_INFO, "enable RT5682 VS.\n");
 				continue;
 			}
 		}