]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - include/spi.h
Merge branch 'u-boot/master' into 'u-boot-arm/master'
[karo-tx-uboot.git] / include / spi.h
index ad9248bee02b30d4214baeb418048eef62ca8029..e2563c99f24f7260f79182ed45dbde4ff7a0f9ed 100644 (file)
 #define SPI_XFER_END           0x02    /* Deassert CS after transfer */
 #define SPI_XFER_MMAP          0x08    /* Memory Mapped start */
 #define SPI_XFER_MMAP_END      0x10    /* Memory Mapped End */
+#define SPI_XFER_ONCE          (SPI_XFER_BEGIN | SPI_XFER_END)
 
 /* Header byte that marks the start of the message */
 #define SPI_PREAMBLE_END_BYTE  0xec
 
+#define SPI_DEFAULT_WORDLEN 8
+
 /**
  * struct spi_slave - Representation of a SPI slave
  *
@@ -40,6 +43,7 @@
  *
  * @bus:               ID of the bus that the slave is attached to.
  * @cs:                        ID of the chip select connected to the slave.
+ * @wordlen:           Size of SPI word in number of bits
  * @max_write_size:    If non-zero, the maximum number of bytes which can
  *                     be written at once, excluding command bytes.
  * @memory_map:                Address of read-only SPI flash access.
@@ -47,6 +51,7 @@
 struct spi_slave {
        unsigned int bus;
        unsigned int cs;
+       unsigned int wordlen;
        unsigned int max_write_size;
        void *memory_map;
 };
@@ -152,6 +157,18 @@ int spi_claim_bus(struct spi_slave *slave);
  */
 void spi_release_bus(struct spi_slave *slave);
 
+/**
+ * Set the word length for SPI transactions
+ *
+ * Set the word length (number of bits per word) for SPI transactions.
+ *
+ * @slave:     The SPI slave
+ * @wordlen:   The number of bits in a word
+ *
+ * Returns: 0 on success, -1 on failure.
+ */
+int spi_set_wordlen(struct spi_slave *slave, unsigned int wordlen);
+
 /**
  * SPI transfer
  *