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 <acpi/acpi.h>
4 #include <arch/io.h>
5 #include <cpu/x86/smm.h>
6 #include <soc/nvs.h>
11 
12 /*
13  * Change LED_POWER# (SIO GPIO 45) state based on sleep type.
14  * The IO address is hardcoded as we don't have device path in SMM.
15  */
16 #define SIO_GPIO_BASE_SET4 (0x730 + 3)
17 #define SIO_GPIO_BLINK_GPIO45 0x25
18 void mainboard_smi_sleep(u8 slp_typ)
19 {
20  u8 reg8;
21 
22  switch (slp_typ) {
23  case ACPI_S3:
24  case ACPI_S4:
25  break;
26 
27  case ACPI_S5:
28  /* Turn off LED */
29  reg8 = inb(SIO_GPIO_BASE_SET4);
30  reg8 |= (1 << 5);
31  outb(reg8, SIO_GPIO_BASE_SET4);
32  break;
33  }
34 }
void __weak mainboard_smi_sleep(u8 slp_typ)
Definition: smihandler.c:210
u8 inb(u16 port)
void outb(u8 val, u16 port)
@ ACPI_S5
Definition: acpi.h:1385
@ ACPI_S4
Definition: acpi.h:1384
@ ACPI_S3
Definition: acpi.h:1383
#define SIO_GPIO_BASE_SET4
Definition: smihandler.c:16
uint8_t u8
Definition: stdint.h:45