]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - include/spi.h
configs: imx6q_logic: Move CONFIG_PHY_SMSC to defconfig
[people/ms/u-boot.git] / include / spi.h
index ca96fa4b31b6cda4cdbbca9b0fcbe25406f6e5b7..f5bac8d002ad03bfc03abd8ef95fe8e6f3b9bc58 100644 (file)
 #define SPI_TX_BYTE    BIT(8)                  /* transmit with 1 wire byte */
 #define SPI_TX_DUAL    BIT(9)                  /* transmit with 2 wires */
 #define SPI_TX_QUAD    BIT(10)                 /* transmit with 4 wires */
-
-/* SPI mode_rx flags */
-#define SPI_RX_SLOW    BIT(0)                  /* receive with 1 wire slow */
-#define SPI_RX_FAST    BIT(1)                  /* receive with 1 wire fast */
-#define SPI_RX_DUAL    BIT(2)                  /* receive with 2 wires */
-#define SPI_RX_QUAD    BIT(3)                  /* receive with 4 wires */
-
-/* SPI bus connection options - see enum spi_dual_flash */
-#define SPI_CONN_DUAL_SHARED           (1 << 0)
-#define SPI_CONN_DUAL_SEPARATED        (1 << 1)
+#define SPI_RX_SLOW    BIT(11)                 /* receive with 1 wire slow */
+#define SPI_RX_DUAL    BIT(12)                 /* receive with 2 wires */
+#define SPI_RX_QUAD    BIT(13)                 /* receive with 4 wires */
 
 /* Header byte that marks the start of the message */
 #define SPI_PREAMBLE_END_BYTE  0xec
@@ -61,13 +54,11 @@ struct dm_spi_bus {
  * @cs:                Chip select number (0..n-1)
  * @max_hz:    Maximum bus speed that this slave can tolerate
  * @mode:      SPI mode to use for this device (see SPI mode flags)
- * @mode_rx:   SPI RX mode to use for this slave (see SPI mode_rx flags)
  */
 struct dm_spi_slave_platdata {
        unsigned int cs;
        uint max_hz;
        uint mode;
-       u8 mode_rx;
 };
 
 #endif /* CONFIG_DM_SPI */
@@ -94,12 +85,12 @@ struct dm_spi_slave_platdata {
  *                     bus (bus->seq) so does not need to be stored
  * @cs:                        ID of the chip select connected to the slave.
  * @mode:              SPI mode to use for this slave (see SPI mode flags)
- * @mode_rx:           SPI RX mode to use for this slave (see SPI mode_rx flags)
  * @wordlen:           Size of SPI word in number of bits
+ * @max_read_size:     If non-zero, the maximum number of bytes which can
+ *                     be read at once.
  * @max_write_size:    If non-zero, the maximum number of bytes which can
- *                     be written at once, excluding command bytes.
+ *                     be written at once.
  * @memory_map:                Address of read-only SPI flash access.
- * @option:            Varies SPI bus options - separate, shared bus.
  * @flags:             Indication of SPI flags.
  */
 struct spi_slave {
@@ -112,11 +103,10 @@ struct spi_slave {
        unsigned int cs;
 #endif
        uint mode;
-       u8 mode_rx;
        unsigned int wordlen;
+       unsigned int max_read_size;
        unsigned int max_write_size;
        void *memory_map;
-       u8 option;
 
        u8 flags;
 #define SPI_XFER_BEGIN         BIT(0)  /* Assert CS before transfer */
@@ -124,7 +114,6 @@ struct spi_slave {
 #define SPI_XFER_ONCE          (SPI_XFER_BEGIN | SPI_XFER_END)
 #define SPI_XFER_MMAP          BIT(2)  /* Memory Mapped start */
 #define SPI_XFER_MMAP_END      BIT(3)  /* Memory Mapped End */
-#define SPI_XFER_U_PAGE                BIT(4)
 };
 
 /**
@@ -328,33 +317,6 @@ static inline int spi_w8r8(struct spi_slave *slave, unsigned char byte)
        return ret < 0 ? ret : din[1];
 }
 
-/**
- * Set up a SPI slave for a particular device tree node
- *
- * This calls spi_setup_slave() with the correct bus number. Call
- * spi_free_slave() to free it later.
- *
- * @param blob:                Device tree blob
- * @param slave_node:  Slave node to use
- * @param spi_node:    SPI peripheral node to use
- * @return pointer to new spi_slave structure
- */
-struct spi_slave *spi_setup_slave_fdt(const void *blob, int slave_node,
-                                     int spi_node);
-
-/**
- * spi_base_setup_slave_fdt() - helper function to set up a SPI slace
- *
- * This decodes SPI properties from the slave node to determine the
- * chip select and SPI parameters.
- *
- * @blob:      Device tree blob
- * @busnum:    Bus number to use
- * @node:      Device tree node for the SPI bus
- */
-struct spi_slave *spi_base_setup_slave_fdt(const void *blob, int busnum,
-                                          int node);
-
 #ifdef CONFIG_DM_SPI
 
 /**
@@ -575,7 +537,7 @@ int spi_find_chip_select(struct udevice *bus, int cs, struct udevice **devp);
  * @node:      Node offset to read from
  * @plat:      Place to put the decoded information
  */
-int spi_slave_ofdata_to_platdata(const void *blob, int node,
+int spi_slave_ofdata_to_platdata(struct udevice *dev,
                                 struct dm_spi_slave_platdata *plat);
 
 /**