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