TianoCore EDK2 master
|
#include <MdePkg/Include/Pi/PiI2c.h>
Data Fields | |
UINT32 | Flags |
UINT32 | LengthInBytes |
UINT8 * | Buffer |
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.
UINT8* EFI_I2C_OPERATION::Buffer |
UINT32 EFI_I2C_OPERATION::Flags |
UINT32 EFI_I2C_OPERATION::LengthInBytes |