All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jagan Teki <jteki@openedev.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 11/27] sf: Add JEDEC_MFR
Date: Thu, 11 Aug 2016 13:37:33 +0530	[thread overview]
Message-ID: <1470902869-22570-11-git-send-email-jteki@openedev.com> (raw)
In-Reply-To: <1470902869-22570-1-git-send-email-jteki@openedev.com>

Instead using idcode[0] for detecting manufacture id
add JEDEC_MFR macro for code simplicity and undesirability.

Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Jagan Teki <jteki@openedev.com>
---
 drivers/mtd/spi/sf_internal.h |  1 +
 drivers/mtd/spi/spi_flash.c   | 30 +++++++++++++++++-------------
 2 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/drivers/mtd/spi/sf_internal.h b/drivers/mtd/spi/sf_internal.h
index bb5251d..a9455ac 100644
--- a/drivers/mtd/spi/sf_internal.h
+++ b/drivers/mtd/spi/sf_internal.h
@@ -104,6 +104,7 @@ int sst_write_bp(struct spi_flash *flash, u32 offset, size_t len,
 #define CMD_SPANSION_WRAR	0x71 /* Write any device register */
 #endif
 
+#define JEDEC_MFR(info)		((info)->id[0])
 #define JEDEC_ID(info)		(((info)->id[1]) << 8 | ((info)->id[2]))
 #define JEDEC_EXT(info)		(((info)->id[3]) << 8 | ((info)->id[4]))
 
diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c
index 099714e..daa9014 100644
--- a/drivers/mtd/spi/spi_flash.c
+++ b/drivers/mtd/spi/spi_flash.c
@@ -165,7 +165,8 @@ bar_end:
 	return flash->bank_curr;
 }
 
