1 | /****************************************************************************** |
2 | * |
3 | * Name: achware.h -- hardware specific interfaces |
4 | * |
5 | *****************************************************************************/ |
6 | |
7 | /* |
8 | * Copyright (C) 2000 - 2019, Intel Corp. |
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 | /* Values for the _SST predefined method */ |
49 | |
50 | #define ACPI_SST_INDICATOR_OFF 0 |
51 | #define ACPI_SST_WORKING 1 |
52 | #define ACPI_SST_WAKING 2 |
53 | #define ACPI_SST_SLEEPING 3 |
54 | #define ACPI_SST_SLEEP_CONTEXT 4 |
55 | |
56 | |
57 | /* |
58 | * hwacpi - high level functions |
59 | */ |
60 | ACPI_STATUS |
61 | AcpiHwSetMode ( |
62 | UINT32 Mode); |
63 | |
64 | UINT32 |
65 | AcpiHwGetMode ( |
66 | void); |
67 | |
68 | |
69 | /* |
70 | * hwregs - ACPI Register I/O |
71 | */ |
72 | ACPI_STATUS |
73 | AcpiHwValidateRegister ( |
74 | ACPI_GENERIC_ADDRESS *Reg, |
75 | UINT8 MaxBitWidth, |
76 | UINT64 *Address); |
77 | |
78 | ACPI_STATUS |
79 | AcpiHwRead ( |
80 | UINT64 *Value, |
81 | ACPI_GENERIC_ADDRESS *Reg); |
82 | |
83 | ACPI_STATUS |
84 | AcpiHwWrite ( |
85 | UINT64 Value, |
86 | ACPI_GENERIC_ADDRESS *Reg); |
87 | |
88 | ACPI_BIT_REGISTER_INFO * |
89 | AcpiHwGetBitRegisterInfo ( |
90 | UINT32 RegisterId); |
91 | |
92 | ACPI_STATUS |
93 | AcpiHwWritePm1Control ( |
94 | UINT32 Pm1aControl, |
95 | UINT32 Pm1bControl); |
96 | |
97 | ACPI_STATUS |
98 | AcpiHwRegisterRead ( |
99 | UINT32 RegisterId, |
100 | UINT32 *ReturnValue); |
101 | |
102 | ACPI_STATUS |
103 | AcpiHwRegisterWrite ( |
104 | UINT32 RegisterId, |
105 | UINT32 Value); |
106 | |
107 | ACPI_STATUS |
108 | AcpiHwClearAcpiStatus ( |
109 | void); |
110 | |
111 | |
112 | /* |
113 | * hwsleep - sleep/wake support (Legacy sleep registers) |
114 | */ |
115 | ACPI_STATUS |
116 | AcpiHwLegacySleep ( |
117 | UINT8 SleepState); |
118 | |
119 | ACPI_STATUS |
120 | AcpiHwLegacyWakePrep ( |
121 | UINT8 SleepState); |
122 | |
123 | ACPI_STATUS |
124 | AcpiHwLegacyWake ( |
125 | UINT8 SleepState); |
126 | |
127 | |
128 | /* |
129 | * hwesleep - sleep/wake support (Extended FADT-V5 sleep registers) |
130 | */ |
131 | void |
132 | AcpiHwExecuteSleepMethod ( |
133 | char *MethodName, |
134 | UINT32 IntegerArgument); |
135 | |
136 | ACPI_STATUS |
137 | AcpiHwExtendedSleep ( |
138 | UINT8 SleepState); |
139 | |
140 | ACPI_STATUS |
141 | AcpiHwExtendedWakePrep ( |
142 | UINT8 SleepState); |
143 | |
144 | ACPI_STATUS |
145 | AcpiHwExtendedWake ( |
146 | UINT8 SleepState); |
147 | |
148 | |
149 | /* |
150 | * hwvalid - Port I/O with validation |
151 | */ |
152 | ACPI_STATUS |
153 | AcpiHwReadPort ( |
154 | ACPI_IO_ADDRESS Address, |
155 | UINT32 *Value, |
156 | UINT32 Width); |
157 | |
158 | ACPI_STATUS |
159 | AcpiHwWritePort ( |
160 | ACPI_IO_ADDRESS Address, |
161 | UINT32 Value, |
162 | UINT32 Width); |
163 | |
164 | |
165 | /* |
166 | * hwgpe - GPE support |
167 | */ |
168 | UINT32 |
169 | AcpiHwGetGpeRegisterBit ( |
170 | ACPI_GPE_EVENT_INFO *GpeEventInfo); |
171 | |
172 | ACPI_STATUS |
173 | AcpiHwLowSetGpe ( |
174 | ACPI_GPE_EVENT_INFO *GpeEventInfo, |
175 | UINT32 Action); |
176 | |
177 | ACPI_STATUS |
178 | AcpiHwDisableGpeBlock ( |
179 | ACPI_GPE_XRUPT_INFO *GpeXruptInfo, |
180 | ACPI_GPE_BLOCK_INFO *GpeBlock, |
181 | void *Context); |
182 | |
183 | ACPI_STATUS |
184 | AcpiHwClearGpe ( |
185 | ACPI_GPE_EVENT_INFO *GpeEventInfo); |
186 | |
187 | ACPI_STATUS |
188 | AcpiHwClearGpeBlock ( |
189 | ACPI_GPE_XRUPT_INFO *GpeXruptInfo, |
190 | ACPI_GPE_BLOCK_INFO *GpeBlock, |
191 | void *Context); |
192 | |
193 | ACPI_STATUS |
194 | AcpiHwGetGpeStatus ( |
195 | ACPI_GPE_EVENT_INFO *GpeEventInfo, |
196 | ACPI_EVENT_STATUS *EventStatus); |
197 | |
198 | ACPI_STATUS |
199 | AcpiHwDisableAllGpes ( |
200 | void); |
201 | |
202 | ACPI_STATUS |
203 | AcpiHwEnableAllRuntimeGpes ( |
204 | void); |
205 | |
206 | ACPI_STATUS |
207 | AcpiHwEnableAllWakeupGpes ( |
208 | void); |
209 | |
210 | ACPI_STATUS |
211 | AcpiHwEnableRuntimeGpeBlock ( |
212 | ACPI_GPE_XRUPT_INFO *GpeXruptInfo, |
213 | ACPI_GPE_BLOCK_INFO *GpeBlock, |
214 | void *Context); |
215 | |
216 | |
217 | /* |
218 | * hwpci - PCI configuration support |
219 | */ |
220 | ACPI_STATUS |
221 | AcpiHwDerivePciId ( |
222 | ACPI_PCI_ID *PciId, |
223 | ACPI_HANDLE RootPciDevice, |
224 | ACPI_HANDLE PciRegion); |
225 | |
226 | |
227 | #endif /* __ACHWARE_H__ */ |
228 | |