diff options
-rw-r--r-- | src/soc/intel/cannonlake/chip.h | 6 | ||||
-rw-r--r-- | src/soc/intel/cannonlake/chipset.cb | 3 | ||||
-rw-r--r-- | src/soc/intel/cannonlake/chipset_pch_h.cb | 3 | ||||
-rw-r--r-- | src/soc/intel/cannonlake/fsp_params.c | 13 |
4 files changed, 25 insertions, 0 deletions
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 |