]> git.proxmox.com Git - mirror_edk2.git/blame - Vlv2TbltDevicePkg/Library/I2CLibPei/I2CDelayPei.c
Vlv2TbltDevicePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / Vlv2TbltDevicePkg / Library / I2CLibPei / I2CDelayPei.c
CommitLineData
4e522096
DW
1/** @file\r
2 MicroSecondDelay implementation of ACPI Timer.\r
3 \r
4 Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>\r
5 \r
9dc8036d 6 SPDX-License-Identifier: BSD-2-Clause-Patent\r
4e522096
DW
7 \r
8--*/\r
9\r
10#include "PiPei.h"\r
11#include "I2CAccess.h"\r
12#include "I2CDelayPei.h"\r
13#include <Library/DebugLib.h>\r
14#include <Library/PeiServicesTablePointerLib.h>\r
15#include <Ppi/Stall.h>\r
16\r
17/**\r
18 Stalls the CPU for at least the given number of microseconds.\r
19 Stalls the CPU for the number of microseconds specified by MicroSeconds.\r
20\r
21 @param MicroSeconds The minimum number of microseconds to delay.\r
22\r
23 @return EFI_STATUS\r
24\r
25**/\r
26EFI_STATUS\r
27EFIAPI\r
28MicroSecondDelay (\r
29 IN UINTN MicroSeconds\r
30 )\r
31{\r
32\r
33 EFI_PEI_STALL_PPI *StallPpi;\r
34 EFI_STATUS Status;\r
35 CONST EFI_PEI_SERVICES **PeiServices;\r
36 \r
37 PeiServices = GetPeiServicesTablePointer();\r
38\r
39\r
40 Status = (**PeiServices).LocatePpi (PeiServices, &gEfiPeiStallPpiGuid, 0, NULL, &StallPpi);\r
41 ASSERT(!EFI_ERROR(Status));\r
42\r
43 StallPpi->Stall (PeiServices, StallPpi, MicroSeconds);\r
44\r
45 return EFI_SUCCESS;\r
46}\r