public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/2 v1] sf: probe: Add support Atmel AT45DB series devices special commands
@ 2015-03-25 12:35 Haikun Wang
  2015-03-25 14:09 ` Peng Fan
  0 siblings, 1 reply; 6+ messages in thread
From: Haikun Wang @ 2015-03-25 12:35 UTC (permalink / raw)
  To: u-boot

From: Haikun Wang <Haikun.Wang@freescale.com>

Atmel AT45DB series devices commands is different from common spi flash
commands. This patch add support for AT45DB special commands.
Add a flag AT45DB_CMD to control whether use those commands.

Signed-off-by: Haikun Wang <Haikun.Wang@freescale.com>
---

Changes in v1: None

 drivers/mtd/spi/sf_internal.h |  7 +++++++
 drivers/mtd/spi/sf_ops.c      |  2 +-
 drivers/mtd/spi/sf_probe.c    | 10 ++++++++++
 3 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/drivers/mtd/spi/sf_internal.h b/drivers/mtd/spi/sf_internal.h
index 785f7a9..234af21 100644
--- a/drivers/mtd/spi/sf_internal.h
+++ b/drivers/mtd/spi/sf_internal.h
@@ -43,6 +43,7 @@ enum {
 	SST_BP		= 1 << 3,
 	SST_WP		= 1 << 4,
 	WR_QPP		= 1 << 5,
+	AT45DB_CMD	= 1 << 6,
 };
 
 #define SST_WR		(SST_BP | SST_WP)
@@ -106,6 +107,12 @@ enum {
 #define SPI_FLASH_PAGE_ERASE_TIMEOUT		(5 * CONFIG_SYS_HZ)
 #define SPI_FLASH_SECTOR_ERASE_TIMEOUT	(10 * CONFIG_SYS_HZ)
 
+/* Atmel AT45DB specific */
+#define CMD_ATMEL_PAGE_PROGRAM		0x82
+#define CMD_ATMEL_READ_STATUS		0xd7
+#define CMD_ATMEL_FLAG_STATUS		0xd7
+#define CMD_ATMEL_BLK_ERASE	        0x50
+
 /* SST specific */
 #ifdef CONFIG_SPI_FLASH_SST
 # define CMD_SST_BP		0x02    /* Byte Program */
diff --git a/drivers/mtd/spi/sf_ops.c b/drivers/mtd/spi/sf_ops.c
index 34bc54e..27ce5f9 100644
--- a/drivers/mtd/spi/sf_ops.c
+++ b/drivers/mtd/spi/sf_ops.c
@@ -165,7 +165,7 @@ int spi_flash_cmd_wait_ready(struct spi_flash *flash, unsigned long timeout)
 	u8 poll_bit = STATUS_WIP;
 	u8 cmd = flash->poll_cmd;
 
-	if (cmd == CMD_FLAG_STATUS) {
+	if (cmd == CMD_FLAG_STATUS || cmd == CMD_ATMEL_FLAG_STATUS) {
 		poll_bit = STATUS_PEC;
 		check_status = poll_bit;
 	}
diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c
index 4103723..2ccddf2 100644
--- a/drivers/mtd/spi/sf_probe.c
+++ b/drivers/mtd/spi/sf_probe.c
@@ -226,6 +226,16 @@ static int spi_flash_validate_params(struct spi_slave *spi, u8 *idcode,
 		flash->poll_cmd = CMD_FLAG_STATUS;
 #endif
 
+#ifdef CONFIG_SPI_FLASH_ATMEL
+	if (params->flags & AT45DB_CMD) {
+		flash->poll_cmd = CMD_ATMEL_READ_STATUS;
+		flash->write_cmd = CMD_ATMEL_PAGE_PROGRAM;
+		/* use block-erase command, eight pages */
+		flash->erase_cmd = CMD_ATMEL_BLK_ERASE;
+		flash->erase_size = flash->page_size * 8;
+	}
+#endif
+
 	/* Configure the BAR - discover bank cmds and read current bank */
 #ifdef CONFIG_SPI_FLASH_BAR
 	u8 curr_bank = 0;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-03-26 11:03 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-25 12:35 [U-Boot] [PATCH 1/2 v1] sf: probe: Add support Atmel AT45DB series devices special commands Haikun Wang
2015-03-25 14:09 ` Peng Fan
2015-03-26  2:39   ` Haikun.Wang at freescale.com
2015-03-26  3:04     ` Peng Fan
2015-03-26 10:50       ` Haikun.Wang at freescale.com
2015-03-26 11:03         ` Peng Fan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox