xref: /openbmc/u-boot/arch/x86/include/asm/acpi.h (revision e0ed8332fa2fe684b4c8ba1caab991663730cbf0)
1*a0609a8dSBin Meng /* SPDX-License-Identifier: GPL-2.0+ */
2*a0609a8dSBin Meng /*
3*a0609a8dSBin Meng  * Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com>
4*a0609a8dSBin Meng  */
5*a0609a8dSBin Meng 
6*a0609a8dSBin Meng #ifndef __ASM_ACPI_H__
7*a0609a8dSBin Meng #define __ASM_ACPI_H__
8*a0609a8dSBin Meng 
9*a0609a8dSBin Meng struct acpi_fadt;
10*a0609a8dSBin Meng 
11*a0609a8dSBin Meng /**
12*a0609a8dSBin Meng  * acpi_find_fadt() - find ACPI FADT table in the system memory
13*a0609a8dSBin Meng  *
14*a0609a8dSBin Meng  * This routine parses the ACPI table to locate the ACPI FADT table.
15*a0609a8dSBin Meng  *
16*a0609a8dSBin Meng  * @return:	a pointer to the ACPI FADT table in the system memory
17*a0609a8dSBin Meng  */
18*a0609a8dSBin Meng struct acpi_fadt *acpi_find_fadt(void);
19*a0609a8dSBin Meng 
20*a0609a8dSBin Meng /**
21*a0609a8dSBin Meng  * acpi_find_wakeup_vector() - find OS installed wake up vector address
22*a0609a8dSBin Meng  *
23*a0609a8dSBin Meng  * This routine parses the ACPI table to locate the wake up vector installed
24*a0609a8dSBin Meng  * by the OS previously.
25*a0609a8dSBin Meng  *
26*a0609a8dSBin Meng  * @fadt:	a pointer to the ACPI FADT table in the system memory
27*a0609a8dSBin Meng  * @return:	wake up vector address installed by the OS
28*a0609a8dSBin Meng  */
29*a0609a8dSBin Meng void *acpi_find_wakeup_vector(struct acpi_fadt *fadt);
30*a0609a8dSBin Meng 
31*a0609a8dSBin Meng /**
32*a0609a8dSBin Meng  * enter_acpi_mode() - enter into ACPI mode
33*a0609a8dSBin Meng  *
34*a0609a8dSBin Meng  * This programs the ACPI-defined PM1_CNT register to enable SCI interrupt
35*a0609a8dSBin Meng  * so that the whole system swiches to ACPI mode.
36*a0609a8dSBin Meng  *
37*a0609a8dSBin Meng  * @pm1_cnt:	PM1_CNT register I/O address
38*a0609a8dSBin Meng  */
39*a0609a8dSBin Meng void enter_acpi_mode(int pm1_cnt);
40*a0609a8dSBin Meng 
41*a0609a8dSBin Meng #endif /* __ASM_ACPI_H__ */
42