diff options
Diffstat (limited to 'Silicon/Intel/LewisburgPkg/Include/Library/GpioNativeLib.h')
-rw-r--r-- | Silicon/Intel/LewisburgPkg/Include/Library/GpioNativeLib.h | 224 |
1 files changed, 224 insertions, 0 deletions
diff --git a/Silicon/Intel/LewisburgPkg/Include/Library/GpioNativeLib.h b/Silicon/Intel/LewisburgPkg/Include/Library/GpioNativeLib.h new file mode 100644 index 0000000000..ddeeee6490 --- /dev/null +++ b/Silicon/Intel/LewisburgPkg/Include/Library/GpioNativeLib.h @@ -0,0 +1,224 @@ +/** @file + +Copyright (c) 2018, Intel Corporation. All rights reserved.<BR> +This program and the accompanying materials are licensed and made available under +the terms and conditions of the BSD License that accompanies this distribution. +The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php. + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#ifndef _GPIO_NATIVE_LIB_H_ +#define _GPIO_NATIVE_LIB_H_ + +#include <GpioConfig.h> + +/** + This procedure will get number of pads for certain GPIO group + + @param[in] Group GPIO group number + + @retval Value Pad number for group + If illegal group number then return 0 +**/ +UINT32 +GpioGetPadPerGroup ( + IN GPIO_GROUP Group + ); + +/** + This procedure will get number of groups + + @param[in] none + + @retval Value Group number +**/ +UINT8 +GpioGetNumberOfGroups ( + VOID + ); +/** + This procedure will get lowest group + + @param[in] none + + @retval Value Lowest Group +**/ +GPIO_GROUP +GpioGetLowestGroup ( + VOID + ); + +/** + This procedure will get highest group + + @param[in] none + + @retval Value Highest Group +**/ +GPIO_GROUP +GpioGetHighestGroup ( + VOID + ); + +/** + This procedure will get group + + @param[in] GpioPad Gpio Pad + + @retval Value Group +**/ +GPIO_GROUP +GpioGetGroupFromGpioPad ( + IN GPIO_PAD GpioPad + ); + +/** + This procedure will get group index (0 based) from GpioPad + + @param[in] GpioPad Gpio Pad + + @retval Value Group Index +**/ +UINT32 +GpioGetGroupIndexFromGpioPad ( + IN GPIO_PAD GpioPad + ); + +/** + This procedure will get group index (0 based) from group + + @param[in] GpioGroup Gpio Group + + @retval Value Group Index +**/ +UINT32 +GpioGetGroupIndexFromGroup ( + IN GPIO_GROUP GpioGroup + ); + +/** + This procedure will get pad number (0 based) from Gpio Pad + + @param[in] GpioPad Gpio Pad + + @retval Value Pad Number +**/ +UINT32 +GpioGetPadNumberFromGpioPad ( + IN GPIO_PAD GpioPad + ); + +/** + This procedure will return GpioPad from Group and PadNumber + + @param[in] Group GPIO group + @param[in] PadNumber GPIO PadNumber + + @retval GpioPad GpioPad +**/ +GPIO_PAD +GpioGetGpioPadFromGroupAndPadNumber ( + IN GPIO_GROUP Group, + IN UINT32 PadNumber + ); + +/** + This procedure will return GpioPad from GroupIndex and PadNumber + + @param[in] GroupIndex GPIO GroupIndex + @param[in] PadNumber GPIO PadNumber + + @retval GpioPad GpioPad +**/ +GPIO_PAD +GpioGetGpioPadFromGroupIndexAndPadNumber ( + IN UINT32 GroupIndex, + IN UINT32 PadNumber + ); + +/** + This function sets SerialIo I2C controller pins into native mode + + @param[in] SerialIoI2cControllerNumber I2C controller + + @retval Status +**/ +EFI_STATUS +GpioSetSerialIoI2cPinsIntoNativeMode ( + IN UINT32 SerialIoI2cControllerNumber + ); + +/** + This function sets SerialIo I2C controller pins tolerance + + @param[in] SerialIoI2CControllerNumber I2C controller + @param[in] Pad1v8Tolerance TRUE: Enable 1v8 Pad tolerance + FALSE: Disable 1v8 Pad tolerance + + @retval Status +**/ +EFI_STATUS +GpioSetSerialIoI2CPinsTolerance ( + IN UINT32 SerialIoI2CControllerNumber, + IN BOOLEAN Pad1v8Tolerance + ); + +/** + This function sets SerialIo UART controller pins into native mode + + @param[in] SerialIoI2CControllerNumber UART controller + @param[in] HardwareFlowControl Hardware Flow control + + @retval Status +**/ +EFI_STATUS +GpioSetSerialIoUartPinsIntoNativeMode ( + IN UINT32 SerialIoUartControllerNumber, + IN BOOLEAN HardwareFlowControl + ); + +/** + This function sets SerialIo SPI controller pins into native mode + + @param[in] SerialIoI2CControllerNumber SPI controller + + @retval Status +**/ +EFI_STATUS +GpioSetSerialIoSpiPinsIntoNativeMode ( + IN UINT32 SerialIoUartControllerNumber + ); + +/** + This function checks if GPIO pin for SATA reset port is in GPIO MODE + + @param[in] SataPort SATA port number + + @retval TRUE Pin is in GPIO mode + FALSE Pin is in native mode +**/ +BOOLEAN +GpioIsSataResetPortInGpioMode ( + IN UINTN SataPort + ); + +/** + This function checks if SataDevSlp pin is in native mode + + @param[in] SataPort SATA port + @param[out] DevSlpPad DevSlpPad + + @retval TRUE DevSlp is in native mode + FALSE DevSlp is not in native mode +**/ +BOOLEAN +GpioIsSataDevSlpPinEnabled ( + IN UINTN SataPort, + OUT GPIO_PAD *DevSlpPad + ); + +#endif // _GPIO_NATIVE_LIB_H_ |