sf: Make flash->flags use for generic usage
authorJagan Teki <jteki@openedev.com>
Tue, 29 Sep 2015 05:47:02 +0000 (11:17 +0530)
committerJagan Teki <jteki@openedev.com>
Sun, 25 Oct 2015 14:47:03 +0000 (20:17 +0530)
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>
drivers/mtd/spi/sf_internal.h
drivers/mtd/spi/sf_probe.c
include/spi_flash.h

index 9c95d5616eb6b3bb0c0f954001e6656b8941faf9..53998fca457be3ccecaf23f3dba9548484534442 100644 (file)
@@ -51,6 +51,10 @@ enum {
 
 #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_CMD_LEN              (1 + SPI_FLASH_3B_ADDR_LEN)
 #define SPI_FLASH_16MB_BOUN            0x1000000
index f17ec173bf16d116806a70781e3735281c626bad..2634e90666a5cc1781adf4245b0f4a486857cca5 100644 (file)
@@ -163,15 +163,15 @@ static int spi_flash_validate_params(struct spi_slave *spi, u8 *idcode,
        flash->name = params->name;
        flash->memory_map = spi->memory_map;
        flash->dual_flash = flash->spi->option;
-#ifdef CONFIG_DM_SPI_FLASH
-       flash->flags = params->flags;
-#endif
 
        /* Assign spi_flash ops */
 #ifndef CONFIG_DM_SPI_FLASH
        flash->write = spi_flash_cmd_write_ops;
 #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)
                        flash->write = sst_write_bp;
                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);
 
 #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)
                        return sst_write_bp(flash, offset, len, buf);
                else
index 3b2d555c77babb1f3b73dc96c464e9c40a509eda..8d85468705465ecc85a18f1825d16d06aef652ff 100644 (file)
@@ -38,10 +38,10 @@ struct spi_slave;
  *
  * @spi:               SPI slave
  * @dev:               SPI flash device
- * @flags:             Indication of spi flash flags
  * @name:              Name of SPI flash
  * @dual_flash:                Indicates dual flash memories - dual stacked, parallel
  * @shift:             Flash shift useful in dual parallel
+ * @flags:             Indication of spi flash flags
  * @size:              Total flash size
  * @page_size:         Write (page) size
  * @sector_size:       Sector size
@@ -67,11 +67,11 @@ struct spi_flash {
        struct spi_slave *spi;
 #ifdef CONFIG_DM_SPI_FLASH
        struct udevice *dev;
-       u16 flags;
 #endif
        const char *name;
        u8 dual_flash;
        u8 shift;
+       u16 flags;
 
        u32 size;
        u32 page_size;