Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


29b60a8c0593bc3cd57c3122637c6f64d62e8605
[palacios.git] / kitten / include / acpi / achware.h
1 /******************************************************************************
2  *
3  * Name: achware.h -- hardware specific interfaces
4  *
5  *****************************************************************************/
6
7 /*
8  * Copyright (C) 2000 - 2006, 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 /* PM Timer ticks per second (HZ) */
48
49 #define PM_TIMER_FREQUENCY  3579545
50
51 /* Values for the _SST reserved method */
52
53 #define ACPI_SST_INDICATOR_OFF  0
54 #define ACPI_SST_WORKING        1
55 #define ACPI_SST_WAKING         2
56 #define ACPI_SST_SLEEPING       3
57 #define ACPI_SST_SLEEP_CONTEXT  4
58
59 /* Prototypes */
60
61 /*
62  * hwacpi - high level functions
63  */
64 acpi_status acpi_hw_initialize(void);
65
66 acpi_status acpi_hw_set_mode(u32 mode);
67
68 u32 acpi_hw_get_mode(void);
69
70 /*
71  * hwregs - ACPI Register I/O
72  */
73 struct acpi_bit_register_info *acpi_hw_get_bit_register_info(u32 register_id);
74
75 acpi_status
76 acpi_hw_register_read(u8 use_lock, u32 register_id, u32 * return_value);
77
78 acpi_status acpi_hw_register_write(u8 use_lock, u32 register_id, u32 value);
79
80 acpi_status
81 acpi_hw_low_level_read(u32 width,
82                        u32 * value, struct acpi_generic_address *reg);
83
84 acpi_status
85 acpi_hw_low_level_write(u32 width, u32 value, struct acpi_generic_address *reg);
86
87 acpi_status acpi_hw_clear_acpi_status(u32 flags);
88
89 /*
90  * hwgpe - GPE support
91  */
92 acpi_status
93 acpi_hw_write_gpe_enable_reg(struct acpi_gpe_event_info *gpe_event_info);
94
95 acpi_status
96 acpi_hw_disable_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
97                           struct acpi_gpe_block_info *gpe_block);
98
99 acpi_status acpi_hw_clear_gpe(struct acpi_gpe_event_info *gpe_event_info);
100
101 acpi_status
102 acpi_hw_clear_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
103                         struct acpi_gpe_block_info *gpe_block);
104
105 #ifdef  ACPI_FUTURE_USAGE
106 acpi_status
107 acpi_hw_get_gpe_status(struct acpi_gpe_event_info *gpe_event_info,
108                        acpi_event_status * event_status);
109 #endif                          /* ACPI_FUTURE_USAGE */
110
111 acpi_status acpi_hw_disable_all_gpes(void);
112
113 acpi_status acpi_hw_enable_all_runtime_gpes(void);
114
115 acpi_status acpi_hw_enable_all_wakeup_gpes(void);
116
117 acpi_status
118 acpi_hw_enable_runtime_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
119                                  struct acpi_gpe_block_info *gpe_block);
120
121 #ifdef  ACPI_FUTURE_USAGE
122 /*
123  * hwtimer - ACPI Timer prototypes
124  */
125 acpi_status acpi_get_timer_resolution(u32 * resolution);
126
127 acpi_status acpi_get_timer(u32 * ticks);
128
129 acpi_status
130 acpi_get_timer_duration(u32 start_ticks, u32 end_ticks, u32 * time_elapsed);
131 #endif                          /* ACPI_FUTURE_USAGE */
132
133 #endif                          /* __ACHWARE_H__ */