acpireg.h revision 1.7 1 1.7 jruoho /* $NetBSD: acpireg.h,v 1.7 2010/03/05 08:30:48 jruoho Exp $ */
2 1.1 thorpej
3 1.1 thorpej /*
4 1.1 thorpej * Copyright 2001 Wasabi Systems, Inc.
5 1.1 thorpej * All rights reserved.
6 1.1 thorpej *
7 1.1 thorpej * Written by Jason R. Thorpe for Wasabi Systems, Inc.
8 1.1 thorpej *
9 1.1 thorpej * Redistribution and use in source and binary forms, with or without
10 1.1 thorpej * modification, are permitted provided that the following conditions
11 1.1 thorpej * are met:
12 1.1 thorpej * 1. Redistributions of source code must retain the above copyright
13 1.1 thorpej * notice, this list of conditions and the following disclaimer.
14 1.1 thorpej * 2. Redistributions in binary form must reproduce the above copyright
15 1.1 thorpej * notice, this list of conditions and the following disclaimer in the
16 1.1 thorpej * documentation and/or other materials provided with the distribution.
17 1.1 thorpej * 3. All advertising materials mentioning features or use of this software
18 1.1 thorpej * must display the following acknowledgement:
19 1.1 thorpej * This product includes software developed for the NetBSD Project by
20 1.1 thorpej * Wasabi Systems, Inc.
21 1.1 thorpej * 4. The name of Wasabi Systems, Inc. may not be used to endorse
22 1.1 thorpej * or promote products derived from this software without specific prior
23 1.1 thorpej * written permission.
24 1.1 thorpej *
25 1.1 thorpej * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND
26 1.1 thorpej * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
27 1.1 thorpej * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28 1.1 thorpej * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL WASABI SYSTEMS, INC
29 1.1 thorpej * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30 1.1 thorpej * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31 1.1 thorpej * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32 1.1 thorpej * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33 1.1 thorpej * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34 1.1 thorpej * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 1.1 thorpej * POSSIBILITY OF SUCH DAMAGE.
36 1.1 thorpej */
37 1.1 thorpej
38 1.7 jruoho #ifndef _SYS_DEV_ACPI_ACPIREG_H
39 1.7 jruoho #define _SYS_DEV_ACPI_ACPIREG_H
40 1.7 jruoho
41 1.1 thorpej /*
42 1.1 thorpej * This file defines various ACPI event messages, etc.
43 1.1 thorpej */
44 1.1 thorpej
45 1.1 thorpej /*
46 1.1 thorpej * 5.6.3: Device Object Notifications
47 1.1 thorpej */
48 1.1 thorpej
49 1.1 thorpej /* Device Object Notification Types */
50 1.1 thorpej #define ACPI_NOTIFY_BusCheck 0x00
51 1.1 thorpej #define ACPI_NOTIFY_DeviceCheck 0x01
52 1.1 thorpej #define ACPI_NOTIFY_DeviceWake 0x02
53 1.1 thorpej #define ACPI_NOTIFY_EjectRequest 0x03
54 1.1 thorpej #define ACPI_NOTIFY_DeviceCheckLight 0x04
55 1.1 thorpej #define ACPI_NOTIFY_FrquencyMismatch 0x05
56 1.1 thorpej #define ACPI_NOTIFY_BusModeMismatch 0x06
57 1.1 thorpej #define ACPI_NOTIFY_PowerFault 0x07
58 1.1 thorpej /* 0x08 - 0x7f reserved */
59 1.1 thorpej
60 1.1 thorpej /* Control Method Battery Device Notification Types */
61 1.1 thorpej #define ACPI_NOTIFY_BatteryStatusChanged 0x80
62 1.1 thorpej #define ACPI_NOTIFY_BatteryInformationChanged 0x81
63 1.1 thorpej
64 1.1 thorpej /* Power Source Object Notification Types */
65 1.1 thorpej #define ACPI_NOTIFY_PowerSourceStatusChanged 0x80
66 1.1 thorpej
67 1.1 thorpej /* Thermal Zone Object Notication Types */
68 1.1 thorpej #define ACPI_NOTIFY_ThermalZoneStatusChanged 0x80
69 1.1 thorpej #define ACPI_NOTIFY_ThermalZoneTripPointsChanged 0x81
70 1.1 thorpej #define ACPI_NOTIFY_DeviceListsChanged 0x82
71 1.1 thorpej
72 1.1 thorpej /* Control Method Power Button Notification Types */
73 1.1 thorpej #define ACPI_NOTIFY_S0PowerButtonPressed 0x80
74 1.1 thorpej
75 1.1 thorpej /* Control Method Sleep Button Notification Types */
76 1.1 thorpej #define ACPI_NOTIFY_S0SleepButtonPressed 0x80
77 1.1 thorpej
78 1.1 thorpej /* Control Method Lid Notification Types */
79 1.1 thorpej #define ACPI_NOTIFY_LidStatusChanged 0x80
80 1.1 thorpej
81 1.1 thorpej /* Processor Device Notification Values */
82 1.4 jmcneill #define ACPI_NOTIFY_PerformancePresentCapabilitiesChanged 0x80
83 1.1 thorpej #define ACPI_NOTIFY_CStatesChanged 0x81
84 1.1 thorpej
85 1.1 thorpej /*
86 1.2 thorpej * 6: Configuration
87 1.2 thorpej *
88 1.2 thorpej * 6.1: Device Identification Objects
89 1.2 thorpej *
90 1.2 thorpej * _ADR Object that evaluates to a device's address on
91 1.2 thorpej * its parent bus.
92 1.2 thorpej *
93 1.2 thorpej * _CID Object that evaluates to a device's Plug and Play
94 1.2 thorpej * compatible ID list.
95 1.2 thorpej *
96 1.2 thorpej * _DDN Object that associates a logical software name
97 1.2 thorpej * (for example, COM1) with a device.
98 1.2 thorpej *
99 1.2 thorpej * _HID Object that evaluates to a device's Plug and Play
100 1.2 thorpej * hardware ID.
101 1.2 thorpej *
102 1.2 thorpej * _SUN Objcet that evaluates to the slot-unique ID number
103 1.2 thorpej * for a slot.
104 1.2 thorpej *
105 1.2 thorpej * _STR Object that contains a Unicode identifier for a device.
106 1.2 thorpej *
107 1.2 thorpej * _UID Object that specifies a device's unique persistent ID,
108 1.2 thorpej * or a control method that generates it.
109 1.2 thorpej */
110 1.2 thorpej
111 1.2 thorpej /*
112 1.2 thorpej * 6.1.1: _ADR (Address)
113 1.2 thorpej *
114 1.2 thorpej * EISA EISA slot numnber 0-f
115 1.2 thorpej *
116 1.2 thorpej * Floppy Bus Drive select values used for programming
117 1.2 thorpej * the floppy controller to access the
118 1.2 thorpej * specified INT13 unit number. The _ADR
119 1.2 thorpej * objects should be sorted based on drive
120 1.2 thorpej * select encoding from 0-3.
121 1.2 thorpej *
122 1.2 thorpej * IDE controller 0 - primary channel, 1 - secondary channel
123 1.2 thorpej *
124 1.2 thorpej * IDE channel 0 - master drive, 1 - slave drive
125 1.2 thorpej *
126 1.2 thorpej * PCI High word - Device #, Low word - Function #
127 1.2 thorpej * 0xffff == all functions on a device
128 1.2 thorpej *
129 1.2 thorpej * PCMCIA Socket #; 0 == first socket
130 1.2 thorpej *
131 1.2 thorpej * PC Card Socket #; 0 == first socket
132 1.2 thorpej *
133 1.2 thorpej * SMBus Lowest slave address
134 1.2 thorpej *
135 1.2 thorpej * USB Root Hub Only one child of the host controller, must
136 1.2 thorpej * have an _ADR of 0.
137 1.2 thorpej *
138 1.2 thorpej * USB ports port number
139 1.2 thorpej */
140 1.2 thorpej #define ACPI_ADR_PCI_DEV(x) (((x) >> 16) & 0xffff)
141 1.2 thorpej #define ACPI_ADR_PCI_FUNC(x) ((x) & 0xffff)
142 1.2 thorpej #define ACPI_ADR_PCI_ALLFUNCS 0xffff
143 1.2 thorpej
144 1.2 thorpej /*
145 1.2 thorpej * 6.1.2: _CID (Compatible ID)
146 1.2 thorpej */
147 1.2 thorpej
148 1.2 thorpej /*
149 1.2 thorpej * 6.1.3: _DDN (Device Name)
150 1.2 thorpej */
151 1.2 thorpej
152 1.2 thorpej /*
153 1.2 thorpej * 6.1.4: _HID (Hardware ID)
154 1.2 thorpej */
155 1.2 thorpej
156 1.2 thorpej /*
157 1.2 thorpej * 6.1.5: _STR (String)
158 1.2 thorpej */
159 1.2 thorpej
160 1.2 thorpej /*
161 1.2 thorpej * 6.1.6: _SUN (Slot User Number)
162 1.2 thorpej */
163 1.2 thorpej
164 1.2 thorpej /*
165 1.2 thorpej * 6.1.7: _UID (Unique ID)
166 1.2 thorpej */
167 1.2 thorpej
168 1.2 thorpej /*
169 1.2 thorpej * 6.2: Device Configuration Objects
170 1.2 thorpej *
171 1.2 thorpej * _CRS Object that specifies a device's *current* resource
172 1.2 thorpej * settings, or a control method that generates such
173 1.2 thorpej * an object.
174 1.2 thorpej *
175 1.2 thorpej * _DIS Control method that disables a device.
176 1.2 thorpej *
177 1.2 thorpej * _DMA Object that specifies a device's *current* resources
178 1.2 thorpej * for DMA transactions.
179 1.2 thorpej *
180 1.2 thorpej * _FIX Object used to provide correlation between the
181 1.2 thorpej * fixed-hardware register blocks defined in the FADT
182 1.2 thorpej * and the devices that implement these fixed-hardware
183 1.2 thorpej * registers.
184 1.2 thorpej *
185 1.2 thorpej * _HPP Object that specifies the cache-line size, latency
186 1.2 thorpej * timer, SERR enable, and PERR enable values to be
187 1.2 thorpej * used when configuring a PCI device inserted into
188 1.2 thorpej * a hot-plug slot or initial configuration of a PCI
189 1.2 thorpej * device at system boot.
190 1.2 thorpej *
191 1.2 thorpej * _MAT Object that evaluates to a buffer of MADT APIC
192 1.2 thorpej * structure entries.
193 1.2 thorpej *
194 1.2 thorpej * _PRS An object that specifies a device's *possible*
195 1.2 thorpej * resource settings, or a control method that
196 1.2 thorpej * generates such an object.
197 1.2 thorpej *
198 1.2 thorpej * _PRT Object that specifies the PCI interrupt routing
199 1.2 thorpej * table.
200 1.2 thorpej *
201 1.2 thorpej * _PXM Object that specifies a proximity domain for a device.
202 1.2 thorpej *
203 1.2 thorpej * _SRS Control method that sets a device's settings.
204 1.2 thorpej */
205 1.2 thorpej
206 1.2 thorpej /*
207 1.2 thorpej * 6.2.1: _CRS (Current Resource Settings)
208 1.2 thorpej */
209 1.2 thorpej
210 1.2 thorpej /*
211 1.2 thorpej * 6.2.2: _DIS (Disable)
212 1.2 thorpej */
213 1.2 thorpej
214 1.2 thorpej /*
215 1.2 thorpej * 6.2.3: _DMA (Direct Memory AccesS)
216 1.2 thorpej */
217 1.2 thorpej
218 1.2 thorpej /*
219 1.2 thorpej * 6.2.4: _FIX (Fixed Register Resource Provider)
220 1.2 thorpej */
221 1.2 thorpej
222 1.2 thorpej /*
223 1.2 thorpej * 6.2.5: _HPP (Hot Plug Parameters)
224 1.2 thorpej */
225 1.2 thorpej
226 1.2 thorpej /*
227 1.2 thorpej * 6.2.6: _MAT (Multiple APIC Table Entry)
228 1.2 thorpej */
229 1.2 thorpej
230 1.2 thorpej /*
231 1.2 thorpej * 6.2.7: _PRS (Possible Resource Settings)
232 1.2 thorpej */
233 1.2 thorpej
234 1.2 thorpej /*
235 1.2 thorpej * 6.2.8: _PRT (PCI Routing Table)
236 1.2 thorpej */
237 1.2 thorpej
238 1.2 thorpej /*
239 1.2 thorpej * 6.2.9: _PXM (Proximity)
240 1.2 thorpej */
241 1.2 thorpej
242 1.2 thorpej /*
243 1.2 thorpej * 6.2.10: _SRS (Set Resource Settings)
244 1.2 thorpej */
245 1.2 thorpej
246 1.2 thorpej /*
247 1.2 thorpej * 6.3: Device Insertion and Removal Objects
248 1.2 thorpej *
249 1.2 thorpej * _EDL Object that evaluates to a package of namespace
250 1.2 thorpej * references of device objects that depend on
251 1.2 thorpej * the device containing _EDL. Whenever the named
252 1.2 thorpej * devices is ejected, OSPM ejects all dependent
253 1.2 thorpej * devices.
254 1.2 thorpej *
255 1.2 thorpej * _EJD Object that evaluates to the name of a device object
256 1.2 thorpej * on which a device depends. Whenever the named
257 1.2 thorpej * device is ejected, the dependent device must receive
258 1.2 thorpej * an ejection notification.
259 1.2 thorpej *
260 1.2 thorpej * _EJx Control method that ejects a device.
261 1.2 thorpej *
262 1.2 thorpej * _LCK Control method that locks or unlocks a device.
263 1.2 thorpej *
264 1.2 thorpej * _RMV Object that indicates that the given device is
265 1.2 thorpej * removable.
266 1.2 thorpej *
267 1.2 thorpej * _STA Control method that returns a device's status.
268 1.2 thorpej */
269 1.2 thorpej
270 1.2 thorpej /*
271 1.2 thorpej * 6.3.1: _EDL (Eject Device List)
272 1.2 thorpej */
273 1.2 thorpej
274 1.2 thorpej /*
275 1.2 thorpej * 6.3.2: _EJD (Ejection Dependent Device)
276 1.2 thorpej */
277 1.2 thorpej
278 1.2 thorpej /*
279 1.2 thorpej * 6.3.3: _EJx (Eject)
280 1.2 thorpej *
281 1.2 thorpej * x Indicates sleeping state at which device
282 1.2 thorpej * can be ejected.
283 1.2 thorpej */
284 1.2 thorpej
285 1.2 thorpej /*
286 1.2 thorpej * 6.3.4: _LCK (Lock)
287 1.2 thorpej */
288 1.2 thorpej
289 1.2 thorpej /*
290 1.2 thorpej * 6.3.5: _RMV (Remove)
291 1.2 thorpej */
292 1.2 thorpej
293 1.2 thorpej /*
294 1.1 thorpej * 6.3.6: _STA (Status) for device insertion/removal
295 1.1 thorpej */
296 1.1 thorpej #define ACPI_STA_DEV_PRESENT 0x00000001 /* device present */
297 1.1 thorpej #define ACPI_STA_DEV_ENABLED 0x00000002 /* enabled (decoding res.) */
298 1.1 thorpej #define ACPI_STA_DEV_SHOW 0x00000004 /* show device in UI */
299 1.1 thorpej #define ACPI_STA_DEV_OK 0x00000008 /* functioning properly */
300 1.1 thorpej #define ACPI_STA_DEV_BATT 0x00000010 /* battery present */
301 1.1 thorpej
302 1.2 thorpej /*
303 1.2 thorpej * 6.4: Resource Data Types for ACPI
304 1.2 thorpej *
305 1.2 thorpej * Used by the _CRS, _PRS, and _SRS methods.
306 1.2 thorpej */
307 1.2 thorpej
308 1.2 thorpej /*
309 1.2 thorpej * 7.1.4: _STA (Status) for power resource current state
310 1.2 thorpej */
311 1.1 thorpej #define ACPI_STA_POW_OFF 0 /* power resource off */
312 1.1 thorpej #define ACPI_STA_POW_ON 1 /* power resource on */
313 1.3 thorpej
314 1.3 thorpej /*
315 1.3 thorpej * ACPI driver components
316 1.3 thorpej */
317 1.3 thorpej
318 1.3 thorpej #define ACPI_BUS_COMPONENT 0x00010000
319 1.3 thorpej #define ACPI_ACAD_COMPONENT 0x00020000
320 1.3 thorpej #define ACPI_BAT_COMPONENT 0x00040000
321 1.3 thorpej #define ACPI_BUTTON_COMPONENT 0x00080000
322 1.3 thorpej #define ACPI_EC_COMPONENT 0x00100000
323 1.3 thorpej #define ACPI_LID_COMPONENT 0x00200000
324 1.3 thorpej #define ACPI_RESOURCE_COMPONENT 0x00400000
325 1.6 mlelstv #define ACPI_TZ_COMPONENT 0x00800000
326 1.7 jruoho
327 1.7 jruoho #endif /* !_SYS_DEV_ACPI_ACPIREG_H */
328