Data Fields | |
UINT32 | Flags |
UINT32 | LengthInBytes |
UINT8 * | Buffer |
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.
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.
Flags to qualify the I2C operation.
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.