/** @file
|
Header file for GPIO Helpers Lib implementation.
|
|
Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
**/
|
|
#ifndef _GPIO_HELPERS_LIB_H_
|
#define _GPIO_HELPERS_LIB_H_
|
|
#include <GpioConfig.h>
|
|
/**
|
This procedure stores GPIO pad unlock information
|
|
@param[in] GpioPad GPIO pad
|
@param[in] GpioLockConfig GPIO Lock Configuration
|
|
@retval Status
|
**/
|
EFI_STATUS
|
GpioStoreUnlockData (
|
IN GPIO_PAD GpioPad,
|
IN GPIO_LOCK_CONFIG GpioLockConfig
|
);
|
|
/**
|
This procedure stores GPIO group data about pads which PadConfig needs to be unlocked.
|
|
@param[in] GroupIndex GPIO group index
|
@param[in] DwNum DWORD index for a group.
|
For group which has less then 32 pads per group DwNum must be 0.
|
@param[in] PadsToLock DWORD bitmask for pads which are going to be left unlocked
|
Bit position - PadNumber
|
Bit value - 0: Skip, 1: Leave unlocked
|
|
@retval Status
|
**/
|
EFI_STATUS
|
GpioStoreGroupDwUnlockPadConfigData (
|
IN UINT32 GroupIndex,
|
IN UINT32 DwNum,
|
IN UINT32 UnlockedPads
|
);
|
|
/**
|
This procedure stores GPIO group data about pads which Output state needs to be unlocked.
|
|
@param[in] GroupIndex GPIO group index
|
@param[in] DwNum DWORD index for a group.
|
For group which has less then 32 pads per group DwNum must be 0.
|
@param[in] PadsToLock DWORD bitmask for pads which are going to be left unlocked
|
Bit position - PadNumber
|
Bit value - 0: Skip, 1: Leave unlocked
|
|
@retval Status
|
**/
|
EFI_STATUS
|
GpioStoreGroupDwUnlockOutputData (
|
IN UINT32 GroupIndex,
|
IN UINT32 DwNum,
|
IN UINT32 UnlockedPads
|
);
|
|
/**
|
This procedure will get GPIO group data with pads, which PadConfig is supposed to be left unlock
|
|
@param[in] GroupIndex GPIO group index
|
@param[in] DwNum DWORD index for a group.
|
For group which has less then 32 pads per group DwNum must be 0.
|
@retval UnlockedPads DWORD bitmask for pads which are going to be left unlocked
|
Bit position - PadNumber
|
Bit value - 0: to be locked, 1: Leave unlocked
|
**/
|
UINT32
|
GpioGetGroupDwUnlockPadConfigMask (
|
IN UINT32 GroupIndex,
|
IN UINT32 DwNum
|
);
|
|
/**
|
This procedure will get GPIO group data with pads, which Output is supposed to be left unlock
|
|
@param[in] GroupIndex GPIO group index
|
@param[in] DwNum DWORD index for a group.
|
For group which has less then 32 pads per group DwNum must be 0.
|
@retval UnlockedPads DWORD bitmask for pads which are going to be left unlocked
|
Bit position - PadNumber
|
Bit value - 0: to be locked, 1: Leave unlocked
|
**/
|
UINT32
|
GpioGetGroupDwUnlockOutputMask (
|
IN UINT32 GroupIndex,
|
IN UINT32 DwNum
|
);
|
#endif // _GPIO_HELPERS_LIB_H_
|