Export spi_transfer_single_frame() to "user" (code) space
authorNathael Pajani <nathael.pajani@ed3l.fr>
Fri, 13 Dec 2013 10:18:58 +0000 (11:18 +0100)
committerNathael Pajani <nathael.pajani@ed3l.fr>
Tue, 8 Nov 2022 16:03:04 +0000 (17:03 +0100)
drivers/ssp.c
include/drivers/ssp.h

index 574f6d2..d4dd498 100644 (file)
@@ -114,7 +114,7 @@ uint16_t spi_transfer_single_frame(uint16_t data)
        struct lpc_ssp* ssp = LPC_SSP0;
        ssp->data = data;
        /* Wait until the busy bit is cleared */
-       do {} while (ssp->status & LPC_SSP_ST_BUSY);
+       while (ssp->status & LPC_SSP_ST_BUSY);
        return ssp->data;
 }
 
index cfc7e2e..a46463a 100644 (file)
 void spi_cs_pull_low(void);
 void spi_cs_release(void);
 
+
+/***************************************************************************** */
+/* This function is used to transfer a byte to AND from a device
+ * As the SPI bus is full duplex, data can flow in both directions, but the clock is
+ *   always provided by the master. The SPI clock cannont be activated without sending
+ *   data, which means we must send data to the device when we want to read data from
+ *   the device.
+ * This function does not take care of the SPI chip select.
+ */
+uint16_t spi_transfer_single_frame(uint16_t data);
+
+
 /***************************************************************************** */
 /* Write data to the SPI bus.
  * Any data received while sending is discarded.