/** @file
|
Header file for GPIO Private Lib Internal functions.
|
|
Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
**/
|
|
#ifndef _GPIO_NATIVE_PRIVATE_LIB_INTERNAL_H_
|
#define _GPIO_NATIVE_PRIVATE_LIB_INTERNAL_H_
|
|
#include <Private/Library/GpioPrivateLib.h>
|
|
#define GPIO_PAD_NONE 0
|
|
/**
|
This function provides SerialIo I2C controller pins
|
|
@param[in] SerialIoI2cControllerNumber I2C controller
|
|
@param[out] NativePinsTable Table with pins
|
@param[out] NoOfNativePins Number of pins
|
**/
|
VOID
|
GpioGetSerialIoI2cPins (
|
IN UINT32 SerialIoI2cControllerNumber,
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable
|
);
|
|
/**
|
This function provides SerialIo UART controller pins
|
|
@param[in] SerialIoUartControllerNumber UART controller
|
@param[in] HardwareFlowControl Hardware Flow control
|
@param[in] PinMuxing UART controller pin muxing
|
@param[out] NativePinsTable Table with pins
|
@param[out] NoOfNativePins Number of pins
|
**/
|
VOID
|
GpioGetSerialIoUartPins (
|
IN UINT32 SerialIoUartControllerNumber,
|
IN BOOLEAN HardwareFlowControl,
|
IN UINT32 PinMuxing,
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable,
|
OUT UINT32 *NoOfNativePins
|
);
|
|
/**
|
This function provides SerialIo SPI controller pins
|
|
@param[in] SerialIoSpiControllerNumber SPI controller
|
|
@param[out] NativePinsTable Table with pins
|
@param[out] NoOfNativePins Number of pins
|
**/
|
VOID
|
GpioGetSerialIoSpiPins (
|
IN UINT32 SerialIoSpiControllerNumber,
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable,
|
OUT UINT32 *NoOfNativePins
|
);
|
|
/**
|
This function provides ISH GP pin data
|
|
@param[in] IshGpPinNumber ISH GP pin number
|
|
@param[out] NativePin ISH GP pin
|
**/
|
VOID
|
GpioGetIshGpPin (
|
IN UINT32 IshGpPinNumber,
|
OUT GPIO_PAD_NATIVE_FUNCTION *NativePin
|
);
|
|
/**
|
This function provides ISH UART controller pins
|
|
@param[in] IshUartControllerNumber ISH UART controller
|
|
@param[out] NativePinsTable Table with pins
|
**/
|
VOID
|
GpioGetIshUartPins (
|
IN UINT32 IshUartControllerNumber,
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable
|
);
|
|
/**
|
This function provides ISH I2C controller pins
|
|
@param[in] IshI2cControllerNumber ISH I2C controller
|
|
@param[out] NativePinsTable Table with pins
|
**/
|
VOID
|
GpioGetIshI2cPins (
|
IN UINT32 IshI2cControllerNumber,
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable
|
);
|
|
/**
|
This function provides ISH SPI controller pins
|
|
@param[in] IshSpiControllerNumber SPI controller
|
@param[out] NativePinsTable Table with pins
|
@param[out] NoOfNativePins Number of pins
|
**/
|
VOID
|
GpioGetIshSpiPins (
|
IN UINT32 IshSpiControllerNumber,
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable,
|
OUT UINT32 *NoOfNativePins
|
);
|
|
/**
|
This function provides SCS SD CARD controller pins
|
|
@param[out] NativePinsTable Table with pins
|
@param[out] NoOfNativePins Number of pins
|
**/
|
VOID
|
GpioGetScsSdCardPins (
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable,
|
OUT UINT32 *NoOfNativePins
|
);
|
|
/**
|
This function provides SCS SD CARD detect pin
|
|
@retval GpioPin SD CARD Detect pin
|
**/
|
GPIO_PAD
|
GpioGetScsSdCardDetectPin (
|
VOID
|
);
|
|
/**
|
This function provides SCS eMMC controller pins
|
|
@param[out] NativePinsTable Table with pins
|
@param[out] NoOfNativePins Number of pins
|
**/
|
VOID
|
GpioGetScsEmmcPins (
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable,
|
OUT UINT32 *NoOfNativePins
|
);
|
|
/**
|
This function provides HD Audio Link pins
|
|
@param[out] NativePinsTable Table with pins
|
@param[out] NoOfNativePins Number of pins
|
**/
|
VOID
|
GpioGetHdAudioLinkPins (
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable,
|
OUT UINT32 *NoOfNativePins
|
);
|
|
/**
|
This function provides DMIC interface pins
|
|
@param[in] DmicNumber DMIC interface
|
|
@param[out] NativePinsTable Table with pins
|
**/
|
VOID
|
GpioGetHdaDmicPins (
|
IN UINT32 DmicNumber,
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable
|
);
|
|
/**
|
This function provides SSP/I2S interface pins
|
|
@param[in] SspInterfaceNumber SSP/I2S interface
|
|
@param[out] NativePinsTable Table with pins
|
**/
|
VOID
|
GpioGetHdaSspPins (
|
IN UINT32 SspInterfaceNumber,
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable
|
);
|
|
/**
|
This function provides SNDW interface pins
|
|
@param[in] SndwInterfaceNumber SNDWx interface number
|
|
@param[out] NativePinsTable Table with pins
|
**/
|
VOID
|
GpioGetHdaSndwPins (
|
IN UINT32 SndwInterfaceNumber,
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable
|
);
|
|
/**
|
This function provides SMBUS interface pins
|
|
@param[out] NativePinsTable Table with pins
|
**/
|
VOID
|
GpioGetSmbusPins (
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable
|
);
|
|
/**
|
This function provides SATA DevSlp pin data
|
|
@param[in] SataCtrlIndex SATA controller index
|
@param[in] SataPort SATA port number
|
@param[out] NativePin SATA DevSlp pin
|
**/
|
VOID
|
GpioGetSataDevSlpPin (
|
IN UINT32 SataCtrlIndex,
|
IN UINTN SataPort,
|
OUT GPIO_PAD_NATIVE_FUNCTION *NativePin
|
);
|
|
/**
|
This function provides PCIe CLKREQ pin data
|
|
@param[in] ClkreqIndex CLKREQ# number
|
@param[out] NativePin Native pin data
|
**/
|
VOID
|
GpioGetPcieClkReqPin (
|
IN UINT32 ClkreqIndex,
|
OUT GPIO_PAD_NATIVE_FUNCTION *NativePin
|
);
|
|
/**
|
This function provides eDP pins
|
|
@param[out] NativePinsTable Table with pins
|
@param[out] NoOfNativePins Number of pins
|
**/
|
VOID
|
GpioGetEdpPins (
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable,
|
OUT UINT32 *NoOfNativePins
|
);
|
|
/**
|
This function provides DDPx interface pins
|
|
@param[in] DdpInterface DDPx interface
|
|
@param[out] NativePinsTable Table with pins
|
**/
|
VOID
|
GpioGetDdpPins (
|
IN GPIO_DDP DdpInterface,
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable
|
);
|
|
/**
|
This function provides CNVi BT UART pins
|
|
@param[in] ConnectionType CNVi BT UART connection type
|
@param[out] VCnviBtUartPad Table with vCNV_BT_UARTx pads
|
@param[out] VCnviBtUartPadMode vCNV_BT_UARTx pad mode
|
@param[out] VUartForCnviBtPad Table with vUART0 pads
|
@param[out] VUartForCnviBtPadMode vUART0 pad mode
|
**/
|
VOID
|
GpioGetCnviBtUartPins (
|
IN VGPIO_CNVI_BT_UART_CONNECTION_TYPE ConnectionType,
|
OUT GPIO_PAD **VCnviBtUartPad,
|
OUT GPIO_PAD_MODE *VCnviBtUartPadMode,
|
OUT GPIO_PAD **VUartForCnviBtPad,
|
OUT GPIO_PAD_MODE *VUartForCnviBtPadMode
|
);
|
|
/**
|
This function provides CNVi BT UART external pads
|
|
@param[out] NativePinsTable Table with pins
|
**/
|
VOID
|
GpioGetCnviBtUartExternalPins (
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable
|
);
|
|
/**
|
This function provides CNVi BT I2S pins
|
|
@param[in] ConnectionType CNVi BT I2S connection type
|
@param[out] VCnviBtI2sPad Table with vCNV_BT_I2Sx pads
|
@param[out] VCnviBtI2sPadMode vCNV_BT_I2Sx pad mode
|
@param[out] VSspForCnviBtPad Table with vSSP2 pads
|
@param[out] VSspForCnviBtPadMode vSSP2 pad mode
|
**/
|
VOID
|
GpioGetCnviBtI2sPins (
|
IN VGPIO_CNVI_BT_I2S_CONNECTION_TYPE ConnectionType,
|
OUT GPIO_PAD **VCnviBtI2sPad,
|
OUT GPIO_PAD_MODE *VCnviBtI2sPadMode,
|
OUT GPIO_PAD **VSspForCnviBtPad,
|
OUT GPIO_PAD_MODE *VSspForCnviBtPadMode
|
);
|
|
/**
|
This function provides CNVi BT I2S external pads
|
|
@param[out] NativePinsTable Table with pins
|
**/
|
VOID
|
GpioGetCnviBtI2sExternalPins (
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable
|
);
|
|
/**
|
This function provides CNVi MFUART1 pins
|
|
@param[in] ConnectionType CNVi MFUART1 connection type
|
@param[out] VCnviBtI2sPad Table with vCNV_MFUART1x pads
|
@param[out] VCnviBtI2sPadMode vCNV_MFUART1x pad mode
|
@param[out] VSspForCnviBtPad Table with vISH_UART0 pads
|
@param[out] VSspForCnviBtPadMode vISH_UART0 pad mode
|
**/
|
VOID
|
GpioGetCnviMfUart1Pins (
|
IN VGPIO_CNVI_MF_UART1_CONNECTION_TYPE ConnectionType,
|
OUT GPIO_PAD **VCnviMfUart1Pad,
|
OUT GPIO_PAD_MODE *VCnviMfUart1PadMode,
|
OUT GPIO_PAD **VUartForCnviMfUart1Pad,
|
OUT GPIO_PAD_MODE *VUartForCnviMfUart1PadMode
|
);
|
|
/**
|
This function provides CNVi MFUART1 external pads
|
|
@param[out] NativePinsTable Table with pins
|
**/
|
VOID
|
GpioGetCnviMfUart1ExternalPins (
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable
|
);
|
|
/**
|
This function provides CNVi Bluetooth Enable pad
|
|
@retval GpioPad CNVi Bluetooth Enable pad
|
**/
|
GPIO_PAD
|
GpioGetCnviBtEnablePin (
|
VOID
|
);
|
|
/**
|
This function provides CNVi BRI RGI GPIO pads
|
|
@param[out] NativePinsTable Table with pins
|
**/
|
VOID
|
GpioGetCnvBriRgiPins (
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable
|
);
|
|
/**
|
This function provides CNVi MFUART2 external pins
|
|
@param[out] NativePinsTable Table with pins
|
**/
|
VOID
|
GpioGetCnvMfUart2ExternalPins (
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable
|
);
|
|
/**
|
This function provides CNVi BT interface select pin
|
|
@retval GpioPad GPIO pad for CNVi BT interface select
|
**/
|
GPIO_PAD
|
GpioGetCnviBtIfSelectPin (
|
VOID
|
);
|
|
/**
|
This function provides CNVi BT Charging pin
|
|
@retval GpioPad GPIO pad for CNVi BT Charging select
|
**/
|
GPIO_PAD
|
GpioGetCnviBtChargingPin (
|
VOID
|
);
|
|
/**
|
This function provides CNVi A4WP pin
|
|
@param[out] GpioNativePad GPIO native pad for CNVi A4WP
|
**/
|
VOID
|
GpioGetCnviA4WpPin (
|
OUT GPIO_PAD_NATIVE_FUNCTION *GpioNativePad
|
);
|
|
/**
|
This function provides CNVi BT host wake int pin
|
|
@retval GpioPad GPIO pad BT host wake int
|
**/
|
GPIO_PAD
|
GpioGetCnviBtHostWakeIntPin (
|
VOID
|
);
|
|
/**
|
This function provides IMGCLKOUT pins
|
|
@param[out] NativePinsTable Table with pins
|
@param[out] NoOfNativePins Number of pins
|
**/
|
VOID
|
GpioGetImgClkOutPins (
|
OUT GPIO_PAD_NATIVE_FUNCTION **NativePinsTable,
|
OUT UINT32 *NoOfNativePins
|
);
|
|
/**
|
This function provides PWRBTN pin
|
|
@retval GpioPad PWRTBTN pin
|
**/
|
GPIO_PAD
|
GpioGetPwrBtnPin (
|
VOID
|
);
|
|
/**
|
This procedure enables debounce feature on a selected pad configured in input mode
|
Debounce time can be specified in microseconds. GPIO HW supports only certain values
|
according to below formula:
|
DebounceTime = (2 ^ PADCFG_DW2.DEBOUNCE)*(glitch filter clock period).
|
RTC clock with f = 32 KHz is used for glitch filter.
|
DebounceTime = (2 ^ PADCFG_DW2.DEBOUNCE)*(31.25 us).
|
Supported DebounceTime values are following:
|
DebounceTime = 0 -> Debounce feature disabled
|
DebounceTime > 0 && < 250us -> Not supported
|
DebounceTime = 250us - 1024000us -> Supported range (DebounceTime = 250us * 2^n)
|
For values not supported by GPIO HW, function will round down
|
to closest supported
|
|
@param[in] GpioPad GPIO pad
|
@param[in, out] DebounceTime Debounce Time in microseconds
|
If Debounce Time = 0, Debouncer feature will be disabled
|
Function will set DebounceTime argument to rounded supported value
|
|
@retval EFI_SUCCESS The function completed successfully
|
@retval EFI_INVALID_PARAMETER Invalid GpioPad or unsupported DebounceDuration value
|
@retval EFI_UNSUPPORTED GpioPad is not owned by host
|
**/
|
EFI_STATUS
|
GpioSetDebounceTimer (
|
IN GPIO_PAD GpioPad,
|
IN OUT UINT32 *DebounceTime
|
);
|
|
/**
|
This function provides LPC pin
|
|
@retval GpioPad LPC pin
|
**/
|
GPIO_PAD
|
GpioGetLpcPin (
|
VOID
|
);
|
|
#endif // _GPIO_NATIVE_PRIVATE_LIB_INTERNAL_H_
|