adding Adesto at25sf041a serial spi flash

Submitted by Diego Roversi on Oct. 14, 2016, 10:09 a.m.

Details

Message ID 20161014120949.84ea1cc913879f63952535b8@tiscali.it
State New
Headers show

Commit Message

Diego Roversi Oct. 14, 2016, 10:09 a.m.
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>

Patch hide | download patch | download mbox

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