Astra MCU SDK Peripheral Driver Library
Loading...
Searching...
No Matches
i3c_transfer_t Struct Reference

Unified transfer descriptor. More...

#include <i3c.h>

Data Fields

i3c_addr_mode_en addr_mode
uint8_t address
uint8_t dat_index
uint8_t * buf
uint32_t size
uint32_t timeout
i3c_xfer_speed_en speed
i3c_transfer_dir_en direction
uint32_t flags

Detailed Description

Unified transfer descriptor.

Used by blocking and non-blocking controller transfer APIs. The descriptor contains addressing information, byte payload buffer, transfer length/speed/direction, timeout, and transfer flags.

Note
Maximum supported transfer size is I3C_MAX_TRANSFER_SIZE_BYTES.

Field Documentation

◆ addr_mode

i3c_addr_mode_en i3c_transfer_t::addr_mode

Address interpretation mode

◆ address

uint8_t i3c_transfer_t::address

Target address when addr_mode selects static/dynamic routing

◆ dat_index

uint8_t i3c_transfer_t::dat_index

DAT index when addr_mode is I3C_ADDR_MODE_DAT

◆ buf

uint8_t* i3c_transfer_t::buf

Byte-oriented transfer buffer. For non-blocking APIs, align buffer to 32-bit boundary when platform/FIFO access path requires word-aligned accesses. buffer ownership remains with caller and must stay valid and unmodified until completion callback or abort/status indicates transfer end.

◆ size

uint32_t i3c_transfer_t::size

Number of bytes to transfer

◆ timeout

uint32_t i3c_transfer_t::timeout

Timeout in loop count (blocking APIs)

◆ speed

i3c_xfer_speed_en i3c_transfer_t::speed

Transfer speed

◆ direction

i3c_transfer_dir_en i3c_transfer_t::direction

Transfer direction

◆ flags

uint32_t i3c_transfer_t::flags