diff options
author | Ashutosh Patel <ashutoshp@nvidia.com> | 2012-12-14 11:06:53 +0530 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2013-09-14 01:32:13 -0700 |
commit | 50e76ef3fb8ce6c0963bc6b19347e0e1d9313ad1 (patch) | |
tree | 9fceb867d7c22cf9238d6287fe7ec38156b70aa3 /drivers/mtd | |
parent | 12985576688758d593bf1ced74b32ee31f803d55 (diff) |
mtd: cfi_cmdset_0002: Add supoort for fujitsu MSP14LV320 flash
Support for following features
- Jedec probe
- Add entry for MSP14LV320 in jedec table
Bug 1046135
Change-Id: I82e4dd74eafed4598411e817e3a67a659b3d4326
Signed-off-by: Ashutosh Patel <ashutoshp@nvidia.com>
Reviewed-on: http://git-master/r/171289
GVS: Gerrit_Virtual_Submit
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Diffstat (limited to 'drivers/mtd')
-rw-r--r-- | drivers/mtd/chips/cfi_cmdset_0002.c | 13 | ||||
-rw-r--r-- | drivers/mtd/chips/jedec_probe.c | 14 |
2 files changed, 26 insertions, 1 deletions
diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c index 8c352304a8e5..d796177ee136 100644 --- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c @@ -49,6 +49,7 @@ #define SST49LF040B 0x0050 #define SST49LF008A 0x005a #define AT49BV6416 0x00d6 +#define MSP14LV320 0x227E static int cfi_amdstd_read (struct mtd_info *, loff_t, size_t, size_t *, u_char *); static int cfi_amdstd_write_words(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); @@ -359,6 +360,17 @@ static void fixup_s29ns512p_sectors(struct mtd_info *mtd) pr_warning("%s: Bad S29NS512P CFI data; adjust to 512 sectors\n", mtd->name); } +static void fixup_msp14lv320(struct mtd_info *mtd) +{ + struct map_info *map = mtd->priv; + struct cfi_private *cfi = map->fldrv_priv; + cfi->cfiq->MaxBufWriteSize = 8; + cfi->cfiq->WordWriteTimeoutTyp = 9; + cfi->cfiq->BufWriteTimeoutTyp = 9; + cfi->cfiq->BlockEraseTimeoutTyp = 12; + mtd->_write = cfi_amdstd_write_buffers; +} + /* Used to fix CFI-Tables of chips without Extended Query Tables */ static struct cfi_fixup cfi_nopri_fixup_table[] = { { CFI_MFR_SST, 0x234a, fixup_sst39vf }, /* SST39VF1602 */ @@ -403,6 +415,7 @@ static struct cfi_fixup jedec_fixup_table[] = { { CFI_MFR_SST, SST49LF004B, fixup_use_fwh_lock }, { CFI_MFR_SST, SST49LF040B, fixup_use_fwh_lock }, { CFI_MFR_SST, SST49LF008A, fixup_use_fwh_lock }, + { CFI_MFR_AMD, MSP14LV320, fixup_msp14lv320 }, /* MSP14LV320 */ { 0, 0, NULL } }; diff --git a/drivers/mtd/chips/jedec_probe.c b/drivers/mtd/chips/jedec_probe.c index c443f527a53a..e8af190c99fc 100644 --- a/drivers/mtd/chips/jedec_probe.c +++ b/drivers/mtd/chips/jedec_probe.c @@ -68,6 +68,7 @@ #define MBM29LV800TA 0x22DA #define MBM29LV400TC 0x22B9 #define MBM29LV400BC 0x22BA +#define MSP14LV320 0x227E /* Hyundai */ #define HY29F002T 0x00B0 @@ -284,7 +285,7 @@ struct amd_flash_info { #define SIZE_2MiB 21 #define SIZE_4MiB 22 #define SIZE_8MiB 23 - +#define SIZE_512MiB 29 /* * Please keep this list ordered by manufacturer! @@ -1871,6 +1872,17 @@ static const struct amd_flash_info jedec_table[] = { ERASEINFO(0x02000, 2), ERASEINFO(0x04000, 1), } + }, { + .mfr_id = CFI_MFR_AMD, + .dev_id = MSP14LV320, + .name = "FDI NOR MV14LV320", + .devtypes = CFI_DEVICETYPE_X16, + .uaddr = MTD_UADDR_0x0AAA_0x0554, /* x16 */ + .dev_size = SIZE_512MiB, + .cmd_set = P_ID_AMD_STD, + .nr_regions = 1, + .regions = { + ERASEINFO(0x40000, 2048), } } }; |