Skip to content

Commit

Permalink
drivers:mtd: Adds support for W25 2Mbit memories.
Browse files Browse the repository at this point in the history
Tested with W25Q20CL.
  • Loading branch information
daniel-p-carvalho authored and acassis committed Nov 22, 2023
1 parent ea0be3b commit ed877fd
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion drivers/mtd/w25.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,12 +107,14 @@
#define W25Q_JEDEC_MEMORY_TYPE_C 0x50 /* W25Q memory type */
#define W25Q_JEDEC_MEMORY_TYPE_D 0x70 /* W25QJV memory type (backward compatible) */

#define W25_JEDEC_CAPACITY_2MBIT 0x12 /* 256x1024 = 2Mbit memory capacity */
#define W25_JEDEC_CAPACITY_8MBIT 0x14 /* 256x4096 = 8Mbit memory capacity */
#define W25_JEDEC_CAPACITY_16MBIT 0x15 /* 512x4096 = 16Mbit memory capacity */
#define W25_JEDEC_CAPACITY_32MBIT 0x16 /* 1024x4096 = 32Mbit memory capacity */
#define W25_JEDEC_CAPACITY_64MBIT 0x17 /* 2048x4096 = 64Mbit memory capacity */
#define W25_JEDEC_CAPACITY_128MBIT 0x18 /* 4096x4096 = 128Mbit memory capacity */

#define NSECTORS_2MBIT 64 /* 64 sectors x 4096 bytes/sector = 256Kb */
#define NSECTORS_8MBIT 256 /* 256 sectors x 4096 bytes/sector = 1Mb */
#define NSECTORS_16MBIT 512 /* 512 sectors x 4096 bytes/sector = 2Mb */
#define NSECTORS_32MBIT 1024 /* 1024 sectors x 4096 bytes/sector = 4Mb */
Expand Down Expand Up @@ -402,12 +404,22 @@ static inline int w25_readid(struct w25_dev_s *priv)
* the FLASH capacity.
*/

/* 2M-bit / 256K-byte
*
* W25Q20CL
*/

if (capacity == W25_JEDEC_CAPACITY_2MBIT)
{
priv->nsectors = NSECTORS_2MBIT;
}

/* 8M-bit / 1M-byte
*
* W25Q80BV
*/

if (capacity == W25_JEDEC_CAPACITY_8MBIT)
else if (capacity == W25_JEDEC_CAPACITY_8MBIT)
{
priv->nsectors = NSECTORS_8MBIT;
}
Expand Down

0 comments on commit ed877fd

Please sign in to comment.