coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
variant.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <acpi/acpi.h>
4 #include <baseboard/variants.h>
6 #include <sar.h>
8 
9 #define MIN_LTE_SKU 4
10 #define FLEEX_MAX_SKU 0x20
11 
12 static bool is_lte_sku(void)
13 {
15 
16  /* Only Fleex has LTE sku */
17  if (sku_id <= FLEEX_MAX_SKU)
18  return (sku_id >= MIN_LTE_SKU);
19 
20  return false;
21 }
22 
23 void variant_smi_sleep(u8 slp_typ)
24 {
25  /* Currently use cases here all target to S5 therefore we do early return
26  * here for saving one transaction to the EC for getting SKU ID. */
27  if (slp_typ != ACPI_S5)
28  return;
29  if (is_lte_sku())
31 }
32 
33 const char *get_wifi_sar_cbfs_filename(void)
34 {
35  if (!is_lte_sku())
36  return "wifi_sar-fleex.hex";
37 
39 }
40 
41 void variant_update_devtree(struct device *dev)
42 {
43  struct soc_intel_apollolake_config *cfg = NULL;
44 
45  cfg = (struct soc_intel_apollolake_config *)dev->chip_info;
46  // Force disable_xhci_lfps_pm to update if it is LTE sku
47  if (cfg != NULL && is_lte_sku())
48  cfg->disable_xhci_lfps_pm = 1;
49 }
uint32_t sku_id(void)
uint32_t google_chromeec_get_board_sku(void)
Definition: ec_skuid.c:6
const char * get_wifi_sar_cbfs_filename(void)
Definition: variant.c:5
void variant_smi_sleep(u8 slp_typ)
Definition: variant.c:15
static void power_off_lte_module(void)
Definition: variant.c:8
void variant_update_devtree(struct device *dev)
Definition: variant.c:46
#define FLEEX_MAX_SKU
Definition: variant.c:10
#define MIN_LTE_SKU
Definition: variant.c:9
static bool is_lte_sku(void)
Definition: variant.c:12
@ ACPI_S5
Definition: acpi.h:1385
#define WIFI_SAR_CBFS_DEFAULT_FILENAME
Definition: sar.h:87
#define NULL
Definition: stddef.h:19
unsigned int uint32_t
Definition: stdint.h:14
uint8_t u8
Definition: stdint.h:45
Definition: device.h:107
DEVTREE_CONST void * chip_info
Definition: device.h:164
uint8_t disable_xhci_lfps_pm
Definition: chip.h:196