at v2.6.12-rc4 182 lines 5.0 kB view raw
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#define PM_TIMER_FREQUENCY 3579545 50 51 52/* Prototypes */ 53 54 55acpi_status 56acpi_hw_initialize ( 57 void); 58 59acpi_status 60acpi_hw_shutdown ( 61 void); 62 63acpi_status 64acpi_hw_initialize_system_info ( 65 void); 66 67acpi_status 68acpi_hw_set_mode ( 69 u32 mode); 70 71u32 72acpi_hw_get_mode ( 73 void); 74 75u32 76acpi_hw_get_mode_capabilities ( 77 void); 78 79/* Register I/O Prototypes */ 80 81struct acpi_bit_register_info * 82acpi_hw_get_bit_register_info ( 83 u32 register_id); 84 85acpi_status 86acpi_hw_register_read ( 87 u8 use_lock, 88 u32 register_id, 89 u32 *return_value); 90 91acpi_status 92acpi_hw_register_write ( 93 u8 use_lock, 94 u32 register_id, 95 u32 value); 96 97acpi_status 98acpi_hw_low_level_read ( 99 u32 width, 100 u32 *value, 101 struct acpi_generic_address *reg); 102 103acpi_status 104acpi_hw_low_level_write ( 105 u32 width, 106 u32 value, 107 struct acpi_generic_address *reg); 108 109acpi_status 110acpi_hw_clear_acpi_status ( 111 u32 flags); 112 113 114/* GPE support */ 115 116acpi_status 117acpi_hw_write_gpe_enable_reg ( 118 struct acpi_gpe_event_info *gpe_event_info); 119 120acpi_status 121acpi_hw_disable_gpe_block ( 122 struct acpi_gpe_xrupt_info *gpe_xrupt_info, 123 struct acpi_gpe_block_info *gpe_block); 124 125acpi_status 126acpi_hw_clear_gpe ( 127 struct acpi_gpe_event_info *gpe_event_info); 128 129acpi_status 130acpi_hw_clear_gpe_block ( 131 struct acpi_gpe_xrupt_info *gpe_xrupt_info, 132 struct acpi_gpe_block_info *gpe_block); 133 134#ifdef ACPI_FUTURE_USAGE 135acpi_status 136acpi_hw_get_gpe_status ( 137 struct acpi_gpe_event_info *gpe_event_info, 138 acpi_event_status *event_status); 139#endif 140 141acpi_status 142acpi_hw_disable_all_gpes ( 143 u32 flags); 144 145acpi_status 146acpi_hw_enable_all_runtime_gpes ( 147 u32 flags); 148 149acpi_status 150acpi_hw_enable_all_wakeup_gpes ( 151 u32 flags); 152 153acpi_status 154acpi_hw_enable_runtime_gpe_block ( 155 struct acpi_gpe_xrupt_info *gpe_xrupt_info, 156 struct acpi_gpe_block_info *gpe_block); 157 158acpi_status 159acpi_hw_enable_wakeup_gpe_block ( 160 struct acpi_gpe_xrupt_info *gpe_xrupt_info, 161 struct acpi_gpe_block_info *gpe_block); 162 163 164/* ACPI Timer prototypes */ 165 166#ifdef ACPI_FUTURE_USAGE 167acpi_status 168acpi_get_timer_resolution ( 169 u32 *resolution); 170 171acpi_status 172acpi_get_timer ( 173 u32 *ticks); 174 175acpi_status 176acpi_get_timer_duration ( 177 u32 start_ticks, 178 u32 end_ticks, 179 u32 *time_elapsed); 180#endif /* ACPI_FUTURE_USAGE */ 181 182#endif /* __ACHWARE_H__ */