]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
Xilinx: ARM: sf: spansion: Update the flash memory size at runtime
authorJagannadha Sutradharudu Teki <jaganna@xilinx.com>
Sat, 25 Aug 2012 15:45:48 +0000 (21:15 +0530)
committerJohn Linn <john.linn@xilinx.com>
Wed, 29 Aug 2012 23:11:06 +0000 (16:11 -0700)
This patch adds support to update the flash memory size based on
the runtime detection of dual qspi flash.
So removed the conditional compilation for dual qspi flash.

Signed-off-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
drivers/mtd/spi/spansion.c [changed mode: 0755->0644]

old mode 100755 (executable)
new mode 100644 (file)
index 250aa4e..3edc0d5
@@ -165,13 +165,6 @@ struct spi_flash *spi_flash_probe_spansion(struct spi_slave *spi, u8 *idcode)
                return NULL;
        }
 
-       /* address width is 4 for dual and 3 for single qspi */
-#ifdef CONFIG_XILINX_PSS_QSPI_USE_DUAL_FLASH
-       flash->addr_width = 4;
-#else
-       flash->addr_width = 3;
-#endif
-
        flash->spi = spi;
        flash->name = params->name;
 
@@ -181,11 +174,13 @@ struct spi_flash *spi_flash_probe_spansion(struct spi_slave *spi, u8 *idcode)
        flash->page_size = params->page_size;
        flash->sector_size = params->page_size * params->pages_per_sector;
 
-       if (flash->addr_width == 3)
-               flash->size = flash->sector_size * params->nr_sectors;
-       else if (flash->addr_width == 4) {
-               printf("Dual Flash\n");
+       /* address width is 4 for dual and 3 for single qspi */
+       if (flash->spi->is_dual == 1) {
+               flash->addr_width = 4;
                flash->size = flash->sector_size * (2 * params->nr_sectors);
+       } else if (flash->spi->is_dual == 0) {
+               flash->addr_width = 3;
+               flash->size = flash->sector_size * params->nr_sectors;
        }
 
        return flash;