From d9bd7ce89f0eed73ddbd995d83015ce0c6e2fd37 Mon Sep 17 00:00:00 2001 From: Ian Feng Date: Fri, 23 May 2025 12:09:03 +0800 Subject: [PATCH] mb/google/fatcat/var/francka: Enable audio codec ALC721 Enable Realtek ALC721 soundwire codec for francka. BUG=b:417133565 TEST=Build and boot to OS in francka and SoundWire driver probe successfully. Output Devices: ID MaxCha LastOpen Name 13 0 UNK sof-soundwire: :0,7 12 0 UNK sof-soundwire: :0,6 11 0 UNK sof-soundwire: :0,5 8 2 UNK sof-soundwire: :0,0 7 2 UNK sof-soundwire: :0,2 Output Nodes: Stable Id ID Type MaxCha Name (8c7788a4) 13:0 HDMI 0 sof-soundwire HDMI/DP,pcm=7 (40acdf7f) 12:0 HDMI 0 sof-soundwire HDMI/DP,pcm=6 (742af104) 11:0 HDMI 0 sof-soundwire HDMI/DP,pcm=5 (db5babbe) 8:0 HEADPHONE 2 Headphone (5c5b2998) 7:0 INTERNAL_SPEAKER 2*Speaker Change-Id: I52890fb331f54c48a280a0e3210762a5c66c8bba Signed-off-by: Ian Feng Reviewed-on: https://review.coreboot.org/c/coreboot/+/87811 Reviewed-by: Jayvik Desai Tested-by: build bot (Jenkins) Reviewed-by: Subrata Banik --- .../google/fatcat/variants/francka/fw_config.c | 15 +++++++++++++++ .../google/fatcat/variants/francka/gpio.c | 16 ++++++++-------- .../fatcat/variants/francka/overridetree.cb | 14 ++++++++++++++ 3 files changed, 37 insertions(+), 8 deletions(-) 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