summaryrefslogtreecommitdiff
path: root/nuttx/drivers
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2010-05-26 12:39:06 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2010-05-26 12:39:06 +0000
commita935d77355394712f37839fca6b3a17f68d88003 (patch)
tree7f8cfb9712fe5c655757993921a1619e8b7ce913 /nuttx/drivers
parent46c3539ddb30d90081b5561bba669a20eb1ea077 (diff)
downloadpx4-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.c23
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 */