pluto_hdl_adi/docs/library/i3c_controller/index.rst

49 lines
1.8 KiB
ReStructuredText

.. _i3c_controller:
I3C Controller
================================================================================
.. toctree::
:hidden:
Host Interface<i3c_controller_host_interface>
Core Module<i3c_controller_core>
Interface<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 <i3c:drivers/i3c/master/adi-i3c-master.c>`:
Linux driver for the I3C Controller.
* :ref:`i3c_controller instruction-format`: Overview of the I3C Controller
instruction format.