From 6e546cc695e7babb809d9555383d7c835bf045b8 Mon Sep 17 00:00:00 2001 From: Sean Rhodes Date: Mon, 30 Sep 2024 10:31:28 +0100 Subject: soc/intel/cannonlake: Hook up CNVi Bluetooth UPDs to devicetree Hook up CNVi Bluetooth UPDs to the devicetree. Set CnviBtCore to `true` so the current behaviour is not changed. Change-Id: Ic5640c23af3ce30498be814a6d7ce56988653b25 Signed-off-by: Sean Rhodes Reviewed-on: https://review.coreboot.org/c/coreboot/+/84596 Reviewed-by: Matt DeVillier Tested-by: build bot (Jenkins) --- src/soc/intel/cannonlake/chip.h | 6 ++++++ src/soc/intel/cannonlake/chipset.cb | 3 +++ src/soc/intel/cannonlake/chipset_pch_h.cb | 3 +++ src/soc/intel/cannonlake/fsp_params.c | 13 +++++++++++++ 4 files changed, 25 insertions(+) (limited to 'src/soc/intel/cannonlake') diff --git a/src/soc/intel/cannonlake/chip.h b/src/soc/intel/cannonlake/chip.h index 9459b88808..d4d9d0d11d 100644 --- a/src/soc/intel/cannonlake/chip.h +++ b/src/soc/intel/cannonlake/chip.h @@ -409,6 +409,12 @@ struct soc_intel_cannonlake_config { uint32_t VrPowerDeliveryDesign; #endif + /* CNVi BT Core Enable/Disable */ + bool CnviBtCore; + + /* CNVi BT Audio Offload: Enable/Disable BT Audio Offload. */ + bool CnviBtAudioOffload; + /* * Override GPIO PM configuration: * 0: Use FSP default GPIO PM program, diff --git a/src/soc/intel/cannonlake/chipset.cb b/src/soc/intel/cannonlake/chipset.cb index 8c8771e139..b33aadfd32 100644 --- a/src/soc/intel/cannonlake/chipset.cb +++ b/src/soc/intel/cannonlake/chipset.cb @@ -1,6 +1,9 @@ chip soc/intel/cannonlake device cpu_cluster 0 on end + + register "CnviBtCore" = "true" + device domain 0 on device pci 00.0 alias system_agent on end # Host Bridge device pci 01.0 alias peg0 off end # PCIe x16 diff --git a/src/soc/intel/cannonlake/chipset_pch_h.cb b/src/soc/intel/cannonlake/chipset_pch_h.cb index 22e5d7a1c2..3904697b11 100644 --- a/src/soc/intel/cannonlake/chipset_pch_h.cb +++ b/src/soc/intel/cannonlake/chipset_pch_h.cb @@ -1,6 +1,9 @@ chip soc/intel/cannonlake device cpu_cluster 0 on end + + register "CnviBtCore" = "true" + device domain 0 on device pci 00.0 alias system_agent on end # Host Bridge device pci 01.0 alias peg0 off end # PCIe x16 diff --git a/src/soc/intel/cannonlake/fsp_params.c b/src/soc/intel/cannonlake/fsp_params.c index db28d41cfe..bce1eeb369 100644 --- a/src/soc/intel/cannonlake/fsp_params.c +++ b/src/soc/intel/cannonlake/fsp_params.c @@ -529,7 +529,20 @@ void platform_fsp_silicon_init_params_cb(FSPS_UPD *supd) /* Enable CNVi Wifi if enabled in device tree */ #if CONFIG(SOC_INTEL_COMETLAKE) + /* CNVi */ s_cfg->CnviMode = is_devfn_enabled(PCH_DEVFN_CNViWIFI); + s_cfg->CnviBtCore = config->CnviBtCore; + s_cfg->CnviBtAudioOffload = config->CnviBtAudioOffload; + + if (!s_cfg->CnviBtCore && s_cfg->CnviBtAudioOffload) { + printk(BIOS_ERR, "BT offload is enabled without CNVi BT being enabled\n"); + s_cfg->CnviBtAudioOffload = 0; + } + if (!s_cfg->CnviMode && s_cfg->CnviBtCore) { + printk(BIOS_ERR, "CNVi BT is enabled without CNVi being enabled\n"); + s_cfg->CnviBtCore = 0; + s_cfg->CnviBtAudioOffload = 0; + } #else s_cfg->PchCnviMode = is_devfn_enabled(PCH_DEVFN_CNViWIFI); #endif -- cgit v1.2.3