I3C Controller
I3C Controller is subset of the I3C-basic specification to interface peripherals such as ADCs through I3C.
It consist out of two sub-modules which communicate over well defined interfaces. The I3C Controller Core is a lean but powerful execution module, which implements the I3C bus control logic. It is controlled by a command stream generated by the I3C Controller Host Interface, which parses the Command Descriptors.
The Offload Interface operation mode allows to execute a pre-programmed command stream when triggered by an external event, allowing for minimal latency.
Sub-modules
- I3C Controller Host Interface: Memory mapped software accessible interface to a I3C Controller command stream and/or offload cores. 
- I3C Controller Core: Main module which executes a I3C Controller command stream and implements the I3C bus interface logic. 
Interfaces
- Control Interface: Command descriptors. 
- Offload Interface: Command descriptors for cyclic operation, with SDI data generally consumed by a DMA. 
Software support
- Linux Driver: Linux driver for the I3C Controller. 
- Instruction Set Specification: Overview of the I3C Controller instruction format. 
References
- HDL IP core at library/i3c_controller