diff options
Diffstat (limited to 'os/hal/hal.dox')
-rw-r--r-- | os/hal/hal.dox | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/os/hal/hal.dox b/os/hal/hal.dox index 2d8a54dc9..20315087b 100644 --- a/os/hal/hal.dox +++ b/os/hal/hal.dox @@ -178,6 +178,49 @@ */
/**
+ * @defgroup I2C I2C Driver
+ * @brief Generic I2C Driver.
+ * @details This module implements a generic I2C driver. The driver implements
+ * a state machine internally:
+ * @dot
+ digraph example {
+ rankdir="LR";
+ node [shape=circle, fontname=Helvetica, fontsize=8, fixedsize="true", width="0.8", height="0.8"];
+ edge [fontname=Helvetica, fontsize=8];
+ uninit [label="SPI_UNINIT", style="bold"];
+ stop [label="SPI_STOP\nLow Power"];
+ ready [label="SPI_READY\nClock Enabled"];
+ active [label="SPI_ACTIVE\nBus Active"];
+ uninit -> stop [label="spiInit()"];
+ stop -> ready [label="spiStart()"];
+ ready -> ready [label="spiStart()"];
+ ready -> ready [label="spiIgnore()"];
+ ready -> stop [label="spiStop()"];
+ stop -> stop [label="spiStop()"];
+ ready -> active [label="spiSelect()"];
+ active -> active [label="spiSelect()"];
+ active -> ready [label="spiUnselect()"];
+ ready -> ready [label="spiUnselect()"];
+ active -> active [label="spiIgnore()\nspiExchange()\nspiSend()\nspiReceive()"];
+ }
+ * @enddot
+ *
+ * The driver is not thread safe for performance reasons, if you need to access
+ * the I2C bus from multiple thread then use the @p i2cAcquireBus() and
+ * @p i2cReleaseBus() APIs in order to gain exclusive access.
+ *
+ * @ingroup IO
+ */
+
+/**
+ * @defgroup I2C_LLD I2C Low Level Driver
+ * @brief @ref I2C low level driver template.
+ * @details This file is a template for an I2C low level driver.
+ *
+ * @ingroup I2C
+ */
+
+/**
* @defgroup SPI SPI Driver
* @brief Generic SPI Driver.
* @details This module implements a generic SPI driver. The driver implements
|