Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 195947
b: refs/heads/master
c: c361157
h: refs/heads/master
i:
  195945: c8da660
  195943: 1110403
v: v3
  • Loading branch information
Maxim Levitsky authored and David Woodhouse committed May 14, 2010
1 parent b010f97 commit c20aba7
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 19 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a47bfd2eb66837653dc3b42541dfe4283dd41251
refs/heads/master: c3611570ddf601609f8803574ea83889ff969aa0
2 changes: 1 addition & 1 deletion trunk/drivers/mtd/nand/r852.c
Original file line number Diff line number Diff line change
Expand Up @@ -666,7 +666,7 @@ int r852_register_nand_device(struct r852_device *dev)

r852_engine_enable(dev);

if (sm_register_device(dev->mtd))
if (sm_register_device(dev->mtd, dev->sm))
goto error2;

if (device_create_file(&dev->mtd->dev, &dev_attr_media_type))
Expand Down
37 changes: 21 additions & 16 deletions trunk/drivers/mtd/nand/sm_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,6 @@ static int sm_block_markbad(struct mtd_info *mtd, loff_t ofs)


static struct nand_flash_dev nand_smartmedia_flash_ids[] = {

/* SmartMedia */
{"SmartMedia 1MiB 5V", 0x6e, 256, 1, 0x1000, 0},
{"SmartMedia 1MiB 3,3V", 0xe8, 256, 1, 0x1000, 0},
{"SmartMedia 1MiB 3,3V", 0xec, 256, 1, 0x1000, 0},
Expand All @@ -82,36 +80,43 @@ static struct nand_flash_dev nand_smartmedia_flash_ids[] = {
{"SmartMedia 4MiB 3,3V ROM", 0xd5, 512, 4, 0x2000, NAND_ROM},
{"SmartMedia 8MiB 3,3V", 0xe6, 512, 8, 0x2000, 0},
{"SmartMedia 8MiB 3,3V ROM", 0xd6, 512, 8, 0x2000, NAND_ROM},

#define XD_TYPEM (NAND_NO_AUTOINCR | NAND_BROKEN_XD)
/* xD / SmartMedia */
{"SmartMedia/xD 16MiB 3,3V", 0x73, 512, 16, 0x4000, 0},
{"SmartMedia 16MiB 3,3V", 0x73, 512, 16, 0x4000, 0},
{"SmartMedia 16MiB 3,3V ROM", 0x57, 512, 16, 0x4000, NAND_ROM},
{"SmartMedia/xD 32MiB 3,3V", 0x75, 512, 32, 0x4000, 0},
{"SmartMedia 32MiB 3,3V", 0x75, 512, 32, 0x4000, 0},
{"SmartMedia 32MiB 3,3V ROM", 0x58, 512, 32, 0x4000, NAND_ROM},
{"SmartMedia/xD 64MiB 3,3V", 0x76, 512, 64, 0x4000, 0},
{"SmartMedia 64MiB 3,3V", 0x76, 512, 64, 0x4000, 0},
{"SmartMedia 64MiB 3,3V ROM", 0xd9, 512, 64, 0x4000, NAND_ROM},
{"SmartMedia/xD 128MiB 3,3V", 0x79, 512, 128, 0x4000, 0},
{"SmartMedia 128MiB 3,3V", 0x79, 512, 128, 0x4000, 0},
{"SmartMedia 128MiB 3,3V ROM", 0xda, 512, 128, 0x4000, NAND_ROM},
{"SmartMedia/xD 256MiB 3,3V", 0x71, 512, 256, 0x4000, XD_TYPEM},
{"SmartMedia 256MiB 3,3V", 0x71, 512, 256, 0x4000 },
{"SmartMedia 256MiB 3,3V ROM", 0x5b, 512, 256, 0x4000, NAND_ROM},
{NULL,}
};

/* xD only */
{"xD 512MiB 3,3V", 0xDC, 512, 512, 0x4000, XD_TYPEM},
{"xD 1GiB 3,3V", 0xD3, 512, 1024, 0x4000, XD_TYPEM},
{"xD 2GiB 3,3V", 0xD5, 512, 2048, 0x4000, XD_TYPEM},
#define XD_TYPEM (NAND_NO_AUTOINCR | NAND_BROKEN_XD)
static struct nand_flash_dev nand_xd_flash_ids[] = {

{"xD 16MiB 3,3V", 0x73, 512, 16, 0x4000, 0},
{"xD 32MiB 3,3V", 0x75, 512, 32, 0x4000, 0},
{"xD 64MiB 3,3V", 0x76, 512, 64, 0x4000, 0},
{"xD 128MiB 3,3V", 0x79, 512, 128, 0x4000, 0},
{"xD 256MiB 3,3V", 0x71, 512, 256, 0x4000, XD_TYPEM},
{"xD 512MiB 3,3V", 0xdc, 512, 512, 0x4000, XD_TYPEM},
{"xD 1GiB 3,3V", 0xd3, 512, 1024, 0x4000, XD_TYPEM},
{"xD 2GiB 3,3V", 0xd5, 512, 2048, 0x4000, XD_TYPEM},
{NULL,}
};

int sm_register_device(struct mtd_info *mtd)
int sm_register_device(struct mtd_info *mtd, int smartmedia)
{
struct nand_chip *chip = (struct nand_chip *)mtd->priv;
int ret;

chip->options |= NAND_SKIP_BBTSCAN;

/* Scan for card properties */
ret = nand_scan_ident(mtd, 1, nand_smartmedia_flash_ids);
ret = nand_scan_ident(mtd, 1, smartmedia ?
nand_smartmedia_flash_ids : nand_xd_flash_ids);

if (ret)
return ret;
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/mtd/nand/sm_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ struct sm_oob {
#define SM_SMALL_OOB_SIZE 8


extern int sm_register_device(struct mtd_info *mtd);
extern int sm_register_device(struct mtd_info *mtd, int smartmedia);


static inline int sm_sector_valid(struct sm_oob *oob)
Expand Down

0 comments on commit c20aba7

Please sign in to comment.