MdePkg[all]  1.08
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
EFI_I2C_OPERATION Struct Reference

Data Fields

UINT32 Flags
 
UINT32 LengthInBytes
 
UINT8Buffer
 

Detailed Description

QuickRead: OperationCount=1, LengthInBytes=0, Flags=I2C_FLAG_READ QuickWrite: OperationCount=1, LengthInBytes=0, Flags=0

ReceiveByte: OperationCount=1, LengthInBytes=1, Flags=I2C_FLAG_SMBUS_OPERATION | I2C_FLAG_READ ReceiveByte+PEC: OperationCount=1, LengthInBytes=2, Flags=I2C_FLAG_SMBUS_OPERATION | I2C_FLAG_READ | I2C_FLAG_SMBUS_PEC

SendByte: OperationCount=1, LengthInBytes=1, Flags=I2C_FLAG_SMBUS_OPERATION SendByte+PEC: OperationCount=1, LengthInBytes=2, Flags=I2C_FLAG_SMBUS_OPERATION | I2C_FLAG_SMBUS_PEC

ReadDataByte: OperationCount=2, LengthInBytes=1, Flags=I2C_FLAG_SMBUS_OPERATION LengthInBytes=1, Flags=I2C_FLAG_READ ReadDataByte+PEC: OperationCount=2, LengthInBytes=1, Flags=I2C_FLAG_SMBUS_OPERATION | I2C_FLAG_SMBUS_PEC LengthInBytes=2, Flags=I2C_FLAG_READ

WriteDataByte: OperationCount=1, LengthInBytes=2, Flags=I2C_FLAG_SMBUS_OPERATION WriteDataByte+PEC: OperationCount=1, LengthInBytes=3, Flags=I2C_FLAG_SMBUS_OPERATION | I2C_FLAG_SMBUS_PEC

ReadDataWord: OperationCount=2, LengthInBytes=1, Flags=I2C_FLAG_SMBUS_OPERATION LengthInBytes=2, Flags=I2C_FLAG_READ ReadDataWord+PEC: OperationCount=2, LengthInBytes=1, Flags=I2C_FLAG_SMBUS_OPERATION | I2C_FLAG_SMBUS_PEC LengthInBytes=3, Flags=I2C_FLAG_READ

WriteDataWord: OperationCount=1, LengthInBytes=3, Flags=I2C_FLAG_SMBUS_OPERATION WriteDataWord+PEC: OperationCount=1, LengthInBytes=4, Flags=I2C_FLAG_SMBUS_OPERATION | I2C_FLAG_SMBUS_PEC

ReadBlock: OperationCount=2, LengthInBytes=1, Flags=I2C_FLAG_SMBUS_OPERATION | I2C_FLAG_SMBUS_BLOCK LengthInBytes=33, Flags=I2C_FLAG_READ ReadBlock+PEC: OperationCount=2, LengthInBytes=1, Flags=I2C_FLAG_SMBUS_OPERATION | I2C_FLAG_SMBUS_BLOCK | I2C_FLAG_SMBUS_PEC LengthInBytes=34, Flags=I2C_FLAG_READ

WriteBlock: OperationCount=1, LengthInBytes=N+2, Flags=I2C_FLAG_SMBUS_OPERATION | I2C_FLAG_SMBUS_BLOCK WriteBlock+PEC: OperationCount=1, LengthInBytes=N+3, Flags=I2C_FLAG_SMBUS_OPERATION | I2C_FLAG_SMBUS_BLOCK | I2C_FLAG_SMBUS_PEC

ProcessCall: OperationCount=2, LengthInBytes=3, Flags=I2C_FLAG_SMBUS_OPERATION | I2C_FLAG_SMBUS_PROCESS_CALL LengthInBytes=2, Flags=I2C_FLAG_READ ProcessCall+PEC: OperationCount=2, LengthInBytes=3, Flags=I2C_FLAG_SMBUS_OPERATION | I2C_FLAG_SMBUS_PROCESS_CALL | I2C_FLAG_SMBUS_PEC LengthInBytes=3, Flags=I2C_FLAG_READ

BlkProcessCall: OperationCount=2, LengthInBytes=N+2, Flags=I2C_FLAG_SMBUS_OPERATION | I2C_FLAG_SMBUS_PROCESS_CALL | I2C_FLAG_SMBUS_BLOCK LengthInBytes=33, Flags=I2C_FLAG_READ BlkProcessCall+PEC: OperationCount=2, LengthInBytes=N+2, Flags=I2C_FLAG_SMBUS_OPERATION | I2C_FLAG_SMBUS_PROCESS_CALL | I2C_FLAG_SMBUS_BLOCK | I2C_FLAG_SMBUS_PEC LengthInBytes=34, Flags=I2C_FLAG_READ I2C device operation

The EFI_I2C_OPERATION describes a subset of an I2C transaction in which the I2C controller is either sending or receiving bytes from the bus. Some transactions will consist of a single operation while others will be two or more.

Note: Some I2C controllers do not support read or write ping (address only) operation and will return EFI_UNSUPPORTED status when these operations are requested.

Note: I2C controllers which do not support complex transactions requiring multiple repeated start bits return EFI_UNSUPPORTED without processing any of the transaction.

Field Documentation

UINT8* EFI_I2C_OPERATION::Buffer

Pointer to a buffer containing the data to send or to receive from the I2C device. The Buffer must be at least LengthInBytes in size.

UINT32 EFI_I2C_OPERATION::Flags

Flags to qualify the I2C operation.

UINT32 EFI_I2C_OPERATION::LengthInBytes

Number of bytes to send to or receive from the I2C device. A ping (address only byte/bytes) is indicated by setting the LengthInBytes to zero.