diff options
Diffstat (limited to 'drivers/mtd/spi/sf_probe.c')
-rw-r--r-- | drivers/mtd/spi/sf_probe.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c index 689af3a..2ba1500 100644 --- a/drivers/mtd/spi/sf_probe.c +++ b/drivers/mtd/spi/sf_probe.c @@ -172,7 +172,10 @@ static int spi_flash_validate_params(struct spi_slave *spi, u8 *idcode, #endif /* Compute erase sector and command */ - if (params->flags & SECT_4K) { + if (params->flags & SECT_2K) { + flash->erase_cmd = CMD_ERASE_2K; + flash->erase_size = 2048 << flash->shift; + } else if (params->flags & SECT_4K) { flash->erase_cmd = CMD_ERASE_4K; flash->erase_size = 4096 << flash->shift; } else if (params->flags & SECT_32K) { @@ -396,6 +399,15 @@ int spi_flash_probe_slave(struct spi_slave *spi, struct spi_flash *flash) if (spi_enable_wp_pin(flash)) puts("Enable WP pin failed\n"); + +#if defined(CONFIG_SPI_FLASH_ATMEL) + /* + * Default configure the page size to 256bytes to + * be compatible with the mtd/spi framework + */ + spi_flash_cmd_write_config(flash, SPI_FLASH_PAGE_256); +#endif + /* Release spi bus */ spi_release_bus(spi); |