diff --git a/src/mainboard/google/fatcat/variants/francka/fw_config.c b/src/mainboard/google/fatcat/variants/francka/fw_config.c index 17901220b5..c722725f0b 100644 --- a/src/mainboard/google/fatcat/variants/francka/fw_config.c +++ b/src/mainboard/google/fatcat/variants/francka/fw_config.c @@ -26,6 +26,17 @@ static const struct pad_config hda_enable_pads[] = { PAD_CFG_NF(GPP_S07, NONE, DEEP, NF5), }; +static const struct pad_config sndw_alc721_enable_pads[] = { + /* GPP_S02: SNDW0_CLK */ + PAD_CFG_NF(GPP_S02, NONE, DEEP, NF3), + /* GPP_S03: SNDW0_DATA0 */ + PAD_CFG_NF(GPP_S03, NONE, DEEP, NF3), + /* GPP_S06: SOC_DMIC_CLK1 */ + PAD_CFG_NF(GPP_S06, NONE, DEEP, NF5), + /* GPP_S07: SOC_DMIC_DATA1 */ + PAD_CFG_NF(GPP_S07, NONE, DEEP, NF5), +}; + /* * WWAN: power sequence requires three stages: * step 1: 3.3V power, FCP# (Full Card Power), RST#, and PERST# off @@ -107,7 +118,11 @@ void fw_config_gpio_padbased_override(struct pad_config *padbased_table) } if (fw_config_probe(FW_CONFIG(AUDIO, AUDIO_ALC256M_CG_HDA))) { + printk(BIOS_INFO, "Configure GPIOs for HDA ALC256 mode.\n"); GPIO_PADBASED_OVERRIDE(padbased_table, hda_enable_pads); + } else if (fw_config_probe(FW_CONFIG(AUDIO, AUDIO_ALC721_SNDW))) { + printk(BIOS_INFO, "Configure GPIOs for Soundwire ALC721 mode.\n"); + GPIO_PADBASED_OVERRIDE(padbased_table, sndw_alc721_enable_pads); } if (fw_config_probe(FW_CONFIG(WWAN, WWAN_PRESENT))) { diff --git a/src/mainboard/google/fatcat/variants/francka/gpio.c b/src/mainboard/google/fatcat/variants/francka/gpio.c index 7163e3927f..880f8afaad 100644 --- a/src/mainboard/google/fatcat/variants/francka/gpio.c +++ b/src/mainboard/google/fatcat/variants/francka/gpio.c @@ -344,21 +344,21 @@ static const struct pad_config gpio_table[] = { /* GPP_H22: SOC_I2C_1_SCL */ PAD_CFG_NF(GPP_H22, NONE, DEEP, NF1), - /* GPP_S00: Not used */ + /* GPP_S00: SNDW_3_SCL */ PAD_NC(GPP_S00, NONE), - /* GPP_S01: Not used */ + /* GPP_S01: SNDW_3_SDA */ PAD_NC(GPP_S01, NONE), - /* GPP_S02: Not used */ + /* GPP_S02: SNDW_0_SCL_R / SOC_DMIC_CLK0 */ PAD_NC(GPP_S02, NONE), - /* GPP_S03: Not used */ + /* GPP_S03: SNDW_0_SDA_R / SOC_DMIC_DATA0 */ PAD_NC(GPP_S03, NONE), - /* GPP_S04: Not used */ + /* GPP_S04: SNDW_2_SCL */ PAD_NC(GPP_S04, NONE), - /* GPP_S05: Not used */ + /* GPP_S05: SNDW_2_SDA */ PAD_NC(GPP_S05, NONE), - /* GPP_S06: Not used */ + /* GPP_S06: SOC_DMIC_CLK1 */ PAD_NC(GPP_S06, NONE), - /* GPP_S07: Not used */ + /* GPP_S07: SOC_DMIC_DATA1 */ PAD_NC(GPP_S07, NONE), /* GPP_V00: PM_BATLOW# */ diff --git a/src/mainboard/google/fatcat/variants/francka/overridetree.cb b/src/mainboard/google/fatcat/variants/francka/overridetree.cb index d11ff4ab62..983cb91487 100644 --- a/src/mainboard/google/fatcat/variants/francka/overridetree.cb +++ b/src/mainboard/google/fatcat/variants/francka/overridetree.cb @@ -283,6 +283,20 @@ chip soc/intel/pantherlake probe AUDIO AUDIO_ALC256M_CG_HDA end end + chip drivers/intel/soundwire + device generic 0 on + chip drivers/soundwire/alc711 + register "desc" = ""Headset Codec"" + register "alc711_address.version" = "SOUNDWIRE_VERSION_1_2" + register "alc711_address.class" = "MIPI_CLASS_SDCA" + register "alc711_address.part_id" = "MIPI_DEV_ID_REALTEK_ALC721" + # SoundWire Link 0 ID 0 + device generic 0.0 on + probe AUDIO AUDIO_ALC721_SNDW + end + end + end + end end device ref gspi1 on chip drivers/spi/acpi