xref: /OK3568_Linux_fs/kernel/include/acpi/acpi_drivers.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  *  acpi_drivers.h  ($Revision: 31 $)
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  *  Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
6*4882a593Smuzhiyun  *  Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
7*4882a593Smuzhiyun  */
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #ifndef __ACPI_DRIVERS_H__
10*4882a593Smuzhiyun #define __ACPI_DRIVERS_H__
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun #define ACPI_MAX_STRING			80
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun /*
15*4882a593Smuzhiyun  * Please update drivers/acpi/debug.c and Documentation/firmware-guide/acpi/debug.rst
16*4882a593Smuzhiyun  * if you add to this list.
17*4882a593Smuzhiyun  */
18*4882a593Smuzhiyun #define ACPI_BUS_COMPONENT		0x00010000
19*4882a593Smuzhiyun #define ACPI_AC_COMPONENT		0x00020000
20*4882a593Smuzhiyun #define ACPI_BATTERY_COMPONENT		0x00040000
21*4882a593Smuzhiyun #define ACPI_BUTTON_COMPONENT		0x00080000
22*4882a593Smuzhiyun #define ACPI_SBS_COMPONENT		0x00100000
23*4882a593Smuzhiyun #define ACPI_FAN_COMPONENT		0x00200000
24*4882a593Smuzhiyun #define ACPI_PCI_COMPONENT		0x00400000
25*4882a593Smuzhiyun #define ACPI_POWER_COMPONENT		0x00800000
26*4882a593Smuzhiyun #define ACPI_CONTAINER_COMPONENT	0x01000000
27*4882a593Smuzhiyun #define ACPI_SYSTEM_COMPONENT		0x02000000
28*4882a593Smuzhiyun #define ACPI_THERMAL_COMPONENT		0x04000000
29*4882a593Smuzhiyun #define ACPI_MEMORY_DEVICE_COMPONENT	0x08000000
30*4882a593Smuzhiyun #define ACPI_VIDEO_COMPONENT		0x10000000
31*4882a593Smuzhiyun #define ACPI_PROCESSOR_COMPONENT	0x20000000
32*4882a593Smuzhiyun 
33*4882a593Smuzhiyun /*
34*4882a593Smuzhiyun  * _HID definitions
35*4882a593Smuzhiyun  * HIDs must conform to ACPI spec(6.1.4)
36*4882a593Smuzhiyun  * Linux specific HIDs do not apply to this and begin with LNX:
37*4882a593Smuzhiyun  */
38*4882a593Smuzhiyun 
39*4882a593Smuzhiyun #define ACPI_POWER_HID			"LNXPOWER"
40*4882a593Smuzhiyun #define ACPI_PROCESSOR_OBJECT_HID	"LNXCPU"
41*4882a593Smuzhiyun #define ACPI_SYSTEM_HID			"LNXSYSTM"
42*4882a593Smuzhiyun #define ACPI_THERMAL_HID		"LNXTHERM"
43*4882a593Smuzhiyun #define ACPI_BUTTON_HID_POWERF		"LNXPWRBN"
44*4882a593Smuzhiyun #define ACPI_BUTTON_HID_SLEEPF		"LNXSLPBN"
45*4882a593Smuzhiyun #define ACPI_VIDEO_HID			"LNXVIDEO"
46*4882a593Smuzhiyun #define ACPI_BAY_HID			"LNXIOBAY"
47*4882a593Smuzhiyun #define ACPI_DOCK_HID			"LNXDOCK"
48*4882a593Smuzhiyun #define ACPI_ECDT_HID			"LNXEC"
49*4882a593Smuzhiyun /* Quirk for broken IBM BIOSes */
50*4882a593Smuzhiyun #define ACPI_SMBUS_IBM_HID		"SMBUSIBM"
51*4882a593Smuzhiyun 
52*4882a593Smuzhiyun /*
53*4882a593Smuzhiyun  * For fixed hardware buttons, we fabricate acpi_devices with HID
54*4882a593Smuzhiyun  * ACPI_BUTTON_HID_POWERF or ACPI_BUTTON_HID_SLEEPF.  Fixed hardware
55*4882a593Smuzhiyun  * signals only an event; it doesn't supply a notification value.
56*4882a593Smuzhiyun  * To allow drivers to treat notifications from fixed hardware the
57*4882a593Smuzhiyun  * same as those from real devices, we turn the events into this
58*4882a593Smuzhiyun  * notification value.
59*4882a593Smuzhiyun  */
60*4882a593Smuzhiyun #define ACPI_FIXED_HARDWARE_EVENT	0x100
61*4882a593Smuzhiyun 
62*4882a593Smuzhiyun /* --------------------------------------------------------------------------
63*4882a593Smuzhiyun                                        PCI
64*4882a593Smuzhiyun    -------------------------------------------------------------------------- */
65*4882a593Smuzhiyun 
66*4882a593Smuzhiyun 
67*4882a593Smuzhiyun /* ACPI PCI Interrupt Link (pci_link.c) */
68*4882a593Smuzhiyun 
69*4882a593Smuzhiyun int acpi_irq_penalty_init(void);
70*4882a593Smuzhiyun int acpi_pci_link_allocate_irq(acpi_handle handle, int index, int *triggering,
71*4882a593Smuzhiyun 			       int *polarity, char **name);
72*4882a593Smuzhiyun int acpi_pci_link_free_irq(acpi_handle handle);
73*4882a593Smuzhiyun 
74*4882a593Smuzhiyun /* ACPI PCI Device Binding (pci_bind.c) */
75*4882a593Smuzhiyun 
76*4882a593Smuzhiyun struct pci_bus;
77*4882a593Smuzhiyun 
78*4882a593Smuzhiyun #ifdef CONFIG_PCI
79*4882a593Smuzhiyun struct pci_dev *acpi_get_pci_dev(acpi_handle);
80*4882a593Smuzhiyun #else
acpi_get_pci_dev(acpi_handle handle)81*4882a593Smuzhiyun static inline struct pci_dev *acpi_get_pci_dev(acpi_handle handle)
82*4882a593Smuzhiyun {
83*4882a593Smuzhiyun 	return NULL;
84*4882a593Smuzhiyun }
85*4882a593Smuzhiyun #endif
86*4882a593Smuzhiyun 
87*4882a593Smuzhiyun /* Arch-defined function to add a bus to the system */
88*4882a593Smuzhiyun 
89*4882a593Smuzhiyun struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root);
90*4882a593Smuzhiyun 
91*4882a593Smuzhiyun #ifdef CONFIG_X86
92*4882a593Smuzhiyun void pci_acpi_crs_quirks(void);
93*4882a593Smuzhiyun #else
pci_acpi_crs_quirks(void)94*4882a593Smuzhiyun static inline void pci_acpi_crs_quirks(void) { }
95*4882a593Smuzhiyun #endif
96*4882a593Smuzhiyun 
97*4882a593Smuzhiyun /* --------------------------------------------------------------------------
98*4882a593Smuzhiyun                                     Processor
99*4882a593Smuzhiyun    -------------------------------------------------------------------------- */
100*4882a593Smuzhiyun 
101*4882a593Smuzhiyun #define ACPI_PROCESSOR_LIMIT_NONE	0x00
102*4882a593Smuzhiyun #define ACPI_PROCESSOR_LIMIT_INCREMENT	0x01
103*4882a593Smuzhiyun #define ACPI_PROCESSOR_LIMIT_DECREMENT	0x02
104*4882a593Smuzhiyun 
105*4882a593Smuzhiyun /*--------------------------------------------------------------------------
106*4882a593Smuzhiyun                                   Dock Station
107*4882a593Smuzhiyun   -------------------------------------------------------------------------- */
108*4882a593Smuzhiyun 
109*4882a593Smuzhiyun #ifdef CONFIG_ACPI_DOCK
110*4882a593Smuzhiyun extern int is_dock_device(struct acpi_device *adev);
111*4882a593Smuzhiyun #else
is_dock_device(struct acpi_device * adev)112*4882a593Smuzhiyun static inline int is_dock_device(struct acpi_device *adev)
113*4882a593Smuzhiyun {
114*4882a593Smuzhiyun 	return 0;
115*4882a593Smuzhiyun }
116*4882a593Smuzhiyun #endif /* CONFIG_ACPI_DOCK */
117*4882a593Smuzhiyun 
118*4882a593Smuzhiyun #endif /*__ACPI_DRIVERS_H__*/
119