]> git.sur5r.net Git - u-boot/blobdiff - drivers/mtd/spi/eon.c
sf: ramtron: Add support for separate flash driver
[u-boot] / drivers / mtd / spi / eon.c
index eccdf833df05a742b20a606ec5d4232784cd3e4d..25cfc1252c406e1a73c5e82a1885eefc038c2d1e 100644 (file)
 
 #include "spi_flash_internal.h"
 
-/* EN25Q128-specific commands */
-#define CMD_EN25Q128_SE                0x20    /* Sector Erase */
-#define CMD_EN25Q128_BE                0xd8    /* Block Erase */
-
 struct eon_spi_flash_params {
        u8 idcode1;
        u16 nr_sectors;
@@ -31,18 +27,8 @@ static const struct eon_spi_flash_params eon_spi_flash_table[] = {
                .nr_sectors = 4096,
                .name = "EN25Q128",
        },
-       {
-               .idcode1 = 0x16,
-               .nr_sectors = 1024,
-               .name = "EN25Q32B",
-       },
 };
 
-static int eon_erase(struct spi_flash *flash, u32 offset, size_t len)
-{
-       return spi_flash_cmd_erase(flash, CMD_EN25Q128_BE, offset, len);
-}
-
 struct spi_flash *spi_flash_probe_eon(struct spi_slave *spi, u8 *idcode)
 {
        const struct eon_spi_flash_params *params;
@@ -60,22 +46,15 @@ struct spi_flash *spi_flash_probe_eon(struct spi_slave *spi, u8 *idcode)
                return NULL;
        }
 
-       flash = malloc(sizeof(*flash));
+       flash = spi_flash_alloc_base(spi, params->name);
        if (!flash) {
                debug("SF: Failed to allocate memory\n");
                return NULL;
        }
 
-       flash->spi = spi;
-       flash->name = params->name;
-
-       flash->write = spi_flash_cmd_write_multi;
-       flash->erase = eon_erase;
-       flash->read = spi_flash_cmd_read_fast;
        flash->page_size = 256;
        flash->sector_size = 256 * 16 * 16;
-       flash->size = 256 * 16
-           * params->nr_sectors;
+       flash->size = 256 * 16 * params->nr_sectors;
 
        return flash;
 }