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 |
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.
| i3c_addr_mode_en i3c_transfer_t::addr_mode |
Address interpretation mode
| uint8_t i3c_transfer_t::address |
Target address when addr_mode selects static/dynamic routing
| uint8_t i3c_transfer_t::dat_index |
DAT index when addr_mode is I3C_ADDR_MODE_DAT
| 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.
| uint32_t i3c_transfer_t::size |
Number of bytes to transfer
| uint32_t i3c_transfer_t::timeout |
Timeout in loop count (blocking APIs)
| i3c_xfer_speed_en i3c_transfer_t::speed |
Transfer speed
| i3c_transfer_dir_en i3c_transfer_t::direction |
Transfer direction
| uint32_t i3c_transfer_t::flags |
OR-ed i3c_transfer_flags_en bits