sf: always read 5 bytes for the idcode
Some SPI flash drivers like to have extended id information available (like the spansion flash), so rather than making it re-issue the ID cmd to get at the last 2 bytes, have the common code read 5 bytes rather than just 3. This also matches the Linux behavior where it always reads 5 id bytes from all flashes. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Acked-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com> CC: Mingkai Hu <Mingkai.hu@freescale.com>
This commit is contained in:
parent
9726ba4aba
commit
0dcdbb172c
|
@ -310,15 +310,9 @@ struct spi_flash *spi_flash_probe_spansion(struct spi_slave *spi, u8 *idcode)
|
|||
struct spansion_spi_flash *spsn;
|
||||
unsigned int i;
|
||||
unsigned short jedec, ext_jedec;
|
||||
int ret;
|
||||
u8 id[5] = {0};
|
||||
|
||||
ret = spi_flash_cmd(spi, CMD_READ_ID, id, sizeof(id));
|
||||
if (ret)
|
||||
return NULL;
|
||||
|
||||
jedec = id[1] << 8 | id[2];
|
||||
ext_jedec = id[3] << 8 | id[4];
|
||||
jedec = idcode[1] << 8 | idcode[2];
|
||||
ext_jedec = idcode[3] << 8 | idcode[4];
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(spansion_spi_flash_table); i++) {
|
||||
params = &spansion_spi_flash_table[i];
|
||||
|
|
|
@ -101,7 +101,7 @@ struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs,
|
|||
struct spi_slave *spi;
|
||||
struct spi_flash *flash;
|
||||
int ret;
|
||||
u8 idcode[3];
|
||||
u8 idcode[5];
|
||||
|
||||
spi = spi_setup_slave(bus, cs, max_hz, spi_mode);
|
||||
if (!spi) {
|
||||
|
@ -120,8 +120,8 @@ struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs,
|
|||
if (ret)
|
||||
goto err_read_id;
|
||||
|
||||
debug("SF: Got idcode %02x %02x %02x\n", idcode[0],
|
||||
idcode[1], idcode[2]);
|
||||
debug("SF: Got idcode %02x %02x %02x %02x %02x\n", idcode[0],
|
||||
idcode[1], idcode[2], idcode[3], idcode[4]);
|
||||
|
||||
switch (idcode[0]) {
|
||||
#ifdef CONFIG_SPI_FLASH_SPANSION
|
||||
|
|
Loading…
Reference in New Issue