coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
smihandler.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <baseboard/variants.h>
4 #include <cpu/x86/smm.h>
7 #include <soc/pm.h>
8 #include <soc/gpio.h>
9 #include <variant/ec.h>
10 #include <variant/gpio.h>
11 
12 void mainboard_smi_gpi_handler(const struct gpi_status *sts)
13 {
14  if (gpi_status_get(sts, EC_SMI_GPI))
16 }
17 
18 void mainboard_smi_sleep(u8 slp_typ)
19 {
20  const struct pad_config *pads;
21  size_t num;
22 
23  pads = variant_sleep_gpio_table(slp_typ, &num);
24  gpio_configure_pads(pads, num);
25 
26  if (CONFIG(EC_GOOGLE_CHROMEEC))
29 }
30 
32 {
33  if (CONFIG(EC_GOOGLE_CHROMEEC))
36  return 0;
37 }
void __weak mainboard_smi_sleep(u8 slp_typ)
Definition: smihandler.c:210
int __weak mainboard_smi_apmc(u8 data)
Definition: smihandler.c:209
@ CONFIG
Definition: dsi_common.h:201
void chromeec_smi_sleep(int slp_type, uint64_t s3_mask, uint64_t s5_mask)
Definition: smihandler.c:48
void chromeec_smi_process_events(void)
Definition: smihandler.c:29
void chromeec_smi_apmc(int apmc, uint64_t sci_mask, uint64_t smi_mask)
Definition: smihandler.c:89
#define MAINBOARD_EC_S5_WAKE_EVENTS
Definition: ec.h:32
#define MAINBOARD_EC_SCI_EVENTS
Definition: ec.h:12
#define MAINBOARD_EC_SMI_EVENTS
Definition: ec.h:28
#define EC_SMI_GPI
Definition: ec.h:10
#define MAINBOARD_EC_S3_WAKE_EVENTS
Definition: ec.h:37
void mainboard_smi_gpi_handler(const struct gpi_status *sts)
Definition: smihandler.c:16
const struct pad_config *__weak variant_sleep_gpio_table(size_t *num)
Definition: gpio.c:466
void gpio_configure_pads(const struct soc_amd_gpio *gpio_list_ptr, size_t size)
program a particular set of GPIO
Definition: gpio.c:307
int gpi_status_get(const struct gpi_status *sts, gpio_t pad)
Definition: gpio.c:733
uint8_t u8
Definition: stdint.h:45