From abb7e885c1f7612731da18300c2c801390512b9e Mon Sep 17 00:00:00 2001 From: Yonghui Yu Date: Fri, 23 Jun 2017 16:40:59 +0800 Subject: [PATCH] mtd: nand: add slc nand support. PD#142177: mtd: nand: add slc ids. 1. Toshiba 128MB TC58BVG1S3HTA00 2. Spansion 256MB S34ML02G1-MLO2G100BH1OO 3. Spansino 256MB S34ML02G1-MLO2G200BH1OO 4. Mxic 256MB MX30LF2G18AC 5. MXic 512MB MX30LF4G18AC 6. Samsung 512MB K9F4G08U0F 7. Toshiba 512MB TH58NVG2S3HTA Change-Id: I765cd11cb9c7dd00e5a269e0dc526df536252ff8 Signed-off-by: Yonghui Yu --- drivers/amlogic/mtd/m3_nand.c | 7 ++- drivers/amlogic/mtd/nand_flash.c | 97 ++++++++++++++++++++++++++++++++++------ 2 files changed, 90 insertions(+), 14 deletions(-) diff --git a/drivers/amlogic/mtd/m3_nand.c b/drivers/amlogic/mtd/m3_nand.c index 6e6a380..4a928a0 100644 --- a/drivers/amlogic/mtd/m3_nand.c +++ b/drivers/amlogic/mtd/m3_nand.c @@ -280,6 +280,9 @@ void get_sys_clk_rate_mtd(struct hw_controller *controller, int *rate) case 24: clk = 0x80000201; break; + case 112: + clk = 0x80000249; + break; case 200: clk = 0x80000245; break; @@ -323,7 +326,9 @@ static void m3_nand_adjust_timing(struct aml_nand_chip *aml_chip) if (!aml_chip->T_RHOH) aml_chip->T_RHOH = 15; - if (aml_chip->T_REA > 16) + if (aml_chip->T_REA > 30) + sys_clk_rate = 112; + else if (aml_chip->T_REA > 16) sys_clk_rate = 200; else sys_clk_rate = 250; diff --git a/drivers/amlogic/mtd/nand_flash.c b/drivers/amlogic/mtd/nand_flash.c index b8b9a84b..dda02a5 100644 --- a/drivers/amlogic/mtd/nand_flash.c +++ b/drivers/amlogic/mtd/nand_flash.c @@ -183,6 +183,19 @@ struct aml_nand_flash_dev aml_nand_flash_ids[] = { INTEL_20NM, (NAND_TIMING_MODE5 | NAND_ECC_BCH16_MODE)}, + {"SamSung NAND K9F4G08U0F 4Gb", + {NAND_MFR_SAMSUNG, 0xdc, 0x10, 0x95, 0x56}, + 2048, + 512, + 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, @@ -209,6 +222,31 @@ struct aml_nand_flash_dev aml_nand_flash_ids[] = { 0, (NAND_TIMING_MODE5 | NAND_ECC_BCH8_MODE)}, + {"AMD/Spansion Slc NAND 2Gib S34ML02G1(MLO2G100BH1OO)", + {NAND_MFR_AMD, 0xda, 0x90, 0x95, 0x44, 0x01}, + 2048, + 256, + 0x20000, + 64, + 1, + 16, + 15, + 0, + 0, + (NAND_TIMING_MODE5 | NAND_ECC_BCH8_MODE)}, + + {"AMD/Spansion Slc NAND 2Gib S34ML02G1(MLO2G200BH1OO)", + {NAND_MFR_AMD, 0xda, 0x90, 0x95, 0x46, 0x01}, + 2048, + 256, + 0x20000, + 64, + 1, + 16, + 15, + 0, + 0, + (NAND_TIMING_MODE5 | NAND_ECC_BCH8_MODE)}, {"A revision NAND 1Gib W29N01GV ", {NAND_ID_WINBOND, 0xf1, 0x80, 0x95, 0x00, 0x00}, 2048, @@ -247,9 +285,8 @@ struct aml_nand_flash_dev aml_nand_flash_ids[] = { 0, 0, (NAND_TIMING_MODE5 | NAND_ECC_BCH8_MODE)}, - - {"Slc NAND 4Gib MX30LF4G18AC ", - {NAND_MFR_MACRONIX, 0xdc, 0x90, 0x95, 0x56}, +{"A revision NAND 4Gib EMST ", + {NAND_ID_ESMT, 0xac, 0x90, 0x15, 0x54, 0x7f}, 2048, 512, 0x20000, @@ -261,33 +298,31 @@ struct aml_nand_flash_dev aml_nand_flash_ids[] = { 0, (NAND_TIMING_MODE5 | NAND_ECC_BCH8_MODE)}, - {"A revision NAND 4Gib EMST ", - {NAND_ID_ESMT, 0xac, 0x90, 0x15, 0x54, 0x7f}, + {"ESMT SLC 256MiB 3.3V 8-bit", + {NAND_ID_ESMT, 0xda, 0x90, 0x95, 0x44, 0x7f}, 2048, - 512, + 256, 0x20000, 64, 1, - 16, + 20, 15, 0, 0, (NAND_TIMING_MODE5 | NAND_ECC_BCH8_MODE)}, - - {"ESMT SLC 256MiB 3.3V 8-bit", - {NAND_ID_ESMT, 0xda, 0x90, 0x95, 0x44, 0x7f}, + {"A revision NAND 2Gib TC58BVG1S3HTA00 ", + {NAND_MFR_TOSHIBA, 0xda, 0x90, 0x15, 0xF6}, 2048, 256, 0x20000, 64, 1, 20, - 15, + 25, 0, 0, (NAND_TIMING_MODE5 | NAND_ECC_BCH8_MODE)}, - - {"A revision NAND 4Gib TC58NVG1S3HBAI4 ", + {"A revision NAND 2Gib TC58NVG1S3HBAI4 ", {NAND_MFR_TOSHIBA, 0xda, 0x90, 0x15, 0x76}, 2048, 256, @@ -299,6 +334,42 @@ struct aml_nand_flash_dev aml_nand_flash_ids[] = { 0, 0, (NAND_TIMING_MODE5 | NAND_ECC_BCH8_MODE)}, + {"A revision NAND 4Gib TH58NVG2S3HTA00 ", + {NAND_MFR_TOSHIBA, 0xdc, 0x91, 0x15, 0x76}, + 2048, + 512, + 0x20000, + 64, + 1, + 35, /* trc = 50, 20MHz max ! */ + 10, + 0, + 0, + (NAND_TIMING_MODE5 | NAND_ECC_BCH8_MODE)}, + {"Slc NAND 2Gib MX30LF2G18AC ", + {NAND_MFR_MACRONIX, 0xda, 0x90, 0x95, 0x06}, + 2048, + 256, + 0x20000, + 64, + 1, + 20, + 25, + 0, + 0, + (NAND_TIMING_MODE5 | NAND_ECC_BCH8_MODE)}, + {"Slc NAND 4Gib MX30LF4G18AC ", + {NAND_MFR_MACRONIX, 0xdc, 0x90, 0x95, 0x56}, + 2048, + 512, + 0x20000, + 64, + 1, + 16, + 15, + 0, + 0, + (NAND_TIMING_MODE5 | NAND_ECC_BCH8_MODE)}, {"A revision NAND 128MB TC58NVG0S3HTA00 ", {NAND_MFR_TOSHIBA, 0xf1, 0x80, 0x15, 0x72}, -- 2.7.4