2 * acpi_drivers.h ($Revision: 32 $)
4 * Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
5 * Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
7 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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.
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.
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.
23 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
26 #ifndef __ACPI_DRIVERS_H__
27 #define __ACPI_DRIVERS_H__
29 #define ACPI_MAX_STRING 80
32 /* --------------------------------------------------------------------------
34 -------------------------------------------------------------------------- */
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"
43 /* --------------------------------------------------------------------------
45 -------------------------------------------------------------------------- */
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
59 /* --------------------------------------------------------------------------
61 -------------------------------------------------------------------------- */
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"
77 /* --------------------------------------------------------------------------
79 -------------------------------------------------------------------------- */
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
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
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
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
110 int acpi_button_init (void);
111 void acpi_button_exit (void);
113 /* --------------------------------------------------------------------------
115 -------------------------------------------------------------------------- */
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"
124 #ifdef CONFIG_ACPI_EC
126 int acpi_ec_ecdt_probe (void);
127 int acpi_ec_init (void);
128 void acpi_ec_exit (void);
133 /* --------------------------------------------------------------------------
135 -------------------------------------------------------------------------- */
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
146 /* --------------------------------------------------------------------------
148 -------------------------------------------------------------------------- */
150 #ifdef CONFIG_ACPI_PCI
152 #define ACPI_PCI_COMPONENT 0x00400000
154 /* ACPI PCI Root Bridge (pci_root.c) */
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"
161 int acpi_pci_root_init (void);
162 void acpi_pci_root_exit (void);
164 /* ACPI PCI Interrupt Link (pci_link.c) */
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"
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);
178 /* ACPI PCI Interrupt Routing (pci_irq.c) */
180 int acpi_pci_irq_add_prt (ACPI_HANDLE handle
, int segment
, int bus
);
182 /* ACPI PCI Device Binding (pci_bind.c) */
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
);
189 #endif /*CONFIG_ACPI_PCI*/
192 /* --------------------------------------------------------------------------
194 -------------------------------------------------------------------------- */
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
209 int acpi_power_get_inferred_state (struct acpi_device
*device
);
210 int acpi_power_transition (struct acpi_device
*device
, int state
);
211 int acpi_power_init (void);
212 void acpi_power_exit (void);
215 /* --------------------------------------------------------------------------
217 -------------------------------------------------------------------------- */
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
235 int acpi_processor_set_thermal_limit(ACPI_HANDLE handle
, int type
);
238 /* --------------------------------------------------------------------------
240 -------------------------------------------------------------------------- */
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"
256 int acpi_system_init (void);
257 void acpi_system_exit (void);
260 /* --------------------------------------------------------------------------
262 -------------------------------------------------------------------------- */
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"
283 /* Motherboard devices */
284 int acpi_motherboard_init(void);
285 /* --------------------------------------------------------------------------
287 -------------------------------------------------------------------------- */
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
295 extern UINT32 acpi_dbg_level
;
296 extern UINT32 acpi_dbg_layer
;
302 static UINT32 layer_save
;
303 static UINT32 level_save
;
306 case ACPI_DEBUG_RESTORE
:
307 acpi_dbg_layer
= layer_save
;
308 acpi_dbg_level
= level_save
;
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
;
321 acpi_dbg_layer
= ACPI_COMPONENT_DEFAULT
| ACPI_ALL_DRIVERS
;
322 acpi_dbg_level
= ACPI_DEBUG_DEFAULT
;
324 case ACPI_DEBUG_MEDIUM
:
325 acpi_dbg_layer
= ACPI_COMPONENT_DEFAULT
| ACPI_ALL_DRIVERS
;
326 acpi_dbg_level
= ACPI_LV_FUNCTIONS
| ACPI_LV_ALL_EXCEPTIONS
;
328 case ACPI_DEBUG_HIGH
:
329 acpi_dbg_layer
= 0xFFFFFFFF;
330 acpi_dbg_level
= 0xFFFFFFFF;
332 case ACPI_DEBUG_DRIVERS
:
333 acpi_dbg_layer
= ACPI_ALL_DRIVERS
;
334 acpi_dbg_level
= 0xFFFFFFFF;
340 #endif /*__ACPI_DRIVERS_H__*/