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