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   * _HID definitions
16   * HIDs must conform to ACPI spec(6.1.4)
17   * Linux specific HIDs do not apply to this and begin with LNX:
18   */
19  
20  #define ACPI_POWER_HID			"LNXPOWER"
21  #define ACPI_PROCESSOR_OBJECT_HID	"LNXCPU"
22  #define ACPI_SYSTEM_HID			"LNXSYSTM"
23  #define ACPI_THERMAL_HID		"LNXTHERM"
24  #define ACPI_BUTTON_HID_POWERF		"LNXPWRBN"
25  #define ACPI_BUTTON_HID_SLEEPF		"LNXSLPBN"
26  #define ACPI_VIDEO_HID			"LNXVIDEO"
27  #define ACPI_BAY_HID			"LNXIOBAY"
28  #define ACPI_DOCK_HID			"LNXDOCK"
29  #define ACPI_ECDT_HID			"LNXEC"
30  /* SMBUS HID definition as supported by Microsoft Windows */
31  #define ACPI_SMBUS_MS_HID		"SMB0001"
32  /* Quirk for broken IBM BIOSes */
33  #define ACPI_SMBUS_IBM_HID		"SMBUSIBM"
34  
35  /*
36   * For fixed hardware buttons, we fabricate acpi_devices with HID
37   * ACPI_BUTTON_HID_POWERF or ACPI_BUTTON_HID_SLEEPF.  Fixed hardware
38   * signals only an event; it doesn't supply a notification value.
39   * To allow drivers to treat notifications from fixed hardware the
40   * same as those from real devices, we turn the events into this
41   * notification value.
42   */
43  #define ACPI_FIXED_HARDWARE_EVENT	0x100
44  
45  /* --------------------------------------------------------------------------
46                                         PCI
47     -------------------------------------------------------------------------- */
48  
49  
50  /* ACPI PCI Interrupt Link */
51  
52  int acpi_irq_penalty_init(void);
53  int acpi_pci_link_allocate_irq(acpi_handle handle, int index, int *triggering,
54  			       int *polarity, char **name);
55  int acpi_pci_link_free_irq(acpi_handle handle);
56  
57  /* ACPI PCI Device Binding */
58  
59  struct pci_bus;
60  
61  #ifdef CONFIG_PCI
62  struct pci_dev *acpi_get_pci_dev(acpi_handle);
63  #else
acpi_get_pci_dev(acpi_handle handle)64  static inline struct pci_dev *acpi_get_pci_dev(acpi_handle handle)
65  {
66  	return NULL;
67  }
68  #endif
69  
70  /* Arch-defined function to add a bus to the system */
71  
72  struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root);
73  
74  #ifdef CONFIG_X86
75  void pci_acpi_crs_quirks(void);
76  #else
pci_acpi_crs_quirks(void)77  static inline void pci_acpi_crs_quirks(void) { }
78  #endif
79  
80  /*--------------------------------------------------------------------------
81                                    Dock Station
82    -------------------------------------------------------------------------- */
83  
84  #ifdef CONFIG_ACPI_DOCK
85  extern int is_dock_device(struct acpi_device *adev);
86  #else
is_dock_device(struct acpi_device * adev)87  static inline int is_dock_device(struct acpi_device *adev)
88  {
89  	return 0;
90  }
91  #endif /* CONFIG_ACPI_DOCK */
92  
93  #endif /*__ACPI_DRIVERS_H__*/
94