-static int spi_flash_read_bar(struct spi_flash *flash, u8 idcode0)
+static int spi_flash_read_bar(struct spi_flash *flash,
+			      const struct spi_flash_info *info)
 {
 	u8 curr_bank = 0;
 	int ret;
@@ -173,7 +174,7 @@ static int spi_flash_read_bar(struct spi_flash *flash, u8 idcode0)
 	if (flash->size <= SPI_FLASH_16MB_BOUN)
 		goto bar_end;
 
-	switch (idcode0) {
+	switch (JEDEC_MFR(info)) {
 	case SPI_FLASH_CFI_MFR_SPANSION:
 		flash->bank_read_cmd = CMD_BANKADDR_BRRD;
 		flash->bank_write_cmd = CMD_BANKADDR_BRWR;
@@ -949,9 +950,10 @@ static const struct spi_flash_info *spi_flash_read_id(struct spi_flash *flash)
 	return ERR_PTR(-ENODEV);
 }
 
-static int set_quad_mode(struct spi_flash *flash, u8 idcode0)
+static int set_quad_mode(struct spi_flash *flash,
+			 const struct spi_flash_info *info)
 {
-	switch (idcode0) {
+	switch (JEDEC_MFR(info)) {
 #ifdef CONFIG_SPI_FLASH_MACRONIX
 	case SPI_FLASH_CFI_MFR_MACRONIX:
 		return macronix_quad_enable(flash);
@@ -966,7 +968,8 @@ static int set_quad_mode(struct spi_flash *flash, u8 idcode0)
 		return micron_quad_enable(flash);
 #endif
 	default:
-		printf("SF: Need set QEB func for %02x flash\n", idcode0);
+		printf("SF: Need set QEB func for %02x flash\n",
+		       JEDEC_MFR(info));
 		return -1;
 	}
 }
@@ -1085,9 +1088,9 @@ int spi_flash_scan(struct spi_flash *flash)
 	}
 #endif
 	/* Flash powers up read-only, so clear BP# bits */
-	if (idcode[0] == SPI_FLASH_CFI_MFR_ATMEL ||
-	    idcode[0] == SPI_FLASH_CFI_MFR_MACRONIX ||
-	    idcode[0] == SPI_FLASH_CFI_MFR_SST)
+	if (JEDEC_MFR(info) == SPI_FLASH_CFI_MFR_ATMEL ||
+	    JEDEC_MFR(info) == SPI_FLASH_CFI_MFR_MACRONIX ||
+	    JEDEC_MFR(info) == SPI_FLASH_CFI_MFR_SST)
 		write_sr(flash, 0);
 
 	/* Assign spi data */
@@ -1115,7 +1118,7 @@ int spi_flash_scan(struct spi_flash *flash)
 #endif
 
 	/* lock hooks are flash specific - assign them based on idcode0 */
-	switch (idcode[0]) {
+	switch (JEDEC_MFR(info)) {
 #if defined(CONFIG_SPI_FLASH_STMICRO) || defined(CONFIG_SPI_FLASH_SST)
 	case SPI_FLASH_CFI_MFR_STMICRO:
 	case SPI_FLASH_CFI_MFR_SST:
@@ -1125,7 +1128,7 @@ int spi_flash_scan(struct spi_flash *flash)
 #endif
 		break;
 	default:
-		debug("SF: Lock ops not supported for %02x flash\n", idcode[0]);
+		debug("SF: Lock ops not supported for %02x flash\n", JEDEC_MFR(info));
 	}
 
 	/* Compute the flash size */
@@ -1185,9 +1188,10 @@ int spi_flash_scan(struct spi_flash *flash)
 	if ((flash->read_cmd == CMD_READ_QUAD_OUTPUT_FAST) ||
 	    (flash->read_cmd == CMD_READ_QUAD_IO_FAST) ||
 	    (flash->write_cmd == CMD_QUAD_PAGE_PROGRAM)) {
-		ret = set_quad_mode(flash, idcode[0]);
+		ret = set_quad_mode(flash, info);
 		if (ret) {
-			debug("SF: Fail to set QEB for %02x\n", idcode[0]);
+			debug("SF: Fail to set QEB for %02x\n",
+			      JEDEC_MFR(info));
 			return -EINVAL;
 		}
 	}
@@ -1218,7 +1222,7 @@ int spi_flash_scan(struct spi_flash *flash)
 
 	/* Configure the BAR - discover bank cmds and read current bank */
 #ifdef CONFIG_SPI_FLASH_BAR
-	ret = spi_flash_read_bar(flash, idcode[0]);
+	ret = spi_flash_read_bar(flash, info);
 	if (ret < 0)
 		return ret;
 #endif
-- 
2.7.4

  parent reply	other threads:[~2016-08-11  8:07 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-11  8:07 [U-Boot] [PATCH v3 01/27] sf: Simplify fastest read cmd code Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 02/27] sf: Remove e_rd_cmd from param table Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 03/27] spi: Use mode for rx mode flags Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 04/27] spi: Remove SPI_RX_FAST Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 05/27] sf: Remove SECT_32K Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 06/27] sf: Add CONFIG_SPI_FLASH_USE_4K_SECTORS in spi_flash Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 07/27] sf: Move flags macro's to spi_flash_params{} members Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 08/27] sf: Adopt flash table INFO macro from Linux Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 09/27] sf: Add JEDEC_ID and JEDEC_EXT macro Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 10/27] sf: Rename spi_flash_params => spi_flash_info Jagan Teki
2016-08-11  8:07 ` Jagan Teki [this message]
2016-08-11  8:07 ` [U-Boot] [PATCH v3 12/27] sf: Simplify lock ops detection code Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 13/27] sf: sandbox: Fix ID exctract from spi_flash_info Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 14/27] sf: Cleanup spi_flash_info{} Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 15/27] sf: Cleanup sf_params Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 16/27] sf: nr_sectors -> n_sectors Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 17/27] sf: Add SPI_FLASH_MAX_ID_LEN Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 18/27] sf: Increase max id length by 1 byte Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 19/27] sf: Add INFO6 flash_info macro Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 20/27] sf: params: Add S25FS256S_64K spi flash support Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 21/27] sf: Remove legacy idcode detection code Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 22/27] sf: Remove non-meaningful comments Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 23/27] sf: Rename sf_params.c to spi_flash_ids Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 24/27] sf: ids: Use small letter's with flash name Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 25/27] sf: ids: Use small letter in ext_jedec Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 26/27] sf: Rename few local functions Jagan Teki
2016-08-11  8:07 ` [U-Boot] [PATCH v3 27/27] spi: Remove dual flash code Jagan Teki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1470902869-22570-11-git-send-email-jteki@openedev.com \
    --to=jteki@openedev.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.