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.

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.)

struct I3cBCR bits

Bit-field representation of the BCR register value.

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.

I3cBCR bcr

Bus Characteristics Register.

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.