summaryrefslogtreecommitdiff
path: root/drivers/mtd
diff options
context:
space:
mode:
authorAshutosh Patel <ashutoshp@nvidia.com>2012-12-14 11:06:53 +0530
committerDan Willemsen <dwillemsen@nvidia.com>2013-09-14 01:32:13 -0700
commit50e76ef3fb8ce6c0963bc6b19347e0e1d9313ad1 (patch)
tree9fceb867d7c22cf9238d6287fe7ec38156b70aa3 /drivers/mtd
parent12985576688758d593bf1ced74b32ee31f803d55 (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.c13
-rw-r--r--drivers/mtd/chips/jedec_probe.c14
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), }
}
};