@ -83,8 +83,8 @@ static const struct spi_flash_params spi_flash_params_table[] = {
{ " S25FL032P " , 0x010215 , 0x4d00 , 64 * 1024 , 64 , 0 , 0 } ,
{ " S25FL064P " , 0x010216 , 0x4d00 , 64 * 1024 , 128 , 0 , 0 } ,
{ " S25FL128S_64K " , 0x012018 , 0x4d01 , 64 * 1024 , 256 , 0 , 0 } ,
{ " S25FL256S_256K " , 0x010219 , 0x4d00 , 64 * 1024 , 512 , RD_EXTN , 0 } ,
{ " S25FL256S_64K " , 0x010219 , 0x4d01 , 64 * 1024 , 512 , RD_EXTN , 0 } ,
{ " S25FL256S_256K " , 0x010219 , 0x4d00 , 64 * 1024 , 512 , RD_FULL , WR_QPP } ,
{ " S25FL256S_64K " , 0x010219 , 0x4d01 , 64 * 1024 , 512 , RD_FULL , WR_QPP } ,
{ " S25FL512S_256K " , 0x010220 , 0x4d00 , 64 * 1024 , 1024 , 0 , 0 } ,
{ " S25FL512S_64K " , 0x010220 , 0x4d01 , 64 * 1024 , 1024 , 0 , 0 } ,
# endif
@ -162,6 +162,7 @@ static u8 spi_read_cmds_array[] = {
CMD_READ_ARRAY_SLOW ,
CMD_READ_DUAL_OUTPUT_FAST ,
CMD_READ_DUAL_IO_FAST ,
CMD_READ_QUAD_OUTPUT_FAST ,
} ;
static struct spi_flash * spi_flash_validate_params ( struct spi_slave * spi ,
@ -242,6 +243,13 @@ static struct spi_flash *spi_flash_validate_params(struct spi_slave *spi,
flash - > read_cmd = CMD_READ_ARRAY_FAST ;
}
/* Not require to look for fastest only two write cmds yet */
if ( params - > flags & WR_QPP & & flash - > spi - > op_mode_tx & SPI_OPM_TX_QPP )
flash - > write_cmd = CMD_QUAD_PAGE_PROGRAM ;
else
/* Go for default supported write cmd */
flash - > write_cmd = CMD_PAGE_PROGRAM ;
/* Poll cmd seclection */
flash - > poll_cmd = CMD_READ_STATUS ;
# ifdef CONFIG_SPI_FLASH_STMICRO