]> git.proxmox.com Git - mirror_edk2.git/blame - QuarkPlatformPkg/Include/Library/PlatformHelperLib.h
QuarkPlatformPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / QuarkPlatformPkg / Include / Library / PlatformHelperLib.h
CommitLineData
b303605e
MK
1/** @file\r
2PlatformHelperLib function prototype definitions.\r
3\r
8ac69667 4Copyright (c) 2013 - 2016 Intel Corporation.\r
b303605e 5\r
0eb3de2e 6SPDX-License-Identifier: BSD-2-Clause-Patent\r
b303605e
MK
7\r
8**/\r
9\r
10#ifndef __PLATFORM_HELPER_LIB_H__\r
11#define __PLATFORM_HELPER_LIB_H__\r
12\r
13#include "Platform.h"\r
14\r
15//\r
16// Function prototypes for routines exported by this library.\r
17//\r
18\r
19/**\r
20 Find pointer to RAW data in Firmware volume file.\r
21\r
22 @param FvNameGuid Firmware volume to search. If == NULL search all.\r
23 @param FileNameGuid Firmware volume file to search for.\r
24 @param SectionData Pointer to RAW data section of found file.\r
25 @param SectionDataSize Pointer to UNITN to get size of RAW data.\r
26\r
27 @retval EFI_SUCCESS Raw Data found.\r
28 @retval EFI_INVALID_PARAMETER FileNameGuid == NULL.\r
29 @retval EFI_NOT_FOUND Firmware volume file not found.\r
30 @retval EFI_UNSUPPORTED Unsupported in current enviroment (PEI or DXE).\r
31\r
32**/\r
33EFI_STATUS\r
34EFIAPI\r
35PlatformFindFvFileRawDataSection (\r
36 IN CONST EFI_GUID *FvNameGuid OPTIONAL,\r
37 IN CONST EFI_GUID *FileNameGuid,\r
38 OUT VOID **SectionData,\r
39 OUT UINTN *SectionDataSize\r
40 );\r
41\r
b303605e
MK
42/**\r
43 Find free spi protect register and write to it to protect a flash region.\r
44\r
45 @param DirectValue Value to directly write to register.\r
46 if DirectValue == 0 the use Base & Length below.\r
47 @param BaseAddress Base address of region in Flash Memory Map.\r
48 @param Length Length of region to protect.\r
49\r
50 @retval EFI_SUCCESS Free spi protect register found & written.\r
51 @retval EFI_NOT_FOUND Free Spi protect register not found.\r
52 @retval EFI_DEVICE_ERROR Unable to write to spi protect register.\r
53\r
54**/\r
55EFI_STATUS\r
56EFIAPI\r
57PlatformWriteFirstFreeSpiProtect (\r
58 IN CONST UINT32 DirectValue,\r
59 IN CONST UINT32 BaseAddress,\r
60 IN CONST UINT32 Length\r
61 );\r
62\r
63/**\r
64 Lock legacy SPI static configuration information.\r
65\r
66 Function will assert if unable to lock config.\r
67\r
68**/\r
69VOID\r
70EFIAPI\r
71PlatformFlashLockConfig (\r
72 VOID\r
73 );\r
74\r
75/**\r
76 Lock regions and config of SPI flash given the policy for this platform.\r
77\r
78 Function will assert if unable to lock regions or config.\r
79\r
80 @param PreBootPolicy If TRUE do Pre Boot Flash Lock Policy.\r
81\r
82**/\r
83VOID\r
84EFIAPI\r
85PlatformFlashLockPolicy (\r
86 IN CONST BOOLEAN PreBootPolicy\r
87 );\r
88\r
b303605e
MK
89/** Check if System booted with recovery Boot Stage1 image.\r
90\r
91 @retval TRUE If system booted with recovery Boot Stage1 image.\r
92 @retval FALSE If system booted with normal stage1 image.\r
93\r
94**/\r
95BOOLEAN\r
96EFIAPI\r
97PlatformIsBootWithRecoveryStage1 (\r
98 VOID\r
99 );\r
100\r
101/**\r
102 Clear SPI Protect registers.\r
103\r
104 @retval EFI_SUCESS SPI protect registers cleared.\r
105 @retval EFI_ACCESS_DENIED Unable to clear SPI protect registers.\r
106**/\r
107\r
108EFI_STATUS\r
109EFIAPI\r
110PlatformClearSpiProtect (\r
111 VOID\r
112 );\r
113\r
114/**\r
115 Determine if an SPI address range is protected.\r
116\r
117 @param SpiBaseAddress Base of SPI range.\r
118 @param Length Length of SPI range.\r
119\r
120 @retval TRUE Range is protected.\r
121 @retval FALSE Range is not protected.\r
122**/\r
123BOOLEAN\r
124EFIAPI\r
125PlatformIsSpiRangeProtected (\r
126 IN CONST UINT32 SpiBaseAddress,\r
127 IN CONST UINT32 Length\r
128 );\r
129\r
130/**\r
131 Set Legacy GPIO Level\r
132\r
133 @param LevelRegOffset GPIO level register Offset from GPIO Base Address.\r
134 @param GpioNum GPIO bit to change.\r
135 @param HighLevel If TRUE set GPIO High else Set GPIO low.\r
136\r
137**/\r
138VOID\r
139EFIAPI\r
140PlatformLegacyGpioSetLevel (\r
141 IN CONST UINT32 LevelRegOffset,\r
142 IN CONST UINT32 GpioNum,\r
143 IN CONST BOOLEAN HighLevel\r
144 );\r
145\r
146/**\r
147 Get Legacy GPIO Level\r
148\r
149 @param LevelRegOffset GPIO level register Offset from GPIO Base Address.\r
150 @param GpioNum GPIO bit to check.\r
151\r
152 @retval TRUE If bit is SET.\r
153 @retval FALSE If bit is CLEAR.\r
154\r
155**/\r
156BOOLEAN\r
157EFIAPI\r
158PlatformLegacyGpioGetLevel (\r
159 IN CONST UINT32 LevelRegOffset,\r
160 IN CONST UINT32 GpioNum\r
161 );\r
162\r
163/**\r
164 Set the direction of Pcal9555 IO Expander GPIO pin.\r
165\r
166 @param Pcal9555SlaveAddr I2c Slave address of Pcal9555 Io Expander.\r
167 @param GpioNum Gpio direction to configure - values 0-7 for Port0\r
168 and 8-15 for Port1.\r
169 @param CfgAsInput If TRUE set pin direction as input else set as output.\r
170\r
171**/\r
172VOID\r
173EFIAPI\r
174PlatformPcal9555GpioSetDir (\r
175 IN CONST UINT32 Pcal9555SlaveAddr,\r
176 IN CONST UINT32 GpioNum,\r
177 IN CONST BOOLEAN CfgAsInput\r
178 );\r
179\r
180/**\r
181 Set the level of Pcal9555 IO Expander GPIO high or low.\r
182\r
183 @param Pcal9555SlaveAddr I2c Slave address of Pcal9555 Io Expander.\r
184 @param GpioNum Gpio to change values 0-7 for Port0 and 8-15\r
185 for Port1.\r
186 @param HighLevel If TRUE set pin high else set pin low.\r
187\r
188**/\r
189VOID\r
190EFIAPI\r
191PlatformPcal9555GpioSetLevel (\r
192 IN CONST UINT32 Pcal9555SlaveAddr,\r
193 IN CONST UINT32 GpioNum,\r
194 IN CONST BOOLEAN HighLevel\r
195 );\r
196\r
197/**\r
198\r
199 Enable pull-up/pull-down resistors of Pcal9555 GPIOs.\r
200\r
201 @param Pcal9555SlaveAddr I2c Slave address of Pcal9555 Io Expander.\r
202 @param GpioNum Gpio to change values 0-7 for Port0 and 8-15\r
203 for Port1.\r
204\r
205**/\r
206VOID\r
207EFIAPI\r
208PlatformPcal9555GpioEnablePull (\r
209 IN CONST UINT32 Pcal9555SlaveAddr,\r
210 IN CONST UINT32 GpioNum\r
211 );\r
212\r
213/**\r
214\r
215 Disable pull-up/pull-down resistors of Pcal9555 GPIOs.\r
216\r
217 @param Pcal9555SlaveAddr I2c Slave address of Pcal9555 Io Expander.\r
218 @param GpioNum Gpio to change values 0-7 for Port0 and 8-15\r
219 for Port1.\r
220\r
221**/\r
222VOID\r
223EFIAPI\r
224PlatformPcal9555GpioDisablePull (\r
225 IN CONST UINT32 Pcal9555SlaveAddr,\r
226 IN CONST UINT32 GpioNum\r
227 );\r
228\r
229BOOLEAN\r
230EFIAPI\r
231PlatformPcal9555GpioGetState (\r
232 IN CONST UINT32 Pcal9555SlaveAddr,\r
233 IN CONST UINT32 GpioNum\r
234 );\r
235\r
236/**\r
237 Init platform LEDs into known state.\r
238\r
239 @param PlatformType Executing platform type.\r
240\r
241 @retval EFI_SUCCESS Operation success.\r
242\r
243**/\r
244EFI_STATUS\r
245EFIAPI\r
246PlatformLedInit (\r
247 IN CONST EFI_PLATFORM_TYPE Type\r
248 );\r
249\r
250/**\r
251 Turn on or off platform flash update LED.\r
252\r
253 @param PlatformType Executing platform type.\r
254 @param TurnOn If TRUE turn on else turn off.\r
255\r
256 @retval EFI_SUCCESS Operation success.\r
257\r
258**/\r
259EFI_STATUS\r
260EFIAPI\r
261PlatformFlashUpdateLed (\r
262 IN CONST EFI_PLATFORM_TYPE Type,\r
263 IN CONST BOOLEAN TurnOn\r
264 );\r
265\r
266#endif // #ifndef __PLATFORM_HELPER_LIB_H__\r