[MTD] CHIPS: Support for SST 49LF040B flash chip
Add chip driver and JEDEC probe support for the SST 49LF040B flash chip. Signed-off-by: Ryan Jackson <rjackson@lnxi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
This commit is contained in:
committed by
David Woodhouse
parent
c9073ce02a
commit
89072ef993
@@ -48,6 +48,7 @@
|
|||||||
#define MANUFACTURER_ATMEL 0x001F
|
#define MANUFACTURER_ATMEL 0x001F
|
||||||
#define MANUFACTURER_SST 0x00BF
|
#define MANUFACTURER_SST 0x00BF
|
||||||
#define SST49LF004B 0x0060
|
#define SST49LF004B 0x0060
|
||||||
|
#define SST49LF040B 0x0050
|
||||||
#define SST49LF008A 0x005a
|
#define SST49LF008A 0x005a
|
||||||
#define AT49BV6416 0x00d6
|
#define AT49BV6416 0x00d6
|
||||||
|
|
||||||
@@ -233,6 +234,7 @@ static struct cfi_fixup cfi_fixup_table[] = {
|
|||||||
};
|
};
|
||||||
static struct cfi_fixup jedec_fixup_table[] = {
|
static struct cfi_fixup jedec_fixup_table[] = {
|
||||||
{ MANUFACTURER_SST, SST49LF004B, fixup_use_fwh_lock, NULL, },
|
{ MANUFACTURER_SST, SST49LF004B, fixup_use_fwh_lock, NULL, },
|
||||||
|
{ MANUFACTURER_SST, SST49LF040B, fixup_use_fwh_lock, NULL, },
|
||||||
{ MANUFACTURER_SST, SST49LF008A, fixup_use_fwh_lock, NULL, },
|
{ MANUFACTURER_SST, SST49LF008A, fixup_use_fwh_lock, NULL, },
|
||||||
{ 0, 0, NULL, NULL }
|
{ 0, 0, NULL, NULL }
|
||||||
};
|
};
|
||||||
@@ -519,10 +521,12 @@ static int get_chip(struct map_info *map, struct flchip *chip, unsigned long adr
|
|||||||
if (mode == FL_WRITING) /* FIXME: Erase-suspend-program appears broken. */
|
if (mode == FL_WRITING) /* FIXME: Erase-suspend-program appears broken. */
|
||||||
goto sleep;
|
goto sleep;
|
||||||
|
|
||||||
if (!(mode == FL_READY || mode == FL_POINT
|
if (!( mode == FL_READY
|
||||||
|
|| mode == FL_POINT
|
||||||
|| !cfip
|
|| !cfip
|
||||||
|| (mode == FL_WRITING && (cfip->EraseSuspend & 0x2))
|
|| (mode == FL_WRITING && (cfip->EraseSuspend & 0x2))
|
||||||
|| (mode == FL_WRITING && (cfip->EraseSuspend & 0x1))))
|
|| (mode == FL_WRITING && (cfip->EraseSuspend & 0x1)
|
||||||
|
)))
|
||||||
goto sleep;
|
goto sleep;
|
||||||
|
|
||||||
/* We could check to see if we're trying to access the sector
|
/* We could check to see if we're trying to access the sector
|
||||||
|
@@ -154,6 +154,7 @@
|
|||||||
#define SST39SF010A 0x00B5
|
#define SST39SF010A 0x00B5
|
||||||
#define SST39SF020A 0x00B6
|
#define SST39SF020A 0x00B6
|
||||||
#define SST49LF004B 0x0060
|
#define SST49LF004B 0x0060
|
||||||
|
#define SST49LF040B 0x0050
|
||||||
#define SST49LF008A 0x005a
|
#define SST49LF008A 0x005a
|
||||||
#define SST49LF030A 0x001C
|
#define SST49LF030A 0x001C
|
||||||
#define SST49LF040A 0x0051
|
#define SST49LF040A 0x0051
|
||||||
@@ -1400,6 +1401,20 @@ static const struct amd_flash_info jedec_table[] = {
|
|||||||
ERASEINFO(0x01000,64),
|
ERASEINFO(0x01000,64),
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
|
.mfr_id = MANUFACTURER_SST,
|
||||||
|
.dev_id = SST49LF040B,
|
||||||
|
.name = "SST 49LF040B",
|
||||||
|
.uaddr = {
|
||||||
|
[0] = MTD_UADDR_0x5555_0x2AAA /* x8 */
|
||||||
|
},
|
||||||
|
.DevSize = SIZE_512KiB,
|
||||||
|
.CmdSet = P_ID_AMD_STD,
|
||||||
|
.NumEraseRegions= 1,
|
||||||
|
.regions = {
|
||||||
|
ERASEINFO(0x01000,128),
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
|
||||||
.mfr_id = MANUFACTURER_SST,
|
.mfr_id = MANUFACTURER_SST,
|
||||||
.dev_id = SST49LF004B,
|
.dev_id = SST49LF004B,
|
||||||
.name = "SST 49LF004B",
|
.name = "SST 49LF004B",
|
||||||
|
Reference in New Issue
Block a user