.. _i3c_controller: I3C Controller ================================================================================ .. toctree:: :hidden: Host Interface Core Module Interface 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 :ref:`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 :ref:`i3c_controller host_interface`, which parses the :ref:`i3c_controller command_descriptors`. The :ref:`i3c_controller offload-interface` operation mode allows to execute a pre-programmed command stream when triggered by an external event, allowing for minimal latency. Sub-modules -------------------------------------------------------------------------------- * :ref:`i3c_controller host_interface`: Memory mapped software accessible interface to a I3C Controller command stream and/or offload cores. * :ref:`i3c_controller core`: Main module which executes a I3C Controller command stream and implements the I3C bus interface logic. Interfaces -------------------------------------------------------------------------------- * :ref:`i3c_controller control-interface`: Command descriptors. * :ref:`i3c_controller offload-interface`: Command descriptors for cyclic operation, with SDI data generally consumed by a DMA. Software -------------------------------------------------------------------------------- * :git-linux:`Linux Driver `: Linux driver for the I3C Controller. * :ref:`i3c_controller instruction-format`: Overview of the I3C Controller instruction format.