Hello,
This patch implements the handling of the Adesto AT25SF041A flash chip. This chip is an improved version of the Atmel AT25DF041A, and support the same protcol, but with a different id, 0x8401 insted of 0x4401.
Tested on BeagleBone board.
Signed-off-by: Diego Roversi diegor@tiscali.it
Index: flashchips.c =================================================================== --- flashchips.c (revision 1955) +++ flashchips.c (working copy) @@ -1558,10 +1558,48 @@ .read = spi_chip_read, .voltage = {2700, 3600}, /* 2.3-3.6V & 2.7-3.6V models available */ },
{ + .vendor = "Adesto", + .name = "AT25SF041A", + .bustype = BUS_SPI, + .manufacture_id = ATMEL_ID, + .model_id = ATMEL_AT25SF041A, + .total_size = 512, + .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, + .tested = TEST_OK_PREW, + .probe = probe_spi_rdid, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {4 * 1024, 128} }, + .block_erase = spi_block_erase_20, + }, { + .eraseblocks = { {32 * 1024, 16} }, + .block_erase = spi_block_erase_52, + }, { + .eraseblocks = { {64 * 1024, 8} }, + .block_erase = spi_block_erase_d8, + }, { + .eraseblocks = { {512 * 1024, 1} }, + .block_erase = spi_block_erase_60, + }, { + .eraseblocks = { {512 * 1024, 1} }, + .block_erase = spi_block_erase_c7, + } + }, + .printlock = spi_prettyprint_status_register_at25df, + .unlock = spi_disable_blockprotect_at2x_global_unprotect, + .write = spi_chip_write_256, + .read = spi_chip_read, + .voltage = {2700, 3600}, /* 2.3-3.6V & 2.7-3.6V models available */ + }, + + { .vendor = "Atmel", .name = "AT25DF081", .bustype = BUS_SPI, .manufacture_id = ATMEL_ID, .model_id = ATMEL_AT25DF081, Index: flashchips.h =================================================================== --- flashchips.h (revision 1955) +++ flashchips.h (working copy) @@ -131,10 +131,11 @@ #define AMIC_A49LF040A 0x9d
#define ATMEL_ID 0x1F /* Atmel (now used by Adesto) */ #define ATMEL_AT25DF021 0x4300 #define ATMEL_AT25DF041A 0x4401 +#define ATMEL_AT25SF041A 0x8401 #define ATMEL_AT25DF081 0x4502 /* EDI 0x00. AT25DL081 has same ID + EDI 0x0100 */ #define ATMEL_AT25DF081A 0x4501 /* Yes, 81A has a lower number than 81 */ #define ATMEL_AT25DF161 0x4602 #define ATMEL_AT25DF321 0x4700 /* Same as 26DF321 */ #define ATMEL_AT25DF321A 0x4701