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(a)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
--
Diego Roversi <diegor(a)tiscali.it>