/** @file
Header file for GPIO Lib implementation.
Copyright (c) 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _GPIO_LIBRARY_H_
#define _GPIO_LIBRARY_H_
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//
// Number of PADCFG_DW registers
//
#define GPIO_PADCFG_DW_REG_NUMBER 4
/**
This internal procedure will calculate GPIO_RESET_CONFIG value (new type)
based on provided PadRstCfg for a specific GPIO Pad.
@param[in] GpioPad GPIO Pad
@param[in] PadRstCfg GPIO PadRstCfg value
@retval GpioResetConfig GPIO Reset configuration (new type)
**/
GPIO_RESET_CONFIG
GpioResetConfigFromPadRstCfg (
IN GPIO_PAD GpioPad,
IN UINT32 PadRstCfg
);
/**
This internal procedure will calculate PadRstCfg register value based
on provided GPIO Reset configuration for a certain pad.
@param[in] GpioPad GPIO Pad
@param[in] GpioResetConfig GPIO Reset configuration
@param[out] PadRstCfg GPIO PadRstCfg value
@retval EFI_SUCCESS The function completed successfully
@retval EFI_INVALID_PARAMETER Invalid configuration
**/
EFI_STATUS
GpioPadRstCfgFromResetConfig (
IN GPIO_PAD GpioPad,
IN GPIO_RESET_CONFIG GpioResetConfig,
OUT UINT32 *PadRstCfg
);
/**
This procedure will calculate PADCFG register value based on GpioConfig data
@param[in] GpioPad GPIO Pad
@param[in] GpioConfig GPIO Configuration data
@param[out] PadCfgDwReg PADCFG DWx register value
@param[out] PadCfgDwRegMask Mask with PADCFG DWx register bits to be modified
@retval Status
**/
EFI_STATUS
GpioPadCfgRegValueFromGpioConfig (
IN GPIO_PAD GpioPad,
IN CONST GPIO_CONFIG *GpioConfig,
OUT UINT32 *PadCfgDwReg,
OUT UINT32 *PadCfgDwRegMask
);
#endif // _GPIO_LIBRARY_H_