Subversion Repositories shark

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
434 giacomo 1
/******************************************************************************
2
 *
3
 * Name: achware.h -- hardware specific interfaces
4
 *
5
 *****************************************************************************/
6
 
7
/*
8
 * Copyright (C) 2000 - 2003, 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
#define PM_TIMER_FREQUENCY  3579545
50
 
51
 
52
/* Prototypes */
53
 
54
 
55
acpi_status
56
acpi_hw_initialize (
57
        void);
58
 
59
acpi_status
60
acpi_hw_shutdown (
61
        void);
62
 
63
acpi_status
64
acpi_hw_initialize_system_info (
65
        void);
66
 
67
acpi_status
68
acpi_hw_set_mode (
69
        u32                             mode);
70
 
71
u32
72
acpi_hw_get_mode (
73
        void);
74
 
75
u32
76
acpi_hw_get_mode_capabilities (
77
        void);
78
 
79
/* Register I/O Prototypes */
80
 
81
struct acpi_bit_register_info *
82
acpi_hw_get_bit_register_info (
83
        u32                             register_id);
84
 
85
acpi_status
86
acpi_hw_register_read (
87
        u8                              use_lock,
88
        u32                             register_id,
89
        u32                             *return_value);
90
 
91
acpi_status
92
acpi_hw_register_write (
93
        u8                              use_lock,
94
        u32                             register_id,
95
        u32                             value);
96
 
97
acpi_status
98
acpi_hw_low_level_read (
99
        u32                             width,
100
        u32                             *value,
101
        struct acpi_generic_address     *reg);
102
 
103
acpi_status
104
acpi_hw_low_level_write (
105
        u32                             width,
106
        u32                             value,
107
        struct acpi_generic_address     *reg);
108
 
109
acpi_status
110
acpi_hw_clear_acpi_status (
111
        u32                             flags);
112
 
113
 
114
/* GPE support */
115
 
116
acpi_status
117
acpi_hw_enable_gpe (
118
        struct acpi_gpe_event_info      *gpe_event_info);
119
 
120
void
121
acpi_hw_enable_gpe_for_wakeup (
122
        struct acpi_gpe_event_info      *gpe_event_info);
123
 
124
acpi_status
125
acpi_hw_disable_gpe (
126
        struct acpi_gpe_event_info      *gpe_event_info);
127
 
128
acpi_status
129
acpi_hw_disable_gpe_block (
130
        struct acpi_gpe_xrupt_info      *gpe_xrupt_info,
131
        struct acpi_gpe_block_info      *gpe_block);
132
 
133
void
134
acpi_hw_disable_gpe_for_wakeup (
135
        struct acpi_gpe_event_info      *gpe_event_info);
136
 
137
acpi_status
138
acpi_hw_clear_gpe (
139
        struct acpi_gpe_event_info      *gpe_event_info);
140
 
141
acpi_status
142
acpi_hw_clear_gpe_block (
143
        struct acpi_gpe_xrupt_info      *gpe_xrupt_info,
144
        struct acpi_gpe_block_info      *gpe_block);
145
 
146
acpi_status
147
acpi_hw_get_gpe_status (
148
        struct acpi_gpe_event_info      *gpe_event_info,
149
        acpi_event_status               *event_status);
150
 
151
acpi_status
152
acpi_hw_disable_non_wakeup_gpes (
153
        void);
154
 
155
acpi_status
156
acpi_hw_enable_non_wakeup_gpes (
157
        void);
158
 
159
 
160
/* ACPI Timer prototypes */
161
 
162
acpi_status
163
acpi_get_timer_resolution (
164
        u32                             *resolution);
165
 
166
acpi_status
167
acpi_get_timer (
168
        u32                             *ticks);
169
 
170
acpi_status
171
acpi_get_timer_duration (
172
        u32                             start_ticks,
173
        u32                             end_ticks,
174
        u32                             *time_elapsed);
175
 
176
 
177
#endif /* __ACHWARE_H__ */