]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
Xilinx: ARM: sf: stmicro: Add support to program using dual qspi
authorJagannadha Sutradharudu Teki <jaganna@xilinx.com>
Mon, 13 Aug 2012 06:40:58 +0000 (12:10 +0530)
committerJagannadha Sutradharudu Teki <jaganna@xilinx.com>
Fri, 17 Aug 2012 11:30:48 +0000 (17:00 +0530)
This patch enables programming of stmicro flash devices
using dual qspi. stmicro flash driver is updated to detect
the size of the flash based on the board header macro.

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

index 3b8bed23299c8624da5b80a97805c6a8c5d33f9c..2b86dd5f8fd46808aaa82090d86a443067f39dcf 100644 (file)
@@ -181,6 +181,13 @@ struct spi_flash *spi_flash_probe_stmicro(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;
 
@@ -189,7 +196,13 @@ struct spi_flash *spi_flash_probe_stmicro(struct spi_slave *spi, u8 * idcode)
        flash->read = spi_flash_cmd_read_fast;
        flash->page_size = params->page_size;
        flash->sector_size = params->page_size * params->pages_per_sector;
-       flash->size = flash->sector_size * params->nr_sectors;
+
+       if (flash->addr_width == 3)
+               flash->size = flash->sector_size * params->nr_sectors;
+       else if (flash->addr_width == 4) {
+               printf("Dual Flash\n");
+               flash->size = flash->sector_size * (2 * params->nr_sectors);
+       }
 
        return flash;
 }