]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
sf: spansion|stmicro|winbond: Update the dual qspi size logic
authorJagannadha Sutradharudu Teki <jaganna@xilinx.com>
Tue, 21 May 2013 16:56:04 +0000 (22:26 +0530)
committerMichal Simek <michal.simek@xilinx.com>
Mon, 27 May 2013 11:21:19 +0000 (13:21 +0200)
dual parallel:
double the page_size and sector_size
dual_stacked:
double the flash_size

Signed-off-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
drivers/mtd/spi/spansion.c
drivers/mtd/spi/stmicro.c
drivers/mtd/spi/winbond.c

index 55e079293354ae1ca6399edfdeb07b79a294e03b..4281896a7f1c533be0829d6b3fd598595fffe2b5 100644 (file)
@@ -144,17 +144,15 @@ struct spi_flash *spi_flash_probe_spansion(struct spi_slave *spi, u8 *idcode)
        flash->page_size = 256;
        flash->sector_size = 256 * params->pages_per_sector;
 
-       /*
-        * page_size and nr_sectors are double for dual parallel qspi
-        * and double the nr_sectors for dual stacked qspi
-        */
        if (flash->spi->is_dual == 2) {
                flash->page_size *= 2;
-               flash->size = flash->sector_size * (2 * params->nr_sectors);
-       } else if (flash->spi->is_dual == 1)
-               flash->size = flash->sector_size * (2 * params->nr_sectors);
-       else
-               flash->size = flash->sector_size * params->nr_sectors;
+               flash->sector_size *= 2;
+       }
+
+       flash->size = flash->sector_size * params->nr_sectors;
+
+       if (flash->spi->is_dual == 1)
+               flash->size *= 2;
 
        return flash;
 }
index f423f954fb7ca38f0e0c34dacd5e542a2ea93710..3f25090b9b74d6b5eb788c0743bb2a6a9b52aa01 100644 (file)
@@ -209,17 +209,15 @@ struct spi_flash *spi_flash_probe_stmicro(struct spi_slave *spi, u8 * idcode)
        flash->page_size = 256;
        flash->sector_size = 256 * params->pages_per_sector;
 
-       /*
-        * page_size and nr_sectors are double for dual parallel qspi
-        * and double the nr_sectors for dual stacked qspi
-        */
        if (flash->spi->is_dual == 2) {
                flash->page_size *= 2;
-               flash->size = flash->sector_size * (2 * params->nr_sectors);
-       } else if (flash->spi->is_dual == 1)
-               flash->size = flash->sector_size * (2 * params->nr_sectors);
-       else
-               flash->size = flash->sector_size * params->nr_sectors;
+               flash->sector_size *= 2;
+       }
+
+       flash->size = flash->sector_size * params->nr_sectors;
+
+       if (flash->spi->is_dual == 1)
+               flash->size *= 2;
 
        return flash;
 }
index 91277e3a95b7d50db304b553629fe623c3ad27c7..efaabd8c8d5d6e9e9a718f61dfb376d122449d15 100644 (file)
@@ -111,17 +111,15 @@ struct spi_flash *spi_flash_probe_winbond(struct spi_slave *spi, u8 *idcode)
        flash->page_size = 256;
        flash->sector_size = 4096;
 
-       /*
-        * page_size and nr_blocks are double for dual parallel qspi
-        * and double the nr_blocks for dual stacked qspi
-        */
        if (flash->spi->is_dual == 2) {
                flash->page_size *= 2;
-               flash->size = 4096 * 16 * (2 * params->nr_blocks);
-       } else if (flash->spi->is_dual == 1)
-               flash->size = 4096 * 16 * (2 * params->nr_blocks);
-       else
-               flash->size = 4096 * 16 * params->nr_blocks;
+               flash->sector_size *= 2;
+       }
+
+       flash->size = 4096 * 16 * params->nr_blocks;
+
+       if (flash->spi->is_dual)
+               flash->size *= 2;
 
        return flash;
 }