mb/google/rex/var/karis: Enhance CNVi and PCIe switching

1. Set PCIe related GPIOs to NC if fw_config use "WIFI_CNVI".
2. Set CNVi related GPIOs to NC if fw_config use "WIFI_PCIE".
3. Remove "ALC5650_NO_AMP_I2S" case in
fw_config_gpio_padbased_override(). bt_i2s_enable_pads should not
relevant to audio codec/amp, and it is already enabled in "WIFI_CNVI"
case.

BUG=b:312099281
TEST=Build and test on karis

Change-Id: Ib1a32f1a38ae33cf992b80a3408aa8e2fa3ddab0
Signed-off-by: Tyler Wang <tyler.wang@quanta.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/79765
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/mainboard/google/rex/variants/karis/fw_config.c b/src/mainboard/google/rex/variants/karis/fw_config.c
index ae74a42..6dbf31d 100644
--- a/src/mainboard/google/rex/variants/karis/fw_config.c
+++ b/src/mainboard/google/rex/variants/karis/fw_config.c
@@ -35,12 +35,29 @@
 };
 
 static const struct pad_config cnvi_bt_disable_pads[] = {
-	/* GPP_F04 : [] ==> CNV_RF_RST_L */
+	/* GPP_F00 :  [] ==> CNV_BRI_DT_R */
+	PAD_NC(GPP_F00, NONE),
+	/* GPP_F01 :  [] ==> CNV_BRI_RSP */
+	PAD_NC(GPP_F01, NONE),
+	/* GPP_F02 :  [] ==> CNV_RGI_DT_Rl */
+	PAD_NC(GPP_F02, NONE),
+	/* GPP_F03 :  [] ==> CNV_RGI_RSP */
+	PAD_NC(GPP_F03, NONE),
+	/* GPP_F04 :  [] ==> CNV_RF_RST_L */
 	PAD_NC(GPP_F04, NONE),
-	/* GPP_F05 : [] ==> CNV_CLKREQ */
+	/* GPP_F05 :  [] ==> CNV_CLKREQ */
 	PAD_NC(GPP_F05, NONE),
 };
 
+static const struct pad_config discrete_bt_disable_pads[] = {
+	/* GPP_S01 : [] ==> SDW_HP_DATA_WLAN_PCM_SYNC */
+	PAD_NC(GPP_S01, NONE),
+	/* GPP_S02 : [] ==> DMIC_SOC_CLK0_WLAN_PCM_OUT */
+	PAD_NC(GPP_S02, NONE),
+	/* GPP_D21 : [] ==> WLAN_CLKREQ_ODLl */
+	PAD_NC(GPP_D21, NONE),
+};
+
 static const struct pad_config bt_i2s_enable_pads[] = {
 	/* GPP_V30 : [] ==> BT_I2S_BCLK */
 	PAD_CFG_NF(GPP_VGPIO30, NONE, DEEP, NF2),
@@ -81,13 +98,11 @@
 		printk(BIOS_INFO, "Configure GPIOs for no FP module.\n");
 		GPIO_PADBASED_OVERRIDE(padbased_table, fp_disable_pads);
 	}
-	if (fw_config_probe(FW_CONFIG(AUDIO, ALC5650_NO_AMP_I2S))) {
-		printk(BIOS_INFO, "Configure GPIOs for BT offload mode.\n");
-		GPIO_PADBASED_OVERRIDE(padbased_table, bt_i2s_enable_pads);
-	}
 	if (fw_config_probe(FW_CONFIG(WIFI_TYPE, WIFI_CNVI))) {
 		printk(BIOS_INFO, "Configure GPIOs for CNVi WIFI/BT module.\n");
 		GPIO_PADBASED_OVERRIDE(padbased_table, bt_i2s_enable_pads);
+		printk(BIOS_INFO, "Disable GPIOs for PCIe WIFI/BT module.\n");
+		GPIO_PADBASED_OVERRIDE(padbased_table, discrete_bt_disable_pads);
 	}
 	if (fw_config_probe(FW_CONFIG(WIFI_TYPE, WIFI_PCIE))) {
 		printk(BIOS_INFO, "Configure GPIOs for discrete WIFI/BT module.\n");