diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2010-05-26 12:39:06 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2010-05-26 12:39:06 +0000 |
commit | a935d77355394712f37839fca6b3a17f68d88003 (patch) | |
tree | 7f8cfb9712fe5c655757993921a1619e8b7ce913 /nuttx/drivers | |
parent | 46c3539ddb30d90081b5561bba669a20eb1ea077 (diff) | |
download | px4-nuttx-a935d77355394712f37839fca6b3a17f68d88003.tar.gz px4-nuttx-a935d77355394712f37839fca6b3a17f68d88003.tar.bz2 px4-nuttx-a935d77355394712f37839fca6b3a17f68d88003.zip |
Add support for M25P1
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2698 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/drivers')
-rw-r--r-- | nuttx/drivers/mtd/m25px.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/nuttx/drivers/mtd/m25px.c b/nuttx/drivers/mtd/m25px.c index 509b8302a..dac67b937 100644 --- a/nuttx/drivers/mtd/m25px.c +++ b/nuttx/drivers/mtd/m25px.c @@ -59,9 +59,20 @@ #define M25P_MANUFACTURER 0x20 #define M25P_MEMORY_TYPE 0x20 +#define M25P_M25P1_CAPACITY 0x11 /* 1 M-bit */ #define M25P_M25P64_CAPACITY 0x17 /* 64 M-bit */ #define M25P_M25P128_CAPACITY 0x18 /* 128 M-bit */ +/* M25P1 capapcity is 131,072 bytes: + * (4 sectors) * (32,768 bytes per sector) + * (512 pages) * (256 bytes per page) + */ + +#define M25P_M25P1_SECTOR_SHIFT 15 /* Sector size 1 << 15 = 65,536 */ +#define M25P_M25P1_NSECTORS 4 +#define M25P_M25P1_PAGE_SHIFT 8 /* Page size 1 << 8 = 256 */ +#define M25P_M25P1_NPAGES 512 + /* M25P64 capapcity is 8,338,608 bytes: * (128 sectors) * (65,536 bytes per sector) * (32768 pages) * (256 bytes per page) @@ -244,7 +255,17 @@ static inline int m25p_readid(struct m25p_dev_s *priv) { /* Okay.. is it a FLASH capacity that we understand? */ - if (capacity == M25P_M25P64_CAPACITY) + if (capacity == M25P_M25P1_CAPACITY) + { + /* Save the FLASH geometry */ + + priv->sectorshift = M25P_M25P1_SECTOR_SHIFT; + priv->nsectors = M25P_M25P1_NSECTORS; + priv->pageshift = M25P_M25P1_PAGE_SHIFT; + priv->npages = M25P_M25P1_NPAGES; + return OK; + } + else if (capacity == M25P_M25P64_CAPACITY) { /* Save the FLASH geometry */ |