mb/google/rex: Enable Bluetooth offload for soundwire audio

This patch enables BT offload feature for soundwire audio over SSP1.

BT mode is selected via FW_CONFIG and corresponding VGPIOs are
programmed.

BUG=b:275538390
TEST=build and verify BT offload on rex soundwire audio

Change-Id: I99df78787d9f54c91bcedf6f70352890a715cdb3
Signed-off-by: Uday M Bhat <uday.m.bhat@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/75924
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
This commit is contained in:
Uday M Bhat 2023-06-22 21:25:55 +05:30 committed by Subrata Banik
parent eebf63c0c3
commit 68e3826071
2 changed files with 6 additions and 3 deletions

View File

@ -108,7 +108,8 @@ void fw_config_gpio_padbased_override(struct pad_config *padbased_table)
} else if (fw_config_probe(FW_CONFIG(AUDIO, MAX98363_CS42L42_SNDW))) { } else if (fw_config_probe(FW_CONFIG(AUDIO, MAX98363_CS42L42_SNDW))) {
printk(BIOS_INFO, "Configure GPIOs for SoundWire audio.\n"); printk(BIOS_INFO, "Configure GPIOs for SoundWire audio.\n");
GPIO_PADBASED_OVERRIDE(padbased_table, i2s_disable_pads); GPIO_PADBASED_OVERRIDE(padbased_table, i2s_disable_pads);
GPIO_PADBASED_OVERRIDE(padbased_table, bt_i2s_disable_pads); printk(BIOS_INFO, "Configure GPIOs for BT offload mode.\n");
GPIO_PADBASED_OVERRIDE(padbased_table, bt_i2s_enable_pads);
} else if (fw_config_probe(FW_CONFIG(AUDIO, MAX98360_ALC5682I_I2S))) { } else if (fw_config_probe(FW_CONFIG(AUDIO, MAX98360_ALC5682I_I2S))) {
printk(BIOS_INFO, "Configure GPIOs for I2S audio.\n"); printk(BIOS_INFO, "Configure GPIOs for I2S audio.\n");
GPIO_PADBASED_OVERRIDE(padbased_table, sndw_disable_pads); GPIO_PADBASED_OVERRIDE(padbased_table, sndw_disable_pads);

View File

@ -28,8 +28,10 @@ void variant_generate_s0ix_hook(enum s0ix_entry entry)
void variant_update_soc_chip_config(struct soc_intel_meteorlake_config *config) void variant_update_soc_chip_config(struct soc_intel_meteorlake_config *config)
{ {
config->cnvi_bt_audio_offload = fw_config_probe(FW_CONFIG(AUDIO, if (fw_config_probe(FW_CONFIG(AUDIO, MAX98360_ALC5682I_I2S)) ||
MAX98360_ALC5682I_I2S)); fw_config_probe(FW_CONFIG(AUDIO, MAX98363_CS42L42_SNDW))) {
config->cnvi_bt_audio_offload = true;
}
if (fw_config_probe(FW_CONFIG(DB_USB, USB4_KB8010)) || if (fw_config_probe(FW_CONFIG(DB_USB, USB4_KB8010)) ||
fw_config_probe(FW_CONFIG(DB_USB, USB4_ANX7452)) || fw_config_probe(FW_CONFIG(DB_USB, USB4_ANX7452)) ||