Add support for ST Micro EEPROM device geometries. From Sebastien Lorquet
This commit is contained in:
parent
6ea9af3736
commit
c0c108d5e2
@ -46,6 +46,12 @@
|
||||
* 20 MHz for 25AA512, 25LC512, 25xx1024
|
||||
* 20 MHz for Atmel devices (>4.5V)
|
||||
* 10 MHz for Atmel devices (>2.5V)
|
||||
* 20 MHz for <1Mbit STM devices (>4.5V)
|
||||
* 16 MHz for 1Mbit STM devices (>4.5V)
|
||||
* 10 MHz for all STM devices (>2.5V)
|
||||
* 5 MHz for 1Mbit STM devices (>1.8V)
|
||||
* 2 MHz for 1Mbit STM devices (>1.7V)
|
||||
* 5 MHz for 2Mbit STM devices
|
||||
* All devices have the same instruction set.
|
||||
*
|
||||
* The following devices should be supported:
|
||||
@ -89,6 +95,19 @@
|
||||
* AT25256B 32768 64 2
|
||||
* AT25512 65536 128 2
|
||||
* AT25M01 131072 256 3
|
||||
* ST Microelectronics
|
||||
* M95010 128 16 1
|
||||
* M95020 256 16 1
|
||||
* M95040 512 16 1+bit
|
||||
* M95080 1024 32 2
|
||||
* M95160 2048 32 2
|
||||
* M95320 4096 32 2
|
||||
* M95640 8192 32 2
|
||||
* M95128 16384 64 2
|
||||
* M95256 32768 64 2
|
||||
* M95512 65536 128 2
|
||||
* M95M01 131072 256 3
|
||||
* M95M02 262144 256 3
|
||||
*/
|
||||
|
||||
/****************************************************************************
|
||||
@ -125,11 +144,15 @@
|
||||
#define EE25XX_CMD_WREN 0x06
|
||||
|
||||
/* Following commands will be available some day via IOCTLs
|
||||
* PE 0x42 Page erase (25xx512/1024)
|
||||
* SE 0xD8 Sector erase (25xx512/1024)
|
||||
* CE 0xC7 Chip erase (25xx512/1024)
|
||||
* RDID 0xAB Wake up and read electronic signature (25xx512/1024)
|
||||
* DPD 0xB9 Sleep (25xx512/1024)
|
||||
* PE 0x42 Page erase (25xx512/1024)
|
||||
* SE 0xD8 Sector erase (25xx512/1024)
|
||||
* CE 0xC7 Chip erase (25xx512/1024)
|
||||
* RDID 0xAB Wake up and read electronic signature (25xx512/1024)
|
||||
* DPD 0xB9 Sleep (25xx512/1024)
|
||||
*
|
||||
* Identification page access for ST devices
|
||||
* RDID/RDLS 0x83 Read identification page / Read ID page lock status
|
||||
* WRID/LID 0x82 Write identification page / Lock ID page
|
||||
*/
|
||||
|
||||
/* SR bits definitions */
|
||||
@ -160,7 +183,7 @@ struct ee25xx_geom_s
|
||||
|
||||
struct ee25xx_dev_s
|
||||
{
|
||||
struct spi_dev_s *spi; /* spi device where the EEPROM is attached */
|
||||
struct spi_dev_s *spi; /* SPI device where the EEPROM is attached */
|
||||
uint32_t size; /* in bytes, expanded from geometry */
|
||||
uint16_t pgsize; /* write block size, in bytes, expanded from geometry */
|
||||
uint16_t addrlen; /* number of BITS in data addresses */
|
||||
@ -196,25 +219,29 @@ static const struct ee25xx_geom_s g_ee25xx_devices[] =
|
||||
{
|
||||
/* Microchip devices */
|
||||
|
||||
{ 0, 1, 1, 0}, /*25xx010A 128 16 1*/
|
||||
{ 1, 1, 1, 0}, /*25xx020A 256 16 1*/
|
||||
{ 2, 1, 1, 1}, /*25xx040 512 16 1+bit*/
|
||||
{ 3, 1, 1, 0}, /*25xx080 1024 16 1*/
|
||||
{ 3, 2, 2, 0}, /*25xx080B 1024 32 2*/
|
||||
{ 4, 1, 2, 0}, /*25xx160 2048 16 2*/
|
||||
{ 4, 2, 2, 0}, /*25xx160B/D 2048 32 2*/
|
||||
{ 5, 2, 2, 0}, /*25xx320 4096 32 2*/
|
||||
{ 6, 2, 2, 0}, /*25xx640 8192 32 2*/
|
||||
{ 7, 3, 2, 0}, /*25xx128 16384 64 2*/
|
||||
{ 8, 3, 2, 0}, /*25xx256 32768 64 2*/
|
||||
{ 9, 4, 2, 0}, /*25xx512 65536 128 2*/
|
||||
{10, 5, 3, 0}, /*25xx1024 131072 256 3*/
|
||||
{ 0, 1, 1, 0}, /* 25xx010A 128 16 1*/
|
||||
{ 1, 1, 1, 0}, /* 25xx020A 256 16 1*/
|
||||
{ 2, 1, 1, 1}, /* 25xx040 512 16 1+bit*/
|
||||
{ 3, 1, 1, 0}, /* 25xx080 1024 16 1*/
|
||||
{ 3, 2, 2, 0}, /* 25xx080B 1024 32 2*/
|
||||
{ 4, 1, 2, 0}, /* 25xx160 2048 16 2*/
|
||||
{ 4, 2, 2, 0}, /* 25xx160B/D 2048 32 2*/
|
||||
{ 5, 2, 2, 0}, /* 25xx320 4096 32 2*/
|
||||
{ 6, 2, 2, 0}, /* 25xx640 8192 32 2*/
|
||||
{ 7, 3, 2, 0}, /* 25xx128 16384 64 2*/
|
||||
{ 8, 3, 2, 0}, /* 25xx256 32768 64 2*/
|
||||
{ 9, 4, 2, 0}, /* 25xx512 65536 128 2*/
|
||||
{10, 5, 3, 0}, /* 25xx1024 131072 256 3*/
|
||||
|
||||
/* Atmel devices */
|
||||
|
||||
{ 0, 0, 1, 0}, /*AT25010B 128 8 1*/
|
||||
{ 1, 0, 1, 0}, /*AT25020B 256 8 1*/
|
||||
{ 2, 0, 1, 1}, /*AT25040B 512 8 1+bit*/
|
||||
{ 0, 0, 1, 0}, /* AT25010B 128 8 1*/
|
||||
{ 1, 0, 1, 0}, /* AT25020B 256 8 1*/
|
||||
{ 2, 0, 1, 1}, /* AT25040B 512 8 1+bit*/
|
||||
|
||||
/* STM devices */
|
||||
|
||||
{11, 5, 3, 0}, /* M95M02 262144 256 3*/
|
||||
};
|
||||
|
||||
/* Driver operations */
|
||||
|
@ -66,7 +66,11 @@ enum eeprom_25xx_e
|
||||
EEPROM_AT25020B,
|
||||
EEPROM_AT25040B,
|
||||
|
||||
/* Aliases (devices similar to previously defined ones)*/
|
||||
/* STM geometries */
|
||||
|
||||
EEPROM_M95M02,
|
||||
|
||||
/* Aliases (devices similar to previously defined ones) */
|
||||
|
||||
EEPROM_AT25080B = EEPROM_25xx080B,
|
||||
EEPROM_AT25160B = EEPROM_25xx160B,
|
||||
@ -76,6 +80,17 @@ enum eeprom_25xx_e
|
||||
EEPROM_AT225256B = EEPROM_25xx256,
|
||||
EEPROM_AT25512 = EEPROM_25xx512,
|
||||
EEPROM_AT25M02 = EEPROM_25xx1024,
|
||||
EEPROM_M95010 = EEPROM_25xx010,
|
||||
EEPROM_M95020 = EEPROM_25xx020,
|
||||
EEPROM_M95040 = EEPROM_25xx040,
|
||||
EEPROM_M95080 = EEPROM_25xx080B,
|
||||
EEPROM_M95160 = EEPROM_25xx160B,
|
||||
EEPROM_M95320 = EEPROM_25xx320,
|
||||
EEPROM_M95640 = EEPROM_25xx640,
|
||||
EEPROM_M95128 = EEPROM_25xx128,
|
||||
EEPROM_M95256 = EEPROM_25xx256,
|
||||
EEPROM_M95512 = EEPROM_25xx512,
|
||||
EEPROM_M95M01 = EEPROM_25xx1024,
|
||||
};
|
||||
|
||||
/****************************************************************************
|
||||
|
Loading…
Reference in New Issue
Block a user