coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
variants.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef BASEBOARD_VARIANTS_H
4 #define BASEBOARD_VARIANTS_H
5 
6 #include <soc/gpio.h>
7 #include <soc/meminit.h>
8 #include <stdint.h>
9 
10 /* The next set of functions return the gpio table and fill in the number of
11  * entries for each table. */
12 const struct pad_config *mainboard_early_bootblock_gpio_table(size_t *num);
13 const struct pad_config *variant_base_gpio_table(size_t *num);
14 const struct pad_config *variant_override_gpio_table(size_t *num);
15 const struct pad_config *variant_early_gpio_table(size_t *num);
16 const struct pad_config *variant_early_override_gpio_table(size_t *num);
17 const struct pad_config *variant_sleep_gpio_table(size_t *num, int slp_typ);
18 
19 /* Baseboard default swizzle. Can be reused if swizzle is same. */
21 /* Return LPDDR4 configuration structure. */
22 const struct lpddr4_cfg *variant_lpddr4_config(void);
23 /* Return memory SKU for the board. */
24 size_t variant_memory_sku(void);
25 
26 /* Seed the NHLT tables with the board specific information. */
27 struct nhlt;
28 void variant_nhlt_init(struct nhlt *nhlt);
29 
30 /* Modify devictree settings during ramstage. */
31 struct device;
32 void variant_update_devtree(struct device *dev);
33 /**
34  * variant_ext_usb_status() - Get status of externally visible USB ports
35  * @port_type: Type of USB port i.e. USB2/USB3
36  * @port_id: USB Port ID
37  *
38  * This function is supplied by the mainboard/variant to SoC's XHCI driver to
39  * identify the status of externally visible USB ports.
40  *
41  * Return: true if the port is present, false if the port is absent.
42  */
43 bool variant_ext_usb_status(unsigned int port_type, unsigned int port_id);
44 
45 /* Get no touchscreen SKU ID. */
47 
48 /* allow each variants to customize smi sleep flow. */
49 void variant_smi_sleep(u8 slp_typ);
50 
51 /* LTE power off sequence:
52  * GPIO_161 -> 30ms -> GPIO_117 -> 100ms -> GPIO_67 */
53 void power_off_lte_module(void);
54 
55 #endif /* BASEBOARD_VARIANTS_H */
uint32_t sku_id(void)
const struct pad_config * variant_early_gpio_table(size_t *num)
Definition: gpio.c:204
int variant_memory_sku(void)
Definition: memory.c:74
const struct pad_config * variant_override_gpio_table(size_t *num)
Definition: gpio.c:450
const struct pad_config * variant_sleep_gpio_table(size_t *num)
Definition: gpio.c:466
const struct pad_config * variant_base_gpio_table(size_t *num)
Definition: gpio.c:444
void variant_smi_sleep(u8 slp_typ)
Definition: smihandler.c:52
void variant_nhlt_init(struct nhlt *nhlt)
Definition: nhlt.c:7
const struct soc_amd_gpio * variant_early_override_gpio_table(size_t *size)
Definition: gpio.c:317
const struct pad_config * mainboard_early_bootblock_gpio_table(size_t *num)
Definition: gpio.c:302
void variant_update_devtree(struct device *dev)
Definition: mainboard.c:149
bool no_touchscreen_sku(uint32_t sku_id)
Definition: gpio.c:46
const struct lpddr4_swizzle_cfg baseboard_lpddr4_swizzle
Definition: memory.c:9
const struct lpddr4_cfg * variant_lpddr4_config(void)
Definition: memory.c:190
void power_off_lte_module(void)
Definition: smihandler.c:64
bool variant_ext_usb_status(unsigned int port_type, unsigned int port_id)
variant_ext_usb_status() - Get status of externally visible USB ports @port_type: Type of USB port i....
Definition: mainboard.c:240
unsigned int uint32_t
Definition: stdint.h:14
uint8_t u8
Definition: stdint.h:45
Definition: device.h:107
Definition: nhlt.h:287