xref: /linux/arch/loongarch/include/asm/acpi.h (revision 1cf62488f5e465b1cd814d19be238a4b7ad5be38)
1628c3bb4SHuacai Chen /* SPDX-License-Identifier: GPL-2.0 */
2628c3bb4SHuacai Chen /*
3628c3bb4SHuacai Chen  * Author: Jianmin Lv <lvjianmin@loongson.cn>
4628c3bb4SHuacai Chen  *         Huacai Chen <chenhuacai@loongson.cn>
5628c3bb4SHuacai Chen  * Copyright (C) 2020-2022 Loongson Technology Corporation Limited
6628c3bb4SHuacai Chen  */
7628c3bb4SHuacai Chen 
8628c3bb4SHuacai Chen #ifndef _ASM_LOONGARCH_ACPI_H
9628c3bb4SHuacai Chen #define _ASM_LOONGARCH_ACPI_H
10628c3bb4SHuacai Chen 
11628c3bb4SHuacai Chen #ifdef CONFIG_ACPI
12628c3bb4SHuacai Chen extern int acpi_strict;
13628c3bb4SHuacai Chen extern int acpi_disabled;
14628c3bb4SHuacai Chen extern int acpi_pci_disabled;
15628c3bb4SHuacai Chen extern int acpi_noirq;
16628c3bb4SHuacai Chen 
17628c3bb4SHuacai Chen #define acpi_os_ioremap acpi_os_ioremap
18e0fba87cSHuacai Chen void __iomem *acpi_os_ioremap(acpi_physical_address phys, acpi_size size);
19628c3bb4SHuacai Chen 
20628c3bb4SHuacai Chen static inline void disable_acpi(void)
21628c3bb4SHuacai Chen {
22628c3bb4SHuacai Chen 	acpi_disabled = 1;
23628c3bb4SHuacai Chen 	acpi_pci_disabled = 1;
24628c3bb4SHuacai Chen 	acpi_noirq = 1;
25628c3bb4SHuacai Chen }
26628c3bb4SHuacai Chen 
27628c3bb4SHuacai Chen static inline bool acpi_has_cpu_in_madt(void)
28628c3bb4SHuacai Chen {
29628c3bb4SHuacai Chen 	return true;
30628c3bb4SHuacai Chen }
31628c3bb4SHuacai Chen 
32628c3bb4SHuacai Chen extern struct list_head acpi_wakeup_device_list;
33628c3bb4SHuacai Chen 
34628c3bb4SHuacai Chen #endif /* !CONFIG_ACPI */
35628c3bb4SHuacai Chen 
36628c3bb4SHuacai Chen #define ACPI_TABLE_UPGRADE_MAX_PHYS ARCH_LOW_ADDRESS_LIMIT
37628c3bb4SHuacai Chen 
38366bb35aSHuacai Chen extern int loongarch_acpi_suspend(void);
39366bb35aSHuacai Chen extern int (*acpi_suspend_lowlevel)(void);
40366bb35aSHuacai Chen extern void loongarch_suspend_enter(void);
41366bb35aSHuacai Chen 
42366bb35aSHuacai Chen static inline unsigned long acpi_get_wakeup_address(void)
43366bb35aSHuacai Chen {
44*1cf62488SHuacai Chen #ifdef CONFIG_SUSPEND
45366bb35aSHuacai Chen 	extern void loongarch_wakeup_start(void);
46366bb35aSHuacai Chen 	return (unsigned long)loongarch_wakeup_start;
47*1cf62488SHuacai Chen #endif
48*1cf62488SHuacai Chen 	return 0UL;
49366bb35aSHuacai Chen }
50366bb35aSHuacai Chen 
51628c3bb4SHuacai Chen #endif /* _ASM_LOONGARCH_ACPI_H */
52