]> git.sur5r.net Git - u-boot/blobdiff - drivers/mtd/spi/spi_flash.c
sf: atmel: implement power-of-two write/erase funcs
[u-boot] / drivers / mtd / spi / spi_flash.c
index d581cb3e89b0172458120ca54b237dca8c95f481..274895ad8ea21fad8d2c467be906d0c9c04903f7 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (C) 2008 Atmel Corporation
  */
-#define DEBUG
+
 #include <common.h>
 #include <malloc.h>
 #include <spi.h>
@@ -101,7 +101,7 @@ struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs,
        struct spi_slave *spi;
        struct spi_flash *flash;
        int ret;
-       u8 idcode[3];
+       u8 idcode[5];
 
        spi = spi_setup_slave(bus, cs, max_hz, spi_mode);
        if (!spi) {
@@ -120,8 +120,8 @@ struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs,
        if (ret)
                goto err_read_id;
 
-       debug("SF: Got idcode %02x %02x %02x\n", idcode[0],
-                       idcode[1], idcode[2]);
+       debug("SF: Got idcode %02x %02x %02x %02x %02x\n", idcode[0],
+                       idcode[1], idcode[2], idcode[3], idcode[4]);
 
        switch (idcode[0]) {
 #ifdef CONFIG_SPI_FLASH_SPANSION
@@ -133,6 +133,16 @@ struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs,
        case 0x1F:
                flash = spi_flash_probe_atmel(spi, idcode);
                break;
+#endif
+#ifdef CONFIG_SPI_FLASH_STMICRO
+       case 0x20:
+               flash = spi_flash_probe_stmicro(spi, idcode);
+               break;
+#endif
+#ifdef CONFIG_SPI_FLASH_SST
+       case 0xBF:
+               flash = spi_flash_probe_sst(spi, idcode);
+               break;
 #endif
        default:
                debug("SF: Unsupported manufacturer %02X\n", idcode[0]);