I3C Structures
This page aggregates all I3C-related structures used by functions and methods from the C and C++ APIs.
- group I3C-related structures
-
union I3cTargetConfiguration
- #include <definitions.h>
Represents configurable behavior and capabilities of an I3C target device.
This union allows accessing the device configuration either as a raw byte or as individual bit fields.
Each bit enables or describes specific target capabilities or behavior related to Dynamic Address Assignment (DAA), In-Band Interrupt (IBI), and Controller Role (CR) support.
Public Members
-
uint8_t byte
Raw configuration byte representation
-
uint8_t targetType
0 = I3C target, 1 = Legacy I2C target
-
bool IBIRequest
Target supports generating In-Band Interrupt (IBI)
-
bool CRRequest
Target supports Controller Role request. Reserved for future.
-
bool daaUseSETDASA
Use SETDASA during Dynamic Address Assignment
-
bool daaUseSETAASA
Use SETAASA during Dynamic Address Assignment
-
bool daaUseENTDAA
Use ENTDAA during Dynamic Address Assignment
-
bool ibiTimestampEnable
Enables timestamping for received IBIs. Reserved for future.
-
bool pendingReadCapability
Target supports pending read notification. Reserved for future.
-
struct I3cTargetConfiguration bits
Bit-field representation of the target configuration byte.
-
uint8_t byte
-
union I3cBCR
- #include <definitions.h>
Represents the I3C Bus Characteristics Register (BCR).
The Bus Characteristics Register (BCR) defines the fundamental protocol capabilities of an I3C target as specified by the MIPI I3C specification.
This union allows accessing the BCR either as a raw byte or through individual capability fields.
Public Members
-
uint8_t byte
Raw BCR register value
-
uint8_t maxDataSpeedLimit
Indicates presence of maximum data speed limitation
-
uint8_t ibiRequestCapable
Target is capable of issuing IBI
-
uint8_t ibiPayload
Target supports IBI with payload
-
uint8_t offlineCapable
Target supports offline mode
-
uint8_t virtualTargetSupport
Target supports Virtual Target feature
-
uint8_t advancedCapabilities
Target supports advanced capability extensions
-
uint8_t deviceRole
Device role (Target / Secondary Controller / etc.)
-
uint8_t byte
-
struct I3cTargetInfo
- #include <definitions.h>
Contains complete information about an I3C target device.
This structure represents a target entry stored in the internal device table after device discovery or Dynamic Address Assignment.
It includes identification data, capability registers, protocol limits, and runtime configuration.
Public Members
-
uint8_t staticAddress
Static address (if applicable). 0 if none.
-
uint8_t dynamicAddress
Assigned dynamic address on the I3C bus.
-
uint8_t pid[6]
48-bit Provisional ID (PID), MSB first.
-
uint8_t dcr
Device Characteristics Register.
-
uint16_t mwl
Maximum Write Length supported by the target. Reserved for future use.
-
uint16_t mrl
Maximum Read Length supported by the target. Reserved for future use.
-
uint8_t maxIbiPayloadLength
Maximum payload length for IBI. Reserved for future use.
-
I3cTargetConfiguration configuration
Current configuration flags.
-
uint8_t staticAddress
-
union I3cTargetConfiguration