/** @file
This file provides services for Gpio policy function
Copyright (c) 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include
#include
#include
#include
#include
#include
/**
Print GPIO_DXE_CONFIG and serial out.
@param[in] PchPolicy Pointer to a PCH_POLICY_PROTOCOL
**/
VOID
GpioDxePrintConfig (
IN PCH_POLICY_PROTOCOL *PchPolicy
)
{
EFI_STATUS Status;
GPIO_DXE_CONFIG *GpioDxeConfig;
Status = GetConfigBlock ((VOID *) PchPolicy, &gGpioDxeConfigGuid, (VOID *) &GpioDxeConfig);
ASSERT_EFI_ERROR (Status);
DEBUG ((DEBUG_INFO, "------------------ GPIO DXE Config ------------------\n"));
DEBUG ((DEBUG_INFO, " HideGpioAcpiDevice : %d\n", GpioDxeConfig->HideGpioAcpiDevice));
}
/**
Load DXE Config block default for GPIO
@param[in] ConfigBlockPointer Pointer to config block
**/
VOID
GpioDxeLoadConfigDefault (
IN VOID *ConfigBlockPointer
)
{
GPIO_DXE_CONFIG *GpioDxeConfig;
GpioDxeConfig = ConfigBlockPointer;
DEBUG ((DEBUG_INFO, "GpioDxeConfig->Header.GuidHob.Name = %g\n", &GpioDxeConfig->Header.GuidHob.Name));
DEBUG ((DEBUG_INFO, "GpioDxeConfig->Header.GuidHob.Header.HobLength = 0x%x\n", GpioDxeConfig->Header.GuidHob.Header.HobLength));
GpioDxeConfig->HideGpioAcpiDevice = 0;
}
STATIC COMPONENT_BLOCK_ENTRY mGpioBlocks = {
&gGpioDxeConfigGuid,
sizeof (GPIO_DXE_CONFIG),
GPIO_DXE_CONFIG_REVISION,
GpioDxeLoadConfigDefault
};
/**
Get Gpio config block table size.
@retval Size of config block
**/
UINT16
GpioDxeGetConfigBlockTotalSize (
VOID
)
{
return mGpioBlocks.Size;
}
/**
Add Gpio ConfigBlock.
@param[in] ConfigBlockTableAddress The pointer to config block table
@retval EFI_SUCCESS The policy default is initialized.
@retval EFI_OUT_OF_RESOURCES Insufficient resources to create buffer
**/
EFI_STATUS
GpioDxeAddConfigBlock (
IN VOID *ConfigBlockTableAddress
)
{
return AddComponentConfigBlocks (ConfigBlockTableAddress, &mGpioBlocks, 1);
}