alder_lake_bios/Intel/AlderLake/AlderLakePlatSamplePkg/E3/Include/E3DongleLib.h

149 lines
2.5 KiB
C

#ifndef __E3_DONGLE_LIB_H_
#define __E3_DONGLE_LIB_H_
#define IRPM_BIOSETUP_DISABLEMODE 0
#define IRPM_BIOSETUP_DONGLEMODE 1
#define IRPM_BIOSETUP_ONLINEPCHMODE 2
#define IRPM_BIOSETUP_ONLINEISHMODE 3
EFI_STATUS
EFIAPI
ExternalPowerControlForE3Chip (
IN BOOLEAN bEnabled
);
EFI_STATUS
EFIAPI
PeiExternalPowerControlForE3Chip (
IN BOOLEAN bEnabled
);
BOOLEAN
IsE3DongleAttached(VOID);
BOOLEAN
PeiIsE3DongleAttached(VOID);
EFI_STATUS
WriteE3DongleByte (
IN UINTN offset,
IN UINTN value
);
EFI_STATUS
WriteE3DongleBuffer(
IN UINTN offset,
IN UINTN length,
IN UINT8 *buf
);
EFI_STATUS
ReadE3DongleByte (
IN UINTN offset,
OUT UINTN* value
);
EFI_STATUS
PeiReadE3DongleByte (
IN UINTN offset,
OUT UINTN* value
);
EFI_STATUS
ReadE3DongleBuffer (
IN UINTN offset,
IN UINTN length,
OUT UINT8 *buf
);
EFI_STATUS
EFIAPI
WriteE3DongleIOExp (
IN UINT8 offset,
IN UINT8 value
);
EFI_STATUS
EFIAPI
ReadE3DongleIOExp (
IN UINT8 offset,
OUT UINT8* value
);
EFI_STATUS
EFIAPI
PeiWriteE3DongleIOExp (
IN UINT8 offset,
IN UINT8 value
);
EFI_STATUS
EFIAPI
PeiReadE3DongleIOExp (
IN UINT8 offset,
OUT UINT8* value
);
//bOn - true: set E3 chip power down pin to high. when E3 chip is running, it should be set to high.
// false:set E3 chip power down pin to low. when E3 chip is disabled, it should be set to low.
EFI_STATUS
iRPMChipPowerDownPin(
IN BOOLEAN bOn
);
//bOn - true: turn on vbus for E3 chips, the E3 chips power is supplied by board in this case.
// false: turn off vbus for E3 chips, in this case, the E3 chips power is disabled or supplied by dongle
EFI_STATUS
iRPMVbusControl(
IN BOOLEAN bOn
);
// Value: 0 - low; non-zero - high.
EFI_STATUS
iRPMGetE3ChipPowerState(
OUT UINT8* Value
);
//bOn - true: turn on power enable pin for E3 chips.
// false: turn off power enable pin for E3 chips.
EFI_STATUS
iRPME3ChipPowerControl(
IN BOOLEAN bOn
);
//bFast - true: turn on E3 chip fast mode.
// false: set E3 chip to run in slow mode.
EFI_STATUS
iRPME3ChipFastSlowControl(
IN BOOLEAN bFast
);
//bI2C - true: switch USB port to I2C mode
// false: switch USB port to USB mode
EFI_STATUS
iRPMMuxSwitch(
IN BOOLEAN bI2C
);
EFI_STATUS
iRPMPCHGpioInitForDongleMode(
VOID
);
EFI_STATUS
iRPMPCHGpioInitForISHMode(
VOID
);
EFI_STATUS
iRPMPCHGpioInitForPCHMode(
VOID
);
EFI_STATUS
iRPMPCHGpioInitForDisablementMode(
VOID
);
#endif //__E3_DONGLE_LIB_H_