]> git.sur5r.net Git - u-boot/blobdiff - drivers/mtd/spi/spi_flash_internal.h
Merge branch 'master' of git://git.denx.de/u-boot-nand-flash
[u-boot] / drivers / mtd / spi / spi_flash_internal.h
index d7bcd6d6afdeee746954d33421d9ba3ac1152514..141cfa8b26d75e6e816c7315530854a93035b803 100644 (file)
 
 #define CMD_READ_ARRAY_SLOW            0x03
 #define CMD_READ_ARRAY_FAST            0x0b
-#define CMD_READ_ARRAY_LEGACY          0xe8
 
+#define CMD_WRITE_STATUS               0x01
+#define CMD_PAGE_PROGRAM               0x02
+#define CMD_WRITE_DISABLE              0x04
 #define CMD_READ_STATUS                        0x05
 #define CMD_WRITE_ENABLE               0x06
+#define CMD_ERASE_4K                   0x20
+#define CMD_ERASE_32K                  0x52
+#define CMD_ERASE_64K                  0xd8
+#define CMD_ERASE_CHIP                 0xc7
 
 /* Common status */
 #define STATUS_WIP                     0x01
@@ -45,6 +51,32 @@ int spi_flash_cmd_read_fast(struct spi_flash *flash, u32 offset,
 int spi_flash_cmd_write(struct spi_slave *spi, const u8 *cmd, size_t cmd_len,
                const void *data, size_t data_len);
 
+/*
+ * Write the requested data out breaking it up into multiple write
+ * commands as needed per the write size.
+ */
+int spi_flash_cmd_write_multi(struct spi_flash *flash, u32 offset,
+               size_t len, const void *buf);
+
+/*
+ * Enable writing on the SPI flash.
+ */
+static inline int spi_flash_cmd_write_enable(struct spi_flash *flash)
+{
+       return spi_flash_cmd(flash->spi, CMD_WRITE_ENABLE, NULL, 0);
+}
+
+/*
+ * Disable writing on the SPI flash.
+ */
+static inline int spi_flash_cmd_write_disable(struct spi_flash *flash)
+{
+       return spi_flash_cmd(flash->spi, CMD_WRITE_DISABLE, NULL, 0);
+}
+
+/* Program the status register. */
+int spi_flash_cmd_write_status(struct spi_flash *flash, u8 sr);
+
 /*
  * Same as spi_flash_cmd_read() except it also claims/releases the SPI
  * bus. Used as common part of the ->read() operation.
@@ -63,8 +95,7 @@ int spi_flash_cmd_poll_bit(struct spi_flash *flash, unsigned long timeout,
 int spi_flash_cmd_wait_ready(struct spi_flash *flash, unsigned long timeout);
 
 /* Erase sectors. */
-int spi_flash_cmd_erase(struct spi_flash *flash, u8 erase_cmd,
-                       u32 erase_size, u32 offset, size_t len);
+int spi_flash_cmd_erase(struct spi_flash *flash, u32 offset, size_t len);
 
 /* Manufacturer-specific probe functions */
 struct spi_flash *spi_flash_probe_spansion(struct spi_slave *spi, u8 *idcode);