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 <sar.h>
5 #include <baseboard/variants.h>
6 #include <gpio.h>
9 
10 enum {
11  SKU_1_LTE = 1, /* Wifi + LTE */
12  SKU_2_WIFI = 2, /* Wifi */
13  SKU_3_LTE_2CAM = 3, /* Wifi + LTE + dual camera */
14  SKU_4_WIFI_2CAM = 4, /* Wifi + dual camera */
15 };
16 
17 void variant_smi_sleep(u8 slp_typ)
18 {
19  /* Currently use cases here all target to S5 therefore we do early return
20  * here for saving one transaction to the EC for getting SKU ID. */
21  if (slp_typ != ACPI_S5)
22  return;
23 
25  case SKU_1_LTE:
26  case SKU_3_LTE_2CAM:
28  return;
29  default:
30  return;
31  }
32 }
33 
34 void variant_update_devtree(struct device *dev)
35 {
36  struct soc_intel_apollolake_config *cfg = NULL;
37 
38  cfg = (struct soc_intel_apollolake_config *)dev->chip_info;
39 
40  if (cfg != NULL && (cfg->disable_xhci_lfps_pm != 1)) {
42  case SKU_1_LTE:
43  case SKU_3_LTE_2CAM:
44  cfg->disable_xhci_lfps_pm = 1;
45  return;
46  default:
47  return;
48  }
49  }
50 }
uint32_t google_chromeec_get_board_sku(void)
Definition: ec_skuid.c:6
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
@ SKU_4_WIFI_2CAM
Definition: variant.c:14
@ SKU_1_LTE
Definition: variant.c:11
@ SKU_2_WIFI
Definition: variant.c:12
@ SKU_3_LTE_2CAM
Definition: variant.c:13
@ ACPI_S5
Definition: acpi.h:1385
#define NULL
Definition: stddef.h:19
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