Add MTD SST25 driver for larger SST25 parts. From Ken Pettit
This commit is contained in:
parent
881c12cad8
commit
5a18f048ce
@ -6109,4 +6109,7 @@
|
|||||||
* include/mtd/mtd.h: Packed the geometry structure so that it can
|
* include/mtd/mtd.h: Packed the geometry structure so that it can
|
||||||
support larger erase block sizes without increasing the size of
|
support larger erase block sizes without increasing the size of
|
||||||
the geometry structure (2013-11-27).
|
the geometry structure (2013-11-27).
|
||||||
|
* drivers/mtd/sst25xx.c: Add another SST25 SerialFlash driver. This
|
||||||
|
one differs from sst25.c because it supports larger SST25 parts: In
|
||||||
|
the larger parts support page write instead of byte/word writes like
|
||||||
|
the smaller parts. From Ken Pettit (2013-11-28).
|
||||||
|
@ -351,6 +351,42 @@ config SST25_SLOWREAD
|
|||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
config MTD_SST25XX
|
||||||
|
bool "SPI-based SST25XX FLASH (64-MBit and larger)"
|
||||||
|
default n
|
||||||
|
select SPI
|
||||||
|
---help---
|
||||||
|
With the 64 MBit and larger parts, SST changed the write mechanism to
|
||||||
|
support page write instead of byte/word write like the smaller parts.
|
||||||
|
As a result, the SST25 driver is not compatible with the larger density
|
||||||
|
parts, and the SST25XX driver must be used instead.
|
||||||
|
|
||||||
|
if MTD_SST25XX
|
||||||
|
|
||||||
|
config SST25XX_SPIMODE
|
||||||
|
int "SST25 SPI Mode"
|
||||||
|
default 0
|
||||||
|
|
||||||
|
config SST25XX_SPIFREQUENCY
|
||||||
|
int "SST25 SPI Frequency"
|
||||||
|
default 20000000
|
||||||
|
|
||||||
|
config SST25XX_MANUFACTURER
|
||||||
|
hex "Manufacturers ID"
|
||||||
|
default 0xBF
|
||||||
|
---help---
|
||||||
|
Various manufacturers may have produced the parts. 0xBF is the manufacturer ID
|
||||||
|
for the parts manufactured by SST.
|
||||||
|
|
||||||
|
config SST25XX_MEMORY_TYPE
|
||||||
|
hex "Memory type ID"
|
||||||
|
default 0x25
|
||||||
|
---help---
|
||||||
|
The memory type for SST25VF065 series is 0x25, but this can be modified if needed
|
||||||
|
to support compatible devices from different manufacturers.
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
config MTD_SST39FV
|
config MTD_SST39FV
|
||||||
bool "SST39FV NOR FLASH"
|
bool "SST39FV NOR FLASH"
|
||||||
default n
|
default n
|
||||||
|
@ -64,6 +64,10 @@ ifeq ($(CONFIG_MTD_SST25),y)
|
|||||||
CSRCS += sst25.c
|
CSRCS += sst25.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_MTD_SST25XX),y)
|
||||||
|
CSRCS += sst25xx.c
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_MTD_SST39FV),y)
|
ifeq ($(CONFIG_MTD_SST39FV),y)
|
||||||
CSRCS += sst39vf.c
|
CSRCS += sst39vf.c
|
||||||
endif
|
endif
|
||||||
|
1000
drivers/mtd/sst25xx.c
Normal file
1000
drivers/mtd/sst25xx.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -297,7 +297,7 @@ FAR struct mtd_dev_s *rammtd_initialize(FAR uint8_t *start, size_t size);
|
|||||||
* Name: sst25_initialize
|
* Name: sst25_initialize
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* Initializes the drvier for SPI-based SST25 FLASH
|
* Initializes the driver for SPI-based SST25 FLASH
|
||||||
*
|
*
|
||||||
* Supports SST25VF512, SST25VF010, SST25VF520, SST25VF540, SST25VF080,
|
* Supports SST25VF512, SST25VF010, SST25VF520, SST25VF540, SST25VF080,
|
||||||
* and SST25VF016
|
* and SST25VF016
|
||||||
@ -306,6 +306,18 @@ FAR struct mtd_dev_s *rammtd_initialize(FAR uint8_t *start, size_t size);
|
|||||||
|
|
||||||
FAR struct mtd_dev_s *sst25_initialize(FAR struct spi_dev_s *dev);
|
FAR struct mtd_dev_s *sst25_initialize(FAR struct spi_dev_s *dev);
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: sst25xx_initialize
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Initializes the driver for SPI-based SST25XX FLASH
|
||||||
|
*
|
||||||
|
* Supports SST25VF064
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
FAR struct mtd_dev_s *sst25xx_initialize(FAR struct spi_dev_s *dev);
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: sst39vf_initialize
|
* Name: sst39vf_initialize
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user