When a merge does not work automatically, git prevents
[pandora-kernel.git] / include / acpi / achware.h
1 /******************************************************************************
2  *
3  * Name: achware.h -- hardware specific interfaces
4  *
5  *****************************************************************************/
6
7 /*
8  * Copyright (C) 2000 - 2005, R. Byron Moore
9  * All rights reserved.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  * 1. Redistributions of source code must retain the above copyright
15  *    notice, this list of conditions, and the following disclaimer,
16  *    without modification.
17  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18  *    substantially similar to the "NO WARRANTY" disclaimer below
19  *    ("Disclaimer") and any redistribution must be conditioned upon
20  *    including a substantially similar Disclaimer requirement for further
21  *    binary redistribution.
22  * 3. Neither the names of the above-listed copyright holders nor the names
23  *    of any contributors may be used to endorse or promote products derived
24  *    from this software without specific prior written permission.
25  *
26  * Alternatively, this software may be distributed under the terms of the
27  * GNU General Public License ("GPL") version 2 as published by the Free
28  * Software Foundation.
29  *
30  * NO WARRANTY
31  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41  * POSSIBILITY OF SUCH DAMAGES.
42  */
43
44 #ifndef __ACHWARE_H__
45 #define __ACHWARE_H__
46
47
48 /* PM Timer ticks per second (HZ) */
49
50 #define PM_TIMER_FREQUENCY  3579545
51
52 /* Values for the _SST reserved method */
53
54 #define ACPI_SST_INDICATOR_OFF  0
55 #define ACPI_SST_WORKING        1
56 #define ACPI_SST_WAKING         2
57 #define ACPI_SST_SLEEPING       3
58 #define ACPI_SST_SLEEP_CONTEXT  4
59
60
61 /* Prototypes */
62
63
64 /*
65  * hwacpi - high level functions
66  */
67 acpi_status
68 acpi_hw_initialize (
69         void);
70
71 acpi_status
72 acpi_hw_set_mode (
73         u32                             mode);
74
75 u32
76 acpi_hw_get_mode (
77         void);
78
79
80 /*
81  * hwregs - ACPI Register I/O
82  */
83 struct acpi_bit_register_info *
84 acpi_hw_get_bit_register_info (
85         u32                             register_id);
86
87 acpi_status
88 acpi_hw_register_read (
89         u8                              use_lock,
90         u32                             register_id,
91         u32                             *return_value);
92
93 acpi_status
94 acpi_hw_register_write (
95         u8                              use_lock,
96         u32                             register_id,
97         u32                             value);
98
99 acpi_status
100 acpi_hw_low_level_read (
101         u32                             width,
102         u32                             *value,
103         struct acpi_generic_address     *reg);
104
105 acpi_status
106 acpi_hw_low_level_write (
107         u32                             width,
108         u32                             value,
109         struct acpi_generic_address     *reg);
110
111 acpi_status
112 acpi_hw_clear_acpi_status (
113         u32                             flags);
114
115
116 /*
117  * hwgpe - GPE support
118  */
119 acpi_status
120 acpi_hw_write_gpe_enable_reg (
121         struct acpi_gpe_event_info      *gpe_event_info);
122
123 acpi_status
124 acpi_hw_disable_gpe_block (
125         struct acpi_gpe_xrupt_info      *gpe_xrupt_info,
126         struct acpi_gpe_block_info      *gpe_block);
127
128 acpi_status
129 acpi_hw_clear_gpe (
130         struct acpi_gpe_event_info      *gpe_event_info);
131
132 acpi_status
133 acpi_hw_clear_gpe_block (
134         struct acpi_gpe_xrupt_info      *gpe_xrupt_info,
135         struct acpi_gpe_block_info      *gpe_block);
136
137 #ifdef  ACPI_FUTURE_USAGE
138 acpi_status
139 acpi_hw_get_gpe_status (
140         struct acpi_gpe_event_info      *gpe_event_info,
141         acpi_event_status               *event_status);
142 #endif  /* ACPI_FUTURE_USAGE */
143
144 acpi_status
145 acpi_hw_disable_all_gpes (
146         void);
147
148 acpi_status
149 acpi_hw_enable_all_runtime_gpes (
150         void);
151
152 acpi_status
153 acpi_hw_enable_all_wakeup_gpes (
154         void);
155
156 acpi_status
157 acpi_hw_enable_runtime_gpe_block (
158         struct acpi_gpe_xrupt_info      *gpe_xrupt_info,
159         struct acpi_gpe_block_info      *gpe_block);
160
161
162 #ifdef  ACPI_FUTURE_USAGE
163 /*
164  * hwtimer - ACPI Timer prototypes
165  */
166 acpi_status
167 acpi_get_timer_resolution (
168         u32                             *resolution);
169
170 acpi_status
171 acpi_get_timer (
172         u32                             *ticks);
173
174 acpi_status
175 acpi_get_timer_duration (
176         u32                             start_ticks,
177         u32                             end_ticks,
178         u32                             *time_elapsed);
179 #endif  /* ACPI_FUTURE_USAGE */
180
181
182 #endif /* __ACHWARE_H__ */