ReactOS  0.4.15-dev-1171-gab82533
acpi_drivers.h
Go to the documentation of this file.
1 /*
2  * acpi_drivers.h ($Revision: 32 $)
3  *
4  * Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
5  * Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
6  *
7  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or (at
12  * your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful, but
15  * WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License along
20  * with this program; if not, write to the Free Software Foundation, Inc.,
21  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
22  *
23  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
24  */
25 
26 #ifndef __ACPI_DRIVERS_H__
27 #define __ACPI_DRIVERS_H__
28 
29 #define ACPI_MAX_STRING 80
30 
31 
32 /* --------------------------------------------------------------------------
33  ACPI Bus
34  -------------------------------------------------------------------------- */
35 
36 #define ACPI_BUS_COMPONENT 0x00010000
37 #define ACPI_BUS_CLASS "system_bus"
38 #define ACPI_BUS_HID "ACPI_BUS"
39 #define ACPI_BUS_DRIVER_NAME "ACPI Bus Driver"
40 #define ACPI_BUS_DEVICE_NAME "System Bus"
41 
42 
43 /* --------------------------------------------------------------------------
44  AC Adapter
45  -------------------------------------------------------------------------- */
46 
47 #define ACPI_AC_COMPONENT 0x00020000
48 #define ACPI_AC_CLASS "ac_adapter"
49 #define ACPI_AC_HID "ACPI0003"
50 #define ACPI_AC_DRIVER_NAME "ACPI AC Adapter Driver"
51 #define ACPI_AC_DEVICE_NAME "AC Adapter"
52 #define ACPI_AC_FILE_STATE "state"
53 #define ACPI_AC_NOTIFY_STATUS 0x80
54 #define ACPI_AC_STATUS_OFFLINE 0x00
55 #define ACPI_AC_STATUS_ONLINE 0x01
56 #define ACPI_AC_STATUS_UNKNOWN 0xFF
57 
58 
59 /* --------------------------------------------------------------------------
60  Battery
61  -------------------------------------------------------------------------- */
62 
63 #define ACPI_BATTERY_COMPONENT 0x00040000
64 #define ACPI_BATTERY_CLASS "battery"
65 #define ACPI_BATTERY_HID "PNP0C0A"
66 #define ACPI_BATTERY_DRIVER_NAME "ACPI Battery Driver"
67 #define ACPI_BATTERY_DEVICE_NAME "Battery"
68 #define ACPI_BATTERY_FILE_INFO "info"
69 #define ACPI_BATTERY_FILE_STATUS "state"
70 #define ACPI_BATTERY_FILE_ALARM "alarm"
71 #define ACPI_BATTERY_NOTIFY_STATUS 0x80
72 #define ACPI_BATTERY_NOTIFY_INFO 0x81
73 #define ACPI_BATTERY_UNITS_WATTS "mW"
74 #define ACPI_BATTERY_UNITS_AMPS "mA"
75 
76 
77 /* --------------------------------------------------------------------------
78  Button
79  -------------------------------------------------------------------------- */
80 
81 #define ACPI_BUTTON_COMPONENT 0x00080000
82 #define ACPI_BUTTON_DRIVER_NAME "ACPI Button Driver"
83 #define ACPI_BUTTON_CLASS "button"
84 #define ACPI_BUTTON_FILE_INFO "info"
85 #define ACPI_BUTTON_FILE_STATE "state"
86 #define ACPI_BUTTON_TYPE_UNKNOWN 0x00
87 #define ACPI_BUTTON_NOTIFY_STATUS 0x80
88 
89 #define ACPI_BUTTON_SUBCLASS_POWER "power"
90 #define ACPI_BUTTON_HID_POWER "PNP0C0C"
91 #define ACPI_BUTTON_HID_POWERF "ACPI_FPB"
92 #define ACPI_BUTTON_DEVICE_NAME_POWER "Power Button (CM)"
93 #define ACPI_BUTTON_DEVICE_NAME_POWERF "Power Button (FF)"
94 #define ACPI_BUTTON_TYPE_POWER 0x01
95 #define ACPI_BUTTON_TYPE_POWERF 0x02
96 
97 #define ACPI_BUTTON_SUBCLASS_SLEEP "sleep"
98 #define ACPI_BUTTON_HID_SLEEP "PNP0C0E"
99 #define ACPI_BUTTON_HID_SLEEPF "ACPI_FSB"
100 #define ACPI_BUTTON_DEVICE_NAME_SLEEP "Sleep Button (CM)"
101 #define ACPI_BUTTON_DEVICE_NAME_SLEEPF "Sleep Button (FF)"
102 #define ACPI_BUTTON_TYPE_SLEEP 0x03
103 #define ACPI_BUTTON_TYPE_SLEEPF 0x04
104 
105 #define ACPI_BUTTON_SUBCLASS_LID "lid"
106 #define ACPI_BUTTON_HID_LID "PNP0C0D"
107 #define ACPI_BUTTON_DEVICE_NAME_LID "Lid Switch"
108 #define ACPI_BUTTON_TYPE_LID 0x05
109 
110 int acpi_button_init (void);
111 void acpi_button_exit (void);
112 
113 /* --------------------------------------------------------------------------
114  Embedded Controller
115  -------------------------------------------------------------------------- */
116 
117 #define ACPI_EC_COMPONENT 0x00100000
118 #define ACPI_EC_CLASS "embedded_controller"
119 #define ACPI_EC_HID "PNP0C09"
120 #define ACPI_EC_DRIVER_NAME "ACPI Embedded Controller Driver"
121 #define ACPI_EC_DEVICE_NAME "Embedded Controller"
122 #define ACPI_EC_FILE_INFO "info"
123 
124 #ifdef CONFIG_ACPI_EC
125 
126 int acpi_ec_ecdt_probe (void);
127 int acpi_ec_init (void);
128 void acpi_ec_exit (void);
129 
130 #endif
131 
132 
133 /* --------------------------------------------------------------------------
134  Fan
135  -------------------------------------------------------------------------- */
136 
137 #define ACPI_FAN_COMPONENT 0x00200000
138 #define ACPI_FAN_CLASS "fan"
139 #define ACPI_FAN_HID "PNP0C0B"
140 #define ACPI_FAN_DRIVER_NAME "ACPI Fan Driver"
141 #define ACPI_FAN_DEVICE_NAME "Fan"
142 #define ACPI_FAN_FILE_STATE "state"
143 #define ACPI_FAN_NOTIFY_STATUS 0x80
144 
145 
146 /* --------------------------------------------------------------------------
147  PCI
148  -------------------------------------------------------------------------- */
149 
150 #ifdef CONFIG_ACPI_PCI
151 
152 #define ACPI_PCI_COMPONENT 0x00400000
153 
154 /* ACPI PCI Root Bridge (pci_root.c) */
155 
156 #define ACPI_PCI_ROOT_CLASS "pci_bridge"
157 #define ACPI_PCI_ROOT_HID "PNP0A03"
158 #define ACPI_PCI_ROOT_DRIVER_NAME "ACPI PCI Root Bridge Driver"
159 #define ACPI_PCI_ROOT_DEVICE_NAME "PCI Root Bridge"
160 
161 int acpi_pci_root_init (void);
162 void acpi_pci_root_exit (void);
163 
164 /* ACPI PCI Interrupt Link (pci_link.c) */
165 
166 #define ACPI_PCI_LINK_CLASS "pci_irq_routing"
167 #define ACPI_PCI_LINK_HID "PNP0C0F"
168 #define ACPI_PCI_LINK_DRIVER_NAME "ACPI PCI Interrupt Link Driver"
169 #define ACPI_PCI_LINK_DEVICE_NAME "PCI Interrupt Link"
170 #define ACPI_PCI_LINK_FILE_INFO "info"
171 #define ACPI_PCI_LINK_FILE_STATUS "state"
172 
173 int acpi_pci_link_check (void);
174 int acpi_pci_link_get_irq (ACPI_HANDLE handle, int index, int* edge_level, int* active_high_low);
175 int acpi_pci_link_init (void);
176 void acpi_pci_link_exit (void);
177 
178 /* ACPI PCI Interrupt Routing (pci_irq.c) */
179 
180 int acpi_pci_irq_add_prt (ACPI_HANDLE handle, int segment, int bus);
181 
182 /* ACPI PCI Device Binding (pci_bind.c) */
183 
184 struct pci_bus;
185 
186 int acpi_pci_bind (struct acpi_device *device);
187 int acpi_pci_bind_root (struct acpi_device *device, struct acpi_pci_id *id, struct pci_bus *bus);
188 
189 #endif /*CONFIG_ACPI_PCI*/
190 
191 
192 /* --------------------------------------------------------------------------
193  Power Resource
194  -------------------------------------------------------------------------- */
195 
196 #define ACPI_POWER_COMPONENT 0x00800000
197 #define ACPI_POWER_CLASS "power_resource"
198 #define ACPI_POWER_HID "ACPI_PWR"
199 #define ACPI_POWER_DRIVER_NAME "ACPI Power Resource Driver"
200 #define ACPI_POWER_DEVICE_NAME "Power Resource"
201 #define ACPI_POWER_FILE_INFO "info"
202 #define ACPI_POWER_FILE_STATUS "state"
203 #define ACPI_POWER_RESOURCE_STATE_OFF 0x00
204 #define ACPI_POWER_RESOURCE_STATE_ON 0x01
205 #define ACPI_POWER_RESOURCE_STATE_UNKNOWN 0xFF
206 
207 
208 
210 int acpi_power_transition (struct acpi_device *device, int state);
211 int acpi_power_init (void);
212 void acpi_power_exit (void);
213 
214 
215 /* --------------------------------------------------------------------------
216  Processor
217  -------------------------------------------------------------------------- */
218 
219 #define ACPI_PROCESSOR_COMPONENT 0x01000000
220 #define ACPI_PROCESSOR_CLASS "processor"
221 #define ACPI_PROCESSOR_HID "Processor"
222 #define ACPI_PROCESSOR_DRIVER_NAME "ACPI Processor Driver"
223 #define ACPI_PROCESSOR_DEVICE_NAME "Processor"
224 #define ACPI_PROCESSOR_FILE_INFO "info"
225 #define ACPI_PROCESSOR_FILE_POWER "power"
226 #define ACPI_PROCESSOR_FILE_PERFORMANCE "performance"
227 #define ACPI_PROCESSOR_FILE_THROTTLING "throttling"
228 #define ACPI_PROCESSOR_FILE_LIMIT "limit"
229 #define ACPI_PROCESSOR_NOTIFY_PERFORMANCE 0x80
230 #define ACPI_PROCESSOR_NOTIFY_POWER 0x81
231 #define ACPI_PROCESSOR_LIMIT_NONE 0x00
232 #define ACPI_PROCESSOR_LIMIT_INCREMENT 0x01
233 #define ACPI_PROCESSOR_LIMIT_DECREMENT 0x02
234 
236 
237 
238 /* --------------------------------------------------------------------------
239  System
240  -------------------------------------------------------------------------- */
241 
242 #define ACPI_SYSTEM_COMPONENT 0x02000000
243 #define ACPI_SYSTEM_CLASS "system"
244 #define ACPI_SYSTEM_HID "ACPI_SYS"
245 #define ACPI_SYSTEM_DRIVER_NAME "ACPI System Driver"
246 #define ACPI_SYSTEM_DEVICE_NAME "System"
247 #define ACPI_SYSTEM_FILE_INFO "info"
248 #define ACPI_SYSTEM_FILE_EVENT "event"
249 #define ACPI_SYSTEM_FILE_ALARM "alarm"
250 #define ACPI_SYSTEM_FILE_DSDT "dsdt"
251 #define ACPI_SYSTEM_FILE_FADT "fadt"
252 #define ACPI_SYSTEM_FILE_SLEEP "sleep"
253 #define ACPI_SYSTEM_FILE_DEBUG_LAYER "debug_layer"
254 #define ACPI_SYSTEM_FILE_DEBUG_LEVEL "debug_level"
255 
256 int acpi_system_init (void);
257 void acpi_system_exit (void);
258 
259 
260 /* --------------------------------------------------------------------------
261  Thermal Zone
262  -------------------------------------------------------------------------- */
263 
264 #define ACPI_THERMAL_COMPONENT 0x04000000
265 #define ACPI_THERMAL_CLASS "thermal_zone"
266 #define ACPI_THERMAL_HID "ThermalZone"
267 #define ACPI_THERMAL_DRIVER_NAME "ACPI Thermal Zone Driver"
268 #define ACPI_THERMAL_DEVICE_NAME "Thermal Zone"
269 #define ACPI_THERMAL_FILE_STATE "state"
270 #define ACPI_THERMAL_FILE_TEMPERATURE "temperature"
271 #define ACPI_THERMAL_FILE_TRIP_POINTS "trip_points"
272 #define ACPI_THERMAL_FILE_COOLING_MODE "cooling_mode"
273 #define ACPI_THERMAL_FILE_POLLING_FREQ "polling_frequency"
274 #define ACPI_THERMAL_NOTIFY_TEMPERATURE 0x80
275 #define ACPI_THERMAL_NOTIFY_THRESHOLDS 0x81
276 #define ACPI_THERMAL_NOTIFY_DEVICES 0x82
277 #define ACPI_THERMAL_NOTIFY_CRITICAL 0xF0
278 #define ACPI_THERMAL_NOTIFY_HOT 0xF1
279 #define ACPI_THERMAL_MODE_ACTIVE 0x00
280 #define ACPI_THERMAL_MODE_PASSIVE 0x01
281 #define ACPI_THERMAL_PATH_POWEROFF "/sbin/poweroff"
282 
283 /* Motherboard devices */
284 int acpi_motherboard_init(void);
285 /* --------------------------------------------------------------------------
286  Debug Support
287  -------------------------------------------------------------------------- */
288 
289 #define ACPI_DEBUG_RESTORE 0
290 #define ACPI_DEBUG_LOW 1
291 #define ACPI_DEBUG_MEDIUM 2
292 #define ACPI_DEBUG_HIGH 3
293 #define ACPI_DEBUG_DRIVERS 4
294 
295 extern UINT32 acpi_dbg_level;
296 extern UINT32 acpi_dbg_layer;
297 
298 static inline void
300  UINT32 flag)
301 {
302  static UINT32 layer_save;
303  static UINT32 level_save;
304 
305  switch (flag) {
306  case ACPI_DEBUG_RESTORE:
307  acpi_dbg_layer = layer_save;
308  acpi_dbg_level = level_save;
309  break;
310  case ACPI_DEBUG_LOW:
311  case ACPI_DEBUG_MEDIUM:
312  case ACPI_DEBUG_HIGH:
313  case ACPI_DEBUG_DRIVERS:
314  layer_save = acpi_dbg_layer;
315  level_save = acpi_dbg_level;
316  break;
317  }
318 
319  switch (flag) {
320  case ACPI_DEBUG_LOW:
323  break;
324  case ACPI_DEBUG_MEDIUM:
327  break;
328  case ACPI_DEBUG_HIGH:
329  acpi_dbg_layer = 0xFFFFFFFF;
330  acpi_dbg_level = 0xFFFFFFFF;
331  break;
332  case ACPI_DEBUG_DRIVERS:
334  acpi_dbg_level = 0xFFFFFFFF;
335  break;
336  }
337 }
338 
339 
340 #endif /*__ACPI_DRIVERS_H__*/
int acpi_power_init(void)
Definition: power.c:660
#define ACPI_DEBUG_MEDIUM
Definition: acpi_drivers.h:291
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
#define ACPI_LV_FUNCTIONS
Definition: acoutput.h:117
#define ACPI_DEBUG_HIGH
Definition: acpi_drivers.h:292
void acpi_system_exit(void)
Definition: system.c:414
int acpi_power_transition(struct acpi_device *device, int state)
Definition: power.c:484
unsigned int UINT32
Definition: devices.h:37
int acpi_button_init(void)
Definition: button.c:298
int acpi_motherboard_init(void)
GLuint index
Definition: glext.h:6031
#define ACPI_COMPONENT_DEFAULT
Definition: acoutput.h:78
#define ACPI_LV_ALL_EXCEPTIONS
Definition: acoutput.h:93
#define ACPI_ALL_DRIVERS
Definition: acoutput.h:82
#define ACPI_DEBUG_RESTORE
Definition: acpi_drivers.h:289
int acpi_power_get_inferred_state(struct acpi_device *device)
Definition: power.c:444
#define ACPI_DEBUG_DRIVERS
Definition: acpi_drivers.h:293
int acpi_processor_set_thermal_limit(ACPI_HANDLE handle, int type)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean flag
Definition: glfuncs.h:52
static int state
Definition: maze.c:121
#define ACPI_DEBUG_DEFAULT
Definition: acoutput.h:189
UINT32 acpi_dbg_level
UINT32 acpi_dbg_layer
void acpi_button_exit(void)
Definition: button.c:314
static void acpi_set_debug(UINT32 flag)
Definition: acpi_drivers.h:299
void acpi_power_exit(void)
#define ACPI_DEBUG_LOW
Definition: acpi_drivers.h:290
int acpi_system_init(void)
Definition: system.c:399