aboutsummaryrefslogtreecommitdiffstats
path: root/os/io/io.dox
diff options
context:
space:
mode:
Diffstat (limited to 'os/io/io.dox')
-rw-r--r--os/io/io.dox42
1 files changed, 41 insertions, 1 deletions
diff --git a/os/io/io.dox b/os/io/io.dox
index 1c1ccda9b..f53bb3271 100644
--- a/os/io/io.dox
+++ b/os/io/io.dox
@@ -116,7 +116,7 @@
/**
* @defgroup SERIAL Serial Driver
- * @brief Generic Serial Drivers.
+ * @brief Generic Serial Driver.
* @details This module implements a generic full duplex serial driver. The
* driver implements a @p SerialDriver interface and uses I/O Queues for
* communication between the upper and the lower driver. Event flags are used
@@ -137,6 +137,46 @@
*/
/**
+ * @defgroup SPI SPI Driver
+ * @brief Generic SPI Driver.
+ * @details This module implements a generic SPI driver. The driver implements
+ * a state machine internally:
+ * @dot
+ digraph example {
+ rankdir="LR";
+ node [shape=circle, fontname=Helvetica, fontsize=8, fixedsize="true", width="0.75", height="0.75"];
+ edge [fontname=Helvetica, fontsize=8];
+ uninit [label="SPI_UNINIT", style="bold"];
+ stop [label="SPI_STOP\nLow Power"];
+ ready [label="SPI_IDLE\nClock Enabled"];
+ active [label="SPI_ACTIVE\nBus Active"];
+ uninit -> stop [label="spiInit()"];
+ stop -> ready [label="spiStart()"];
+ ready -> ready [label="spiStart()"];
+ ready -> stop [label="spiStop()"];
+ stop -> stop [label="spiStop()"];
+ ready -> active [label="spiSelect()"];
+ active -> ready [label="spiUnselect()"];
+ active -> active [label="spiExchange()\nspiSend()\nspiReceive()"];
+ }
+ * @enddot
+ *
+ * The driver is not thread safe for performance reasons, if you need to access
+ * the SPI bus from multiple thread then use the @p spiAcquireBus() and
+ * @p spiReleaseBus() APIs in order to gain exclusive access.
+ *
+ * @ingroup IO
+ */
+
+/**
+ * @defgroup SPI_LLD SPI Low Level Driver
+ * @brief @ref SPI low level driver template.
+ * @details This file is a template for a SPI low level driver.
+ *
+ * @ingroup SPI
+ */
+
+/**
* @defgroup MAC MAC Driver
* @brief Generic MAC driver.
* @details This module implements a generic interface for MAC (Media