|
@@ -10,6 +10,7 @@
|
|
|
*/
|
|
|
|
|
|
#include <common.h>
|
|
|
+#include <flash.h>
|
|
|
#include <log.h>
|
|
|
#include <watchdog.h>
|
|
|
#include <dm.h>
|
|
@@ -26,6 +27,7 @@
|
|
|
|
|
|
#include <linux/mtd/mtd.h>
|
|
|
#include <linux/mtd/spi-nor.h>
|
|
|
+#include <mtd/cfi_flash.h>
|
|
|
#include <spi-mem.h>
|
|
|
#include <spi.h>
|
|
|
|
|
@@ -3664,6 +3666,11 @@ int spi_nor_scan(struct spi_nor *nor)
|
|
|
struct mtd_info *mtd = &nor->mtd;
|
|
|
struct spi_slave *spi = nor->spi;
|
|
|
int ret;
|
|
|
+ int cfi_mtd_nb = 0;
|
|
|
+
|
|
|
+#ifdef CONFIG_SYS_MAX_FLASH_BANKS
|
|
|
+ cfi_mtd_nb = CONFIG_SYS_MAX_FLASH_BANKS;
|
|
|
+#endif
|
|
|
|
|
|
/* Reset SPI protocol for all commands. */
|
|
|
nor->reg_proto = SNOR_PROTO_1_1_1;
|
|
@@ -3715,8 +3722,12 @@ int spi_nor_scan(struct spi_nor *nor)
|
|
|
if (ret)
|
|
|
return ret;
|
|
|
|
|
|
- if (!mtd->name)
|
|
|
- mtd->name = info->name;
|
|
|
+ if (!mtd->name) {
|
|
|
+ sprintf(nor->mtd_name, "%s%d",
|
|
|
+ MTD_DEV_TYPE(MTD_DEV_TYPE_NOR),
|
|
|
+ cfi_mtd_nb + dev_seq(nor->dev));
|
|
|
+ mtd->name = nor->mtd_name;
|
|
|
+ }
|
|
|
mtd->dev = nor->dev;
|
|
|
mtd->priv = nor;
|
|
|
mtd->type = MTD_NORFLASH;
|
|
@@ -3821,7 +3832,7 @@ int spi_nor_scan(struct spi_nor *nor)
|
|
|
|
|
|
nor->rdsr_dummy = params.rdsr_dummy;
|
|
|
nor->rdsr_addr_nbytes = params.rdsr_addr_nbytes;
|
|
|
- nor->name = mtd->name;
|
|
|
+ nor->name = info->name;
|
|
|
nor->size = mtd->size;
|
|
|
nor->erase_size = mtd->erasesize;
|
|
|
nor->sector_size = mtd->erasesize;
|