achware.h revision 229989
1178825Sdfr/****************************************************************************** 2233294Sstas * 3233294Sstas * Name: achware.h -- hardware specific interfaces 4233294Sstas * 5178825Sdfr *****************************************************************************/ 6233294Sstas 7233294Sstas/* 8233294Sstas * Copyright (C) 2000 - 2012, Intel Corp. 9178825Sdfr * All rights reserved. 10233294Sstas * 11233294Sstas * Redistribution and use in source and binary forms, with or without 12178825Sdfr * modification, are permitted provided that the following conditions 13233294Sstas * are met: 14233294Sstas * 1. Redistributions of source code must retain the above copyright 15233294Sstas * notice, this list of conditions, and the following disclaimer, 16178825Sdfr * without modification. 17233294Sstas * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18233294Sstas * substantially similar to the "NO WARRANTY" disclaimer below 19233294Sstas * ("Disclaimer") and any redistribution must be conditioned upon 20178825Sdfr * including a substantially similar Disclaimer requirement for further 21233294Sstas * binary redistribution. 22233294Sstas * 3. Neither the names of the above-listed copyright holders nor the names 23233294Sstas * of any contributors may be used to endorse or promote products derived 24233294Sstas * from this software without specific prior written permission. 25233294Sstas * 26233294Sstas * Alternatively, this software may be distributed under the terms of the 27233294Sstas * GNU General Public License ("GPL") version 2 as published by the Free 28233294Sstas * Software Foundation. 29233294Sstas * 30233294Sstas * NO WARRANTY 31233294Sstas * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32178825Sdfr * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33178825Sdfr * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34178825Sdfr * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35178825Sdfr * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36178825Sdfr * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37178825Sdfr * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38178825Sdfr * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39178825Sdfr * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40178825Sdfr * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41178825Sdfr * POSSIBILITY OF SUCH DAMAGES. 42178825Sdfr */ 43233294Sstas 44233294Sstas#ifndef __ACHWARE_H__ 45178825Sdfr#define __ACHWARE_H__ 46178825Sdfr 47178825Sdfr 48178825Sdfr/* Values for the _SST predefined method */ 49178825Sdfr 50178825Sdfr#define ACPI_SST_INDICATOR_OFF 0 51178825Sdfr#define ACPI_SST_WORKING 1 52178825Sdfr#define ACPI_SST_WAKING 2 53178825Sdfr#define ACPI_SST_SLEEPING 3 54178825Sdfr#define ACPI_SST_SLEEP_CONTEXT 4 55178825Sdfr 56178825Sdfr 57178825Sdfr/* 58178825Sdfr * hwacpi - high level functions 59178825Sdfr */ 60178825SdfrACPI_STATUS 61178825SdfrAcpiHwSetMode ( 62178825Sdfr UINT32 Mode); 63178825Sdfr 64178825SdfrUINT32 65178825SdfrAcpiHwGetMode ( 66178825Sdfr void); 67178825Sdfr 68178825Sdfr 69233294Sstas/* 70178825Sdfr * hwregs - ACPI Register I/O 71178825Sdfr */ 72178825SdfrACPI_STATUS 73178825SdfrAcpiHwValidateRegister ( 74178825Sdfr ACPI_GENERIC_ADDRESS *Reg, 75178825Sdfr UINT8 MaxBitWidth, 76178825Sdfr UINT64 *Address); 77233294Sstas 78178825SdfrACPI_STATUS 79178825SdfrAcpiHwRead ( 80178825Sdfr UINT32 *Value, 81178825Sdfr ACPI_GENERIC_ADDRESS *Reg); 82178825Sdfr 83178825SdfrACPI_STATUS 84178825SdfrAcpiHwWrite ( 85178825Sdfr UINT32 Value, 86233294Sstas ACPI_GENERIC_ADDRESS *Reg); 87178825Sdfr 88233294SstasACPI_BIT_REGISTER_INFO * 89178825SdfrAcpiHwGetBitRegisterInfo ( 90178825Sdfr UINT32 RegisterId); 91178825Sdfr 92178825SdfrACPI_STATUS 93178825SdfrAcpiHwWritePm1Control ( 94233294Sstas UINT32 Pm1aControl, 95178825Sdfr UINT32 Pm1bControl); 96233294Sstas 97178825SdfrACPI_STATUS 98178825SdfrAcpiHwRegisterRead ( 99178825Sdfr UINT32 RegisterId, 100233294Sstas UINT32 *ReturnValue); 101178825Sdfr 102178825SdfrACPI_STATUS 103178825SdfrAcpiHwRegisterWrite ( 104178825Sdfr UINT32 RegisterId, 105178825Sdfr UINT32 Value); 106178825Sdfr 107178825SdfrACPI_STATUS 108178825SdfrAcpiHwClearAcpiStatus ( 109178825Sdfr void); 110178825Sdfr 111178825Sdfr 112178825Sdfr/* 113178825Sdfr * hwvalid - Port I/O with validation 114233294Sstas */ 115178825SdfrACPI_STATUS 116178825SdfrAcpiHwReadPort ( 117178825Sdfr ACPI_IO_ADDRESS Address, 118 UINT32 *Value, 119 UINT32 Width); 120 121ACPI_STATUS 122AcpiHwWritePort ( 123 ACPI_IO_ADDRESS Address, 124 UINT32 Value, 125 UINT32 Width); 126 127 128/* 129 * hwgpe - GPE support 130 */ 131UINT32 132AcpiHwGetGpeRegisterBit ( 133 ACPI_GPE_EVENT_INFO *GpeEventInfo, 134 ACPI_GPE_REGISTER_INFO *GpeRegisterInfo); 135 136ACPI_STATUS 137AcpiHwLowSetGpe ( 138 ACPI_GPE_EVENT_INFO *GpeEventInfo, 139 UINT32 Action); 140 141ACPI_STATUS 142AcpiHwDisableGpeBlock ( 143 ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 144 ACPI_GPE_BLOCK_INFO *GpeBlock, 145 void *Context); 146 147ACPI_STATUS 148AcpiHwClearGpe ( 149 ACPI_GPE_EVENT_INFO *GpeEventInfo); 150 151ACPI_STATUS 152AcpiHwClearGpeBlock ( 153 ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 154 ACPI_GPE_BLOCK_INFO *GpeBlock, 155 void *Context); 156 157ACPI_STATUS 158AcpiHwGetGpeStatus ( 159 ACPI_GPE_EVENT_INFO *GpeEventInfo, 160 ACPI_EVENT_STATUS *EventStatus); 161 162ACPI_STATUS 163AcpiHwDisableAllGpes ( 164 void); 165 166ACPI_STATUS 167AcpiHwEnableAllRuntimeGpes ( 168 void); 169 170ACPI_STATUS 171AcpiHwEnableAllWakeupGpes ( 172 void); 173 174ACPI_STATUS 175AcpiHwEnableRuntimeGpeBlock ( 176 ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 177 ACPI_GPE_BLOCK_INFO *GpeBlock, 178 void *Context); 179 180 181/* 182 * hwpci - PCI configuration support 183 */ 184ACPI_STATUS 185AcpiHwDerivePciId ( 186 ACPI_PCI_ID *PciId, 187 ACPI_HANDLE RootPciDevice, 188 ACPI_HANDLE PciRegion); 189 190 191/* 192 * hwtimer - ACPI Timer prototypes 193 */ 194ACPI_STATUS 195AcpiGetTimerResolution ( 196 UINT32 *Resolution); 197 198ACPI_STATUS 199AcpiGetTimer ( 200 UINT32 *Ticks); 201 202ACPI_STATUS 203AcpiGetTimerDuration ( 204 UINT32 StartTicks, 205 UINT32 EndTicks, 206 UINT32 *TimeElapsed); 207 208 209#endif /* __ACHWARE_H__ */ 210