1 /****************************************************************************** 2 * 3 * Name: achware.h -- hardware specific interfaces 4 * 5 *****************************************************************************/ 6 7 /* 8 * Copyright (C) 2000 - 2004, 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_prepare_gpes_for_sleep ( 153 void); 154 155 acpi_status 156 acpi_hw_restore_gpes_on_wake ( 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__ */ 178