Some flash devices have multiple dies in it & has die cross over
issue. When SPI_NOR_MULTI_DIE flag is set in flash id table use
it to enable split reads to avoid above issue. Define SPI_NOR_MULTI_DIE
new flag to flash id flags. Remove SPI_FLASH_SPLIT_READ config and
related code from the zynq and zynqmp qspi drivers as it is redundant.
Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
select DM_USB if USB
select FIRMWARE
select OF_CONTROL
- select SPI_FLASH_SPLIT_READ if DM_SPI_FLASH
select SPL_BOARD_INIT if SPL
select SPL_CLK if SPL
select SPL_DM if SPL
#define USE_CLSR BIT(14) /* use CLSR command */
#define SPI_NOR_HAS_SST26LOCK BIT(15) /* Flash supports lock/unlock via BPR */
#define SPI_NOR_OCTAL_READ BIT(16) /* Flash supports Octal Read */
+#define SPI_NOR_MULTI_DIE BIT(17) /* Flash has multi dies & need split reads*/
};
extern const struct flash_info spi_nor_ids[];
if (info->flags & SPI_NOR_NO_ERASE)
mtd->flags |= MTD_NO_ERASE;
+ if (info->flags & SPI_NOR_MULTI_DIE)
+ nor->spi->multi_die = true;
+
nor->page_size = params.page_size;
mtd->writebufsize = nor->page_size;
slave->option = priv->is_dual;
slave->dio = priv->is_dio;
slave->mode = plat->tx_rx_mode;
-#ifdef CONFIG_SPI_FLASH_SPLIT_READ
- slave->multi_die = 1;
-#endif
+
return 0;
}
struct zynqmp_qspi_priv *priv = dev_get_priv(bus->parent);
slave->option = priv->is_dual;
-#ifdef CONFIG_SPI_FLASH_SPLIT_READ
- slave->multi_die = 1;
-#endif
slave->bytemode = SPI_4BYTE_MODE;
return 0;