From 6facb532035198f75ed9ca015a35c216292ec810 Mon Sep 17 00:00:00 2001 From: Yi Zeng Date: Fri, 17 Nov 2017 13:41:05 +0800 Subject: [PATCH] nand: add three new slc-nand support PD#154862: nand: add three new slc-nand support According to new customer demand, we need add this three new nand into our code: 1. GD 9FU1G8F2AMGI 2. Winbond W29N04GVSIAA 3. Samsung k9f2g08u0d Change-Id: Ibb098fa79edca50613bbafb3ebcd706a86c46c3e Signed-off-by: Yi Zeng --- drivers/amlogic/mtd/nand_flash.c | 57 ++++++++++++++++++++++++++++---- 1 file changed, 51 insertions(+), 6 deletions(-) diff --git a/drivers/amlogic/mtd/nand_flash.c b/drivers/amlogic/mtd/nand_flash.c index 13edce8a674f..75a5a64a8e02 100644 --- a/drivers/amlogic/mtd/nand_flash.c +++ b/drivers/amlogic/mtd/nand_flash.c @@ -197,6 +197,19 @@ struct aml_nand_flash_dev aml_nand_flash_ids[] = { 0, (NAND_TIMING_MODE5 | NAND_ECC_BCH8_MODE)}, + {"SamSung NAND k9f2g08u0d 2Gb", + {NAND_MFR_SAMSUNG, 0xda, 0x10, 0x95, 0x46}, + 2048, + 256, + 0x20000, + 64, + 1, + 20, + 15, + 0, + 0, + (NAND_TIMING_MODE5 | NAND_ECC_BCH8_MODE)}, + {"A revision NAND 1GiB sF1G-A", {NAND_MFR_AMD, 0xf1, 0x80, 0x1d, 0x01, 0xf1}, 2048, @@ -275,6 +288,19 @@ struct aml_nand_flash_dev aml_nand_flash_ids[] = { 0, (NAND_TIMING_MODE5 | NAND_ECC_BCH8_MODE)}, + {"A revision NAND 4Gib W29N04GV ", + {NAND_ID_WINBOND, 0xdc, 0x90, 0x95, 0x54, 0x00}, + 2048, + 512, + 0x20000, + 64, + 1, + 20, + 15, + 0, + 0, + (NAND_TIMING_MODE5 | NAND_ECC_BCH8_MODE)}, + {"A revision NAND 1Gib W29N01GV ", {NAND_ID_WINBOND, 0xf1, 0x80, 0x95, 0x00, 0x00}, 2048, @@ -325,6 +351,20 @@ struct aml_nand_flash_dev aml_nand_flash_ids[] = { 0, 0, (NAND_TIMING_MODE5 | NAND_ECC_BCH8_MODE)}, + + {"A revision NAND 4Gib GD9FU1G8F2AMGI", + {NAND_ID_ESMT, 0xf1, 0x80, 0x1d, 0x42, 0xc8}, + 2048, + 128, + 0x20000, + 128, + 1, + 20, + 15, + 0, + 0, + (NAND_TIMING_MODE5 | NAND_ECC_BCH8_MODE)}, + {"ESMT SLC 128MiB 3.3V 8-bit F59L1G81Lxxx", {NAND_ID_ESMT, 0xd1, 0x80, 0x95, 0x42, 0x7f}, 2048, @@ -1049,14 +1089,19 @@ int aml_nand_get_fbb_issue(void) void aml_nand_check_fbb_issue(u8 *dev_id) { - u8 samsung_nand_id[MAX_ID_LEN] = { - NAND_MFR_SAMSUNG, 0xdc, 0x10, 0x95, 0x56}; + int i, k; + u8 samsung_nand_id[][MAX_ID_LEN] = { + {NAND_MFR_SAMSUNG, 0xdc, 0x10, 0x95, 0x56}, + {NAND_MFR_SAMSUNG, 0xda, 0x10, 0x95, 0x46}, + }; - if (!strncmp((char *)samsung_nand_id, (char *)dev_id, - strlen((const char *)samsung_nand_id))) - nand_fbb_issue_flag = 1; + k = ARRAY_SIZE(samsung_nand_id); + for (i = 0; i < k; i++) { + if (!strncmp((char *)samsung_nand_id[i], (char *)dev_id, + strlen((const char *)samsung_nand_id[i]))) + nand_fbb_issue_flag = 1; + } } - /* ******************** */ #ifdef CONFIG_PARAMETER_PAGE struct parameter_page para_page;