sf: Make flash->flags use for generic usage

Use the flash->flags for generic usage, not only for dm-spi-flash,
this will be used for future flag additions.

[Correct the spi flash flags detect logic]
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Jagan Teki <jteki@openedev.com>
This commit is contained in:
Jagan Teki 2015-09-29 11:17:02 +05:30
parent 70ccf59406
commit 1fabefddfc
3 changed files with 11 additions and 7 deletions

View file

@ -51,6 +51,10 @@ enum {
#define SST_WR (SST_BP | SST_WP) #define SST_WR (SST_BP | SST_WP)
enum spi_nor_option_flags {
SNOR_F_SST_WR = (1 << 0),
};
#define SPI_FLASH_3B_ADDR_LEN 3 #define SPI_FLASH_3B_ADDR_LEN 3
#define SPI_FLASH_CMD_LEN (1 + SPI_FLASH_3B_ADDR_LEN) #define SPI_FLASH_CMD_LEN (1 + SPI_FLASH_3B_ADDR_LEN)
#define SPI_FLASH_16MB_BOUN 0x1000000 #define SPI_FLASH_16MB_BOUN 0x1000000

View file

@ -163,15 +163,15 @@ static int spi_flash_validate_params(struct spi_slave *spi, u8 *idcode,
flash->name = params->name; flash->name = params->name;
flash->memory_map = spi->memory_map; flash->memory_map = spi->memory_map;
flash->dual_flash = flash->spi->option; flash->dual_flash = flash->spi->option;
#ifdef CONFIG_DM_SPI_FLASH
flash->flags = params->flags;
#endif
/* Assign spi_flash ops */ /* Assign spi_flash ops */
#ifndef CONFIG_DM_SPI_FLASH #ifndef CONFIG_DM_SPI_FLASH
flash->write = spi_flash_cmd_write_ops; flash->write = spi_flash_cmd_write_ops;
#if defined(CONFIG_SPI_FLASH_SST) #if defined(CONFIG_SPI_FLASH_SST)
if (params->flags & SST_WR) { if (params->flags & SST_WR)
flash->flags |= SNOR_F_SST_WR;
if (params->flags & SNOR_F_SST_WR) {
if (flash->spi->op_mode_tx & SPI_OPM_TX_BP) if (flash->spi->op_mode_tx & SPI_OPM_TX_BP)
flash->write = sst_write_bp; flash->write = sst_write_bp;
else else
@ -466,7 +466,7 @@ int spi_flash_std_write(struct udevice *dev, u32 offset, size_t len,
struct spi_flash *flash = dev_get_uclass_priv(dev); struct spi_flash *flash = dev_get_uclass_priv(dev);
#if defined(CONFIG_SPI_FLASH_SST) #if defined(CONFIG_SPI_FLASH_SST)
if (flash->flags & SST_WR) { if (flash->flags & SNOR_F_SST_WR) {
if (flash->spi->op_mode_tx & SPI_OPM_TX_BP) if (flash->spi->op_mode_tx & SPI_OPM_TX_BP)
return sst_write_bp(flash, offset, len, buf); return sst_write_bp(flash, offset, len, buf);
else else

View file

@ -38,10 +38,10 @@ struct spi_slave;
* *
* @spi: SPI slave * @spi: SPI slave
* @dev: SPI flash device * @dev: SPI flash device
* @flags: Indication of spi flash flags
* @name: Name of SPI flash * @name: Name of SPI flash
* @dual_flash: Indicates dual flash memories - dual stacked, parallel * @dual_flash: Indicates dual flash memories - dual stacked, parallel
* @shift: Flash shift useful in dual parallel * @shift: Flash shift useful in dual parallel
* @flags: Indication of spi flash flags
* @size: Total flash size * @size: Total flash size
* @page_size: Write (page) size * @page_size: Write (page) size
* @sector_size: Sector size * @sector_size: Sector size
@ -67,11 +67,11 @@ struct spi_flash {
struct spi_slave *spi; struct spi_slave *spi;
#ifdef CONFIG_DM_SPI_FLASH #ifdef CONFIG_DM_SPI_FLASH
struct udevice *dev; struct udevice *dev;
u16 flags;
#endif #endif
const char *name; const char *name;
u8 dual_flash; u8 dual_flash;
u8 shift; u8 shift;
u16 flags;
u32 size; u32 size;
u32 page_size; u32 page_size;