1a9f12690SJung-uk Kim /****************************************************************************** 2a9f12690SJung-uk Kim * 3a9f12690SJung-uk Kim * Name: achware.h -- hardware specific interfaces 4a9f12690SJung-uk Kim * 5a9f12690SJung-uk Kim *****************************************************************************/ 6a9f12690SJung-uk Kim 7d244b227SJung-uk Kim /* 8ec3fc72fSJung-uk Kim * Copyright (C) 2000 - 2012, Intel Corp. 9a9f12690SJung-uk Kim * All rights reserved. 10a9f12690SJung-uk Kim * 11d244b227SJung-uk Kim * Redistribution and use in source and binary forms, with or without 12d244b227SJung-uk Kim * modification, are permitted provided that the following conditions 13d244b227SJung-uk Kim * are met: 14d244b227SJung-uk Kim * 1. Redistributions of source code must retain the above copyright 15d244b227SJung-uk Kim * notice, this list of conditions, and the following disclaimer, 16d244b227SJung-uk Kim * without modification. 17d244b227SJung-uk Kim * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18d244b227SJung-uk Kim * substantially similar to the "NO WARRANTY" disclaimer below 19d244b227SJung-uk Kim * ("Disclaimer") and any redistribution must be conditioned upon 20d244b227SJung-uk Kim * including a substantially similar Disclaimer requirement for further 21d244b227SJung-uk Kim * binary redistribution. 22d244b227SJung-uk Kim * 3. Neither the names of the above-listed copyright holders nor the names 23d244b227SJung-uk Kim * of any contributors may be used to endorse or promote products derived 24d244b227SJung-uk Kim * from this software without specific prior written permission. 25a9f12690SJung-uk Kim * 26d244b227SJung-uk Kim * Alternatively, this software may be distributed under the terms of the 27d244b227SJung-uk Kim * GNU General Public License ("GPL") version 2 as published by the Free 28d244b227SJung-uk Kim * Software Foundation. 29a9f12690SJung-uk Kim * 30d244b227SJung-uk Kim * NO WARRANTY 31d244b227SJung-uk Kim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32d244b227SJung-uk Kim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33d244b227SJung-uk Kim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34d244b227SJung-uk Kim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35d244b227SJung-uk Kim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36d244b227SJung-uk Kim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37d244b227SJung-uk Kim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38d244b227SJung-uk Kim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39d244b227SJung-uk Kim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40d244b227SJung-uk Kim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41d244b227SJung-uk Kim * POSSIBILITY OF SUCH DAMAGES. 42d244b227SJung-uk Kim */ 43a9f12690SJung-uk Kim 44a9f12690SJung-uk Kim #ifndef __ACHWARE_H__ 45a9f12690SJung-uk Kim #define __ACHWARE_H__ 46a9f12690SJung-uk Kim 47a9f12690SJung-uk Kim 48a9f12690SJung-uk Kim /* Values for the _SST predefined method */ 49a9f12690SJung-uk Kim 50a9f12690SJung-uk Kim #define ACPI_SST_INDICATOR_OFF 0 51a9f12690SJung-uk Kim #define ACPI_SST_WORKING 1 52a9f12690SJung-uk Kim #define ACPI_SST_WAKING 2 53a9f12690SJung-uk Kim #define ACPI_SST_SLEEPING 3 54a9f12690SJung-uk Kim #define ACPI_SST_SLEEP_CONTEXT 4 55a9f12690SJung-uk Kim 56a9f12690SJung-uk Kim 57a9f12690SJung-uk Kim /* 58a9f12690SJung-uk Kim * hwacpi - high level functions 59a9f12690SJung-uk Kim */ 60a9f12690SJung-uk Kim ACPI_STATUS 61a9f12690SJung-uk Kim AcpiHwSetMode ( 62a9f12690SJung-uk Kim UINT32 Mode); 63a9f12690SJung-uk Kim 64a9f12690SJung-uk Kim UINT32 65a9f12690SJung-uk Kim AcpiHwGetMode ( 66a9f12690SJung-uk Kim void); 67a9f12690SJung-uk Kim 68a9f12690SJung-uk Kim 69a9f12690SJung-uk Kim /* 70a9f12690SJung-uk Kim * hwregs - ACPI Register I/O 71a9f12690SJung-uk Kim */ 72d6dd1baeSJung-uk Kim ACPI_STATUS 73d6dd1baeSJung-uk Kim AcpiHwValidateRegister ( 74d6dd1baeSJung-uk Kim ACPI_GENERIC_ADDRESS *Reg, 75d6dd1baeSJung-uk Kim UINT8 MaxBitWidth, 76d6dd1baeSJung-uk Kim UINT64 *Address); 77d6dd1baeSJung-uk Kim 78d6dd1baeSJung-uk Kim ACPI_STATUS 79d6dd1baeSJung-uk Kim AcpiHwRead ( 80d6dd1baeSJung-uk Kim UINT32 *Value, 81d6dd1baeSJung-uk Kim ACPI_GENERIC_ADDRESS *Reg); 82d6dd1baeSJung-uk Kim 83d6dd1baeSJung-uk Kim ACPI_STATUS 84d6dd1baeSJung-uk Kim AcpiHwWrite ( 85d6dd1baeSJung-uk Kim UINT32 Value, 86d6dd1baeSJung-uk Kim ACPI_GENERIC_ADDRESS *Reg); 87d6dd1baeSJung-uk Kim 88a9f12690SJung-uk Kim ACPI_BIT_REGISTER_INFO * 89a9f12690SJung-uk Kim AcpiHwGetBitRegisterInfo ( 90a9f12690SJung-uk Kim UINT32 RegisterId); 91a9f12690SJung-uk Kim 92a9f12690SJung-uk Kim ACPI_STATUS 93a9f12690SJung-uk Kim AcpiHwWritePm1Control ( 94a9f12690SJung-uk Kim UINT32 Pm1aControl, 95a9f12690SJung-uk Kim UINT32 Pm1bControl); 96a9f12690SJung-uk Kim 97a9f12690SJung-uk Kim ACPI_STATUS 98a9f12690SJung-uk Kim AcpiHwRegisterRead ( 99a9f12690SJung-uk Kim UINT32 RegisterId, 100a9f12690SJung-uk Kim UINT32 *ReturnValue); 101a9f12690SJung-uk Kim 102a9f12690SJung-uk Kim ACPI_STATUS 103a9f12690SJung-uk Kim AcpiHwRegisterWrite ( 104a9f12690SJung-uk Kim UINT32 RegisterId, 105a9f12690SJung-uk Kim UINT32 Value); 106a9f12690SJung-uk Kim 107a9f12690SJung-uk Kim ACPI_STATUS 108a9f12690SJung-uk Kim AcpiHwClearAcpiStatus ( 109a9f12690SJung-uk Kim void); 110a9f12690SJung-uk Kim 111a9f12690SJung-uk Kim 112a9f12690SJung-uk Kim /* 113a159c266SJung-uk Kim * hwsleep - sleep/wake support (Legacy sleep registers) 114a159c266SJung-uk Kim */ 115a159c266SJung-uk Kim ACPI_STATUS 116a159c266SJung-uk Kim AcpiHwLegacySleep ( 117*1df130f1SJung-uk Kim UINT8 SleepState); 118a159c266SJung-uk Kim 119a159c266SJung-uk Kim ACPI_STATUS 120a159c266SJung-uk Kim AcpiHwLegacyWakePrep ( 121*1df130f1SJung-uk Kim UINT8 SleepState); 122a159c266SJung-uk Kim 123a159c266SJung-uk Kim ACPI_STATUS 124a159c266SJung-uk Kim AcpiHwLegacyWake ( 125*1df130f1SJung-uk Kim UINT8 SleepState); 126a159c266SJung-uk Kim 127a159c266SJung-uk Kim 128a159c266SJung-uk Kim /* 129a159c266SJung-uk Kim * hwesleep - sleep/wake support (Extended FADT-V5 sleep registers) 130a159c266SJung-uk Kim */ 131a159c266SJung-uk Kim void 132a159c266SJung-uk Kim AcpiHwExecuteSleepMethod ( 133a159c266SJung-uk Kim char *MethodName, 134a159c266SJung-uk Kim UINT32 IntegerArgument); 135a159c266SJung-uk Kim 136a159c266SJung-uk Kim ACPI_STATUS 137a159c266SJung-uk Kim AcpiHwExtendedSleep ( 138*1df130f1SJung-uk Kim UINT8 SleepState); 139a159c266SJung-uk Kim 140a159c266SJung-uk Kim ACPI_STATUS 141a159c266SJung-uk Kim AcpiHwExtendedWakePrep ( 142*1df130f1SJung-uk Kim UINT8 SleepState); 143a159c266SJung-uk Kim 144a159c266SJung-uk Kim ACPI_STATUS 145a159c266SJung-uk Kim AcpiHwExtendedWake ( 146*1df130f1SJung-uk Kim UINT8 SleepState); 147a159c266SJung-uk Kim 148a159c266SJung-uk Kim 149a159c266SJung-uk Kim /* 150a9f12690SJung-uk Kim * hwvalid - Port I/O with validation 151a9f12690SJung-uk Kim */ 152a9f12690SJung-uk Kim ACPI_STATUS 153a9f12690SJung-uk Kim AcpiHwReadPort ( 154a9f12690SJung-uk Kim ACPI_IO_ADDRESS Address, 155a9f12690SJung-uk Kim UINT32 *Value, 156a9f12690SJung-uk Kim UINT32 Width); 157a9f12690SJung-uk Kim 158a9f12690SJung-uk Kim ACPI_STATUS 159a9f12690SJung-uk Kim AcpiHwWritePort ( 160a9f12690SJung-uk Kim ACPI_IO_ADDRESS Address, 161a9f12690SJung-uk Kim UINT32 Value, 162a9f12690SJung-uk Kim UINT32 Width); 163a9f12690SJung-uk Kim 164a9f12690SJung-uk Kim 165a9f12690SJung-uk Kim /* 166a9f12690SJung-uk Kim * hwgpe - GPE support 167a9f12690SJung-uk Kim */ 168a88e22b7SJung-uk Kim UINT32 169a88e22b7SJung-uk Kim AcpiHwGetGpeRegisterBit ( 170*1df130f1SJung-uk Kim ACPI_GPE_EVENT_INFO *GpeEventInfo); 171a9f12690SJung-uk Kim 172a9f12690SJung-uk Kim ACPI_STATUS 173a88e22b7SJung-uk Kim AcpiHwLowSetGpe ( 174a88e22b7SJung-uk Kim ACPI_GPE_EVENT_INFO *GpeEventInfo, 175a88e22b7SJung-uk Kim UINT32 Action); 176a9f12690SJung-uk Kim 177a9f12690SJung-uk Kim ACPI_STATUS 178a9f12690SJung-uk Kim AcpiHwDisableGpeBlock ( 179a9f12690SJung-uk Kim ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 180a9f12690SJung-uk Kim ACPI_GPE_BLOCK_INFO *GpeBlock, 181a9f12690SJung-uk Kim void *Context); 182a9f12690SJung-uk Kim 183a9f12690SJung-uk Kim ACPI_STATUS 184a9f12690SJung-uk Kim AcpiHwClearGpe ( 185a9f12690SJung-uk Kim ACPI_GPE_EVENT_INFO *GpeEventInfo); 186a9f12690SJung-uk Kim 187a9f12690SJung-uk Kim ACPI_STATUS 188a9f12690SJung-uk Kim AcpiHwClearGpeBlock ( 189a9f12690SJung-uk Kim ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 190a9f12690SJung-uk Kim ACPI_GPE_BLOCK_INFO *GpeBlock, 191a9f12690SJung-uk Kim void *Context); 192a9f12690SJung-uk Kim 193a9f12690SJung-uk Kim ACPI_STATUS 194a9f12690SJung-uk Kim AcpiHwGetGpeStatus ( 195a9f12690SJung-uk Kim ACPI_GPE_EVENT_INFO *GpeEventInfo, 196a9f12690SJung-uk Kim ACPI_EVENT_STATUS *EventStatus); 197a9f12690SJung-uk Kim 198a9f12690SJung-uk Kim ACPI_STATUS 199a9f12690SJung-uk Kim AcpiHwDisableAllGpes ( 200a9f12690SJung-uk Kim void); 201a9f12690SJung-uk Kim 202a9f12690SJung-uk Kim ACPI_STATUS 203a9f12690SJung-uk Kim AcpiHwEnableAllRuntimeGpes ( 204a9f12690SJung-uk Kim void); 205a9f12690SJung-uk Kim 206a9f12690SJung-uk Kim ACPI_STATUS 207a9f12690SJung-uk Kim AcpiHwEnableAllWakeupGpes ( 208a9f12690SJung-uk Kim void); 209a9f12690SJung-uk Kim 210a9f12690SJung-uk Kim ACPI_STATUS 211a9f12690SJung-uk Kim AcpiHwEnableRuntimeGpeBlock ( 212a9f12690SJung-uk Kim ACPI_GPE_XRUPT_INFO *GpeXruptInfo, 213a9f12690SJung-uk Kim ACPI_GPE_BLOCK_INFO *GpeBlock, 214a9f12690SJung-uk Kim void *Context); 215a9f12690SJung-uk Kim 216a9f12690SJung-uk Kim 217a9f12690SJung-uk Kim /* 21842fecd12SJung-uk Kim * hwpci - PCI configuration support 21942fecd12SJung-uk Kim */ 22042fecd12SJung-uk Kim ACPI_STATUS 22142fecd12SJung-uk Kim AcpiHwDerivePciId ( 22242fecd12SJung-uk Kim ACPI_PCI_ID *PciId, 22342fecd12SJung-uk Kim ACPI_HANDLE RootPciDevice, 22442fecd12SJung-uk Kim ACPI_HANDLE PciRegion); 22542fecd12SJung-uk Kim 22642fecd12SJung-uk Kim 227a9f12690SJung-uk Kim #endif /* __ACHWARE_H__ */ 228