diff options
author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2009-11-10 16:43:04 +0000 |
---|---|---|
committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2009-11-10 16:43:04 +0000 |
commit | 3077b40452398a08c7346b042b111832695b1db1 (patch) | |
tree | 78fe0b649448bb32658116282dd6d3d80c36cbf3 /os/io/templates | |
parent | 727ba84c9b99c7a1e06bf344b58c55f24472e5ba (diff) | |
download | ChibiOS-3077b40452398a08c7346b042b111832695b1db1.tar.gz ChibiOS-3077b40452398a08c7346b042b111832695b1db1.tar.bz2 ChibiOS-3077b40452398a08c7346b042b111832695b1db1.zip |
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1279 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/io/templates')
-rw-r--r-- | os/io/templates/spi_lld.c | 68 | ||||
-rw-r--r-- | os/io/templates/spi_lld.h | 7 |
2 files changed, 42 insertions, 33 deletions
diff --git a/os/io/templates/spi_lld.c b/os/io/templates/spi_lld.c index dc2efca24..472e18ee3 100644 --- a/os/io/templates/spi_lld.c +++ b/os/io/templates/spi_lld.c @@ -49,7 +49,7 @@ void spi_lld_init(void) { /**
* @brief Configures and activates the SPI peripheral.
*
- * @param[in] spip pointer to the @p SPIDriver object
+ * @param[in] spip pointer to the @p SPIDriver object
*/
void spi_lld_start(SPIDriver *spip) {
@@ -62,7 +62,7 @@ void spi_lld_start(SPIDriver *spip) { /**
* @brief Deactivates the SPI peripheral.
*
- * @param[in] spip pointer to the @p SPIDriver object
+ * @param[in] spip pointer to the @p SPIDriver object
*/
void spi_lld_stop(SPIDriver *spip) {
@@ -71,7 +71,7 @@ void spi_lld_stop(SPIDriver *spip) { /**
* @brief Asserts the slave select signal and prepares for transfers.
*
- * @param[in] spip pointer to the @p SPIDriver object
+ * @param[in] spip pointer to the @p SPIDriver object
*/
void spi_lld_select(SPIDriver *spip) {
@@ -81,27 +81,41 @@ void spi_lld_select(SPIDriver *spip) { * @brief Deasserts the slave select signal.
* @details The previously selected peripheral is unselected.
*
- * @param[in] spip pointer to the @p SPIDriver object
+ * @param[in] spip pointer to the @p SPIDriver object
*/
void spi_lld_unselect(SPIDriver *spip) {
}
/**
+ * @brief Ignores data on the SPI bus.
+ * @details This function transmits a series of idle words on the SPI bus and
+ * ignores the received data. This function can be invoked even
+ * when a slave select signal has not been yet asserted.
+ *
+ * @param[in] spip pointer to the @p SPIDriver object
+ * @param[in] n number of words to be ignored
+ *
+ * @return The operation status is returned.
+ * @retval RDY_OK operation complete.
+ * @retval RDY_RESET hardware failure.
+ */
+msg_t spi_lld_ignore(SPIDriver *spip, size_t n) {
+
+}
+
+/**
* @brief Exchanges data on the SPI bus.
* @details This function performs a simultaneous transmit/receive operation.
*
- * @param[in] spip pointer to the @p SPIDriver object
- * @param[in] n number of words to exchange
- * @param[in] txbuf the pointer to the transmit buffer. Note that the buffer is
- * organized as an uint8_t array for data sizes below or equal
- * to 8 bits else it is organized as an uint16_t array.
- * @param[out] rxbuf the pointer to the receive buffer. Note that the buffer is
- * organized as an uint8_t array for data sizes below or equal
- * to 8 bits else it is organized as an uint16_t array.
+ * @param[in] spip pointer to the @p SPIDriver object
+ * @param[in] n number of words to be exchanged
+ * @param[in] txbuf the pointer to the transmit buffer
+ * @param[out] rxbuf the pointer to the receive buffer
+ *
* @return The operation status is returned.
- * @retval RDY_OK operation complete.
- * @retval RDY_RESET hardware failure.
+ * @retval RDY_OK operation complete.
+ * @retval RDY_RESET hardware failure.
*
* @note The buffers are organized as uint8_t arrays for data sizes below or
* equal to 8 bits else it is organized as uint16_t arrays.
@@ -113,14 +127,13 @@ msg_t spi_lld_exchange(SPIDriver *spip, size_t n, void *rxbuf, void *txbuf) { /**
* @brief Sends data ever the SPI bus.
*
- * @param[in] spip pointer to the @p SPIDriver object
- * @param[in] n number of words to send
- * @param[in] txbuf the pointer to the transmit buffer. Note that the buffer is
- * organized as an uint8_t array for data sizes below or equal
- * to 8 bits else it is organized as an uint16_t array.
+ * @param[in] spip pointer to the @p SPIDriver object
+ * @param[in] n number of words to send
+ * @param[in] txbuf the pointer to the transmit buffer
+ *
* @return The operation status is returned.
- * @retval RDY_OK operation complete.
- * @retval RDY_RESET hardware failure.
+ * @retval RDY_OK operation complete.
+ * @retval RDY_RESET hardware failure.
*
* @note The buffers are organized as uint8_t arrays for data sizes below or
* equal to 8 bits else it is organized as uint16_t arrays.
@@ -132,14 +145,13 @@ msg_t spi_lld_send(SPIDriver *spip, size_t n, void *txbuf) { /**
* @brief Receives data from the SPI bus.
*
- * @param[in] spip pointer to the @p SPIDriver object
- * @param[in] n number of words to receive
- * @param[out] rxbuf the pointer to the receive buffer. Note that the buffer is
- * organized as an uint8_t array for data sizes below or equal
- * to 8 bits else it is organized as an uint16_t array.
+ * @param[in] spip pointer to the @p SPIDriver object
+ * @param[in] n number of words to receive
+ * @param[out] rxbuf the pointer to the receive buffer
+ *
* @return The operation status is returned.
- * @retval RDY_OK operation complete.
- * @retval RDY_RESET hardware failure.
+ * @retval RDY_OK operation complete.
+ * @retval RDY_RESET hardware failure.
*
* @note The buffers are organized as uint8_t arrays for data sizes below or
* equal to 8 bits else it is organized as uint16_t arrays.
diff --git a/os/io/templates/spi_lld.h b/os/io/templates/spi_lld.h index 23a1f094b..56d19cc35 100644 --- a/os/io/templates/spi_lld.h +++ b/os/io/templates/spi_lld.h @@ -50,11 +50,7 @@ * @brief Driver configuration structure. */
typedef struct {
- /**
- * @brief Clock pulses to be generated after initialization.
- */
- cnt_t spc_initcnt;
- /* End of the mandatory fields.*/
+
} SPIConfig;
/**
@@ -94,6 +90,7 @@ extern "C" { void spi_lld_stop(SPIDriver *spip);
void spi_lld_select(SPIDriver *spip);
void spi_lld_unselect(SPIDriver *spip);
+ msg_t spi_lld_ignore(SPIDriver *spip, size_t n);
msg_t spi_lld_exchange(SPIDriver *spip, size_t n, void *txbuf, void *rxbuf);
msg_t spi_lld_send(SPIDriver *spip, size_t n, void *txbuf);
msg_t spi_lld_receive(SPIDriver *spip, size_t n, void *rxbuf);
|