Merge to Fedora kernel-2.6.18-1.2224_FC5 patched with stable patch-2.6.18.1-vs2.0...
[linux-2.6.git] / include / asm-arm / apm.h
1 /* -*- linux-c -*-
2  *
3  * (C) 2003 zecke@handhelds.org
4  *
5  * GPL version 2
6  *
7  * based on arch/arm/kernel/apm.c
8  * factor out the information needed by architectures to provide
9  * apm status
10  *
11  *
12  */
13 #ifndef ARM_ASM_SA1100_APM_H
14 #define ARM_ASM_SA1100_APM_H
15
16 #include <linux/apm_bios.h>
17
18 /*
19  * This structure gets filled in by the machine specific 'get_power_status'
20  * implementation.  Any fields which are not set default to a safe value.
21  */
22 struct apm_power_info {
23         unsigned char   ac_line_status;
24 #define APM_AC_OFFLINE                  0
25 #define APM_AC_ONLINE                   1
26 #define APM_AC_BACKUP                   2
27 #define APM_AC_UNKNOWN                  0xff
28
29         unsigned char   battery_status;
30 #define APM_BATTERY_STATUS_HIGH         0
31 #define APM_BATTERY_STATUS_LOW          1
32 #define APM_BATTERY_STATUS_CRITICAL     2
33 #define APM_BATTERY_STATUS_CHARGING     3
34 #define APM_BATTERY_STATUS_NOT_PRESENT  4
35 #define APM_BATTERY_STATUS_UNKNOWN      0xff
36
37         unsigned char   battery_flag;
38 #define APM_BATTERY_FLAG_HIGH           (1 << 0)
39 #define APM_BATTERY_FLAG_LOW            (1 << 1)
40 #define APM_BATTERY_FLAG_CRITICAL       (1 << 2)
41 #define APM_BATTERY_FLAG_CHARGING       (1 << 3)
42 #define APM_BATTERY_FLAG_NOT_PRESENT    (1 << 7)
43 #define APM_BATTERY_FLAG_UNKNOWN        0xff
44
45         int             battery_life;
46         int             time;
47         int             units;
48 #define APM_UNITS_MINS                  0
49 #define APM_UNITS_SECS                  1
50 #define APM_UNITS_UNKNOWN               -1
51
52 };
53
54 /*
55  * This allows machines to provide their own "apm get power status" function.
56  */
57 extern void (*apm_get_power_status)(struct apm_power_info *);
58
59 /*
60  * Queue an event (APM_SYS_SUSPEND or APM_CRITICAL_SUSPEND)
61  */
62 void apm_queue_event(apm_event_t event);
63
64 #endif