summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajeshwari Shinde <rajeshwari.s@samsung.com>2013-05-28 20:10:37 +0000
committerJagannadha Sutradharudu Teki <jaganna@xilinx.com>2013-06-03 00:04:40 +0530
commitbb786b84bdbcfe0474d53a54c82c5695494a6ab5 (patch)
treec329b3cc06a64f9312ac988d48305b89af8056ae
parented03f41778c7a11adf81816278c92dfae23d6d77 (diff)
downloadu-boot-imx-bb786b84bdbcfe0474d53a54c82c5695494a6ab5.zip
u-boot-imx-bb786b84bdbcfe0474d53a54c82c5695494a6ab5.tar.gz
u-boot-imx-bb786b84bdbcfe0474d53a54c82c5695494a6ab5.tar.bz2
spi: Add support for preamble bytes
A SPI slave may take time to react to a request. For SPI flash devices this time is defined as one bit time, or a whole byte for 'fast read' mode. If the SPI slave is another CPU, then the time it takes to react may vary. It is convenient to allow the slave device to tag the start of the actual reply so that the host can determine when this 'preamble' finishes and the actual message starts. Add a preamble flag to the available SPI flags. If supported by the driver then it will ignore any received bytes before the preamble on each transaction. This ensures that reliable communication with the slave is possible. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com> Reviewed-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
-rw-r--r--include/spi.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/spi.h b/include/spi.h
index 3fe2e1e..1638b50 100644
--- a/include/spi.h
+++ b/include/spi.h
@@ -37,11 +37,16 @@
#define SPI_LSB_FIRST 0x08 /* per-word bits-on-wire */
#define SPI_3WIRE 0x10 /* SI/SO signals shared */
#define SPI_LOOP 0x20 /* loopback mode */
+#define SPI_SLAVE 0x40 /* slave mode */
+#define SPI_PREAMBLE 0x80 /* Skip preamble bytes */
/* SPI transfer flags */
#define SPI_XFER_BEGIN 0x01 /* Assert CS before transfer */
#define SPI_XFER_END 0x02 /* Deassert CS after transfer */
+/* Header byte that marks the start of the message */
+#define SPI_PREAMBLE_END_BYTE 0xec
+
/*-----------------------------------------------------------------------
* Representation of a SPI slave, i.e. what we're communicating with.
*