
On 2017/5/19 22:59, Cyrille Pitchen wrote:
This is a transitional patch to prepare the SPI FLASH sub-system to support the 4-byte address instruction set later. For now, flash->addr_len is always set to SPI_FLASH_3B_ADDR_LEN.
Signed-off-by: Cyrille Pitchen cyrille.pitchen@atmel.com
Acked-by Wenyou Yang wenyou.yang@atmel.com
Best Regards, Wenyou Yang
drivers/mtd/spi/spi_flash.c | 13 ++++++++----- include/spi_flash.h | 2 ++ 2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c index ec998166017d..c5e00772f241 100644 --- a/drivers/mtd/spi/spi_flash.c +++ b/drivers/mtd/spi/spi_flash.c @@ -322,7 +322,7 @@ int spi_flash_cmd_erase_ops(struct spi_flash *flash, u32 offset, size_t len) } }
- spi_flash_command_init(&cmd, flash->erase_cmd, SPI_FLASH_3B_ADDR_LEN,
- spi_flash_command_init(&cmd, flash->erase_cmd, flash->addr_len, SPI_FCMD_ERASE); while (len) { erase_addr = offset;
@@ -377,7 +377,7 @@ int spi_flash_cmd_write_ops(struct spi_flash *flash, u32 offset, } }
- spi_flash_command_init(&cmd, flash->write_cmd, SPI_FLASH_3B_ADDR_LEN,
- spi_flash_command_init(&cmd, flash->write_cmd, flash->addr_len, SPI_FCMD_WRITE); cmd.proto = flash->write_proto; for (actual = 0; actual < len; actual += chunk_len) {
@@ -481,7 +481,7 @@ int spi_flash_cmd_read_ops(struct spi_flash *flash, u32 offset, return 0; }
- spi_flash_command_init(&cmd, flash->read_cmd, SPI_FLASH_3B_ADDR_LEN,
- spi_flash_command_init(&cmd, flash->read_cmd, flash->addr_len, SPI_FCMD_READ); cmd.proto = flash->read_proto; cmd.num_wait_states = flash->dummy_byte * 8;
@@ -529,7 +529,7 @@ static int sst_byte_write(struct spi_flash *flash, u32 offset, const void *buf) int ret; u8 sr = 0xFFu;
- spi_flash_command_init(&cmd, CMD_SST_BP, SPI_FLASH_3B_ADDR_LEN,
- spi_flash_command_init(&cmd, CMD_SST_BP, flash->addr_len, SPI_FCMD_WRITE); cmd.addr = offset; cmd.data_len = 1;
@@ -580,7 +580,7 @@ int sst_write_wp(struct spi_flash *flash, u32 offset, size_t len, if (ret) goto done;
- spi_flash_command_init(&cmd, CMD_SST_AAI_WP, SPI_FLASH_3B_ADDR_LEN,
- spi_flash_command_init(&cmd, CMD_SST_AAI_WP, flash->addr_len, SPI_FCMD_WRITE); cmd.addr = offset; cmd.data_len = 2;
@@ -1103,6 +1103,9 @@ int spi_flash_scan(struct spi_flash *flash) flash->flags |= SNOR_F_USE_FSR; #endif
- /* Set the address length */
- flash->addr_len = SPI_FLASH_3B_ADDR_LEN;
- /* Configure the BAR - discover bank cmds and read current bank */ #ifdef CONFIG_SPI_FLASH_BAR ret = read_bar(flash, info);
diff --git a/include/spi_flash.h b/include/spi_flash.h index ac2b37f0202f..9168fca8f96d 100644 --- a/include/spi_flash.h +++ b/include/spi_flash.h @@ -44,6 +44,7 @@ struct spi_slave;
- @bank_read_cmd: Bank read cmd
- @bank_write_cmd: Bank write cmd
- @bank_curr: Current flash bank
- @addr_len: Number of bytes for the address
- @erase_cmd: Erase cmd 4K, 32K, 64K
- @read_cmd: Read cmd - Array Fast, Extn read and quad read.
- @write_cmd: Write cmd - page and quad program.
@@ -81,6 +82,7 @@ struct spi_flash { u8 bank_write_cmd; u8 bank_curr; #endif
- u8 addr_len; u8 erase_cmd; u8 read_cmd; u8 write_cmd;