mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 16:52:14 +02:00
sf: Use spi_flash_alloc() in each SPI flash driver
Rather than each device having its own way to allocate a SPI flash structure, use the new allocation function everywhere. This will make it easier to extend the interface without breaking devices. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -480,15 +480,13 @@ struct spi_flash *spi_flash_probe_atmel(struct spi_slave *spi, u8 *idcode)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
asf = malloc(sizeof(struct atmel_spi_flash));
|
asf = spi_flash_alloc(struct atmel_spi_flash, spi, params->name);
|
||||||
if (!asf) {
|
if (!asf) {
|
||||||
debug("SF: Failed to allocate memory\n");
|
debug("SF: Failed to allocate memory\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
asf->params = params;
|
asf->params = params;
|
||||||
asf->flash.spi = spi;
|
|
||||||
asf->flash.name = params->name;
|
|
||||||
|
|
||||||
/* Assuming power-of-two page size initially. */
|
/* Assuming power-of-two page size initially. */
|
||||||
page_size = 1 << params->l2_page_size;
|
page_size = 1 << params->l2_page_size;
|
||||||
@@ -513,7 +511,6 @@ struct spi_flash *spi_flash_probe_atmel(struct spi_slave *spi, u8 *idcode)
|
|||||||
asf->flash.erase = dataflash_erase_at45;
|
asf->flash.erase = dataflash_erase_at45;
|
||||||
page_size += 1 << (params->l2_page_size - 5);
|
page_size += 1 << (params->l2_page_size - 5);
|
||||||
} else {
|
} else {
|
||||||
asf->flash.read = spi_flash_cmd_read_fast;
|
|
||||||
asf->flash.write = dataflash_write_p2;
|
asf->flash.write = dataflash_write_p2;
|
||||||
asf->flash.erase = dataflash_erase_p2;
|
asf->flash.erase = dataflash_erase_p2;
|
||||||
}
|
}
|
||||||
@@ -524,9 +521,6 @@ struct spi_flash *spi_flash_probe_atmel(struct spi_slave *spi, u8 *idcode)
|
|||||||
|
|
||||||
case DF_FAMILY_AT26F:
|
case DF_FAMILY_AT26F:
|
||||||
case DF_FAMILY_AT26DF:
|
case DF_FAMILY_AT26DF:
|
||||||
asf->flash.read = spi_flash_cmd_read_fast;
|
|
||||||
asf->flash.write = spi_flash_cmd_write_multi;
|
|
||||||
asf->flash.erase = spi_flash_cmd_erase;
|
|
||||||
asf->flash.page_size = page_size;
|
asf->flash.page_size = page_size;
|
||||||
asf->flash.sector_size = 4096;
|
asf->flash.sector_size = 4096;
|
||||||
/* clear SPRL# bit for locked flash */
|
/* clear SPRL# bit for locked flash */
|
||||||
|
@@ -46,18 +46,12 @@ struct spi_flash *spi_flash_probe_eon(struct spi_slave *spi, u8 *idcode)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
flash = malloc(sizeof(*flash));
|
flash = spi_flash_alloc_base(spi, params->name);
|
||||||
if (!flash) {
|
if (!flash) {
|
||||||
debug("SF: Failed to allocate memory\n");
|
debug("SF: Failed to allocate memory\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
flash->spi = spi;
|
|
||||||
flash->name = params->name;
|
|
||||||
|
|
||||||
flash->write = spi_flash_cmd_write_multi;
|
|
||||||
flash->erase = spi_flash_cmd_erase;
|
|
||||||
flash->read = spi_flash_cmd_read_fast;
|
|
||||||
flash->page_size = 256;
|
flash->page_size = 256;
|
||||||
flash->sector_size = 256 * 16 * 16;
|
flash->sector_size = 256 * 16 * 16;
|
||||||
flash->size = 256 * 16
|
flash->size = 256 * 16
|
||||||
|
@@ -97,18 +97,12 @@ struct spi_flash *spi_flash_probe_macronix(struct spi_slave *spi, u8 *idcode)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
flash = malloc(sizeof(*flash));
|
flash = spi_flash_alloc_base(spi, params->name);
|
||||||
if (!flash) {
|
if (!flash) {
|
||||||
debug("SF: Failed to allocate memory\n");
|
debug("SF: Failed to allocate memory\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
flash->spi = spi;
|
|
||||||
flash->name = params->name;
|
|
||||||
|
|
||||||
flash->write = spi_flash_cmd_write_multi;
|
|
||||||
flash->erase = spi_flash_cmd_erase;
|
|
||||||
flash->read = spi_flash_cmd_read_fast;
|
|
||||||
flash->page_size = 256;
|
flash->page_size = 256;
|
||||||
flash->sector_size = 256 * 16 * 16;
|
flash->sector_size = 256 * 16 * 16;
|
||||||
flash->size = flash->sector_size * params->nr_blocks;
|
flash->size = flash->sector_size * params->nr_blocks;
|
||||||
|
@@ -284,15 +284,13 @@ struct spi_flash *spi_fram_probe_ramtron(struct spi_slave *spi, u8 *idcode)
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
found:
|
found:
|
||||||
sn = malloc(sizeof(*sn));
|
sn = spi_flash_alloc(struct ramtron_spi_fram, spi, params->name);
|
||||||
if (!sn) {
|
if (!sn) {
|
||||||
debug("SF: Failed to allocate memory\n");
|
debug("SF: Failed to allocate memory\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
sn->params = params;
|
sn->params = params;
|
||||||
sn->flash.spi = spi;
|
|
||||||
sn->flash.name = params->name;
|
|
||||||
|
|
||||||
sn->flash.write = ramtron_write;
|
sn->flash.write = ramtron_write;
|
||||||
sn->flash.read = ramtron_read;
|
sn->flash.read = ramtron_read;
|
||||||
|
@@ -128,18 +128,12 @@ struct spi_flash *spi_flash_probe_spansion(struct spi_slave *spi, u8 *idcode)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
flash = malloc(sizeof(*flash));
|
flash = spi_flash_alloc_base(spi, params->name);
|
||||||
if (!flash) {
|
if (!flash) {
|
||||||
debug("SF: Failed to allocate memory\n");
|
debug("SF: Failed to allocate memory\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
flash->spi = spi;
|
|
||||||
flash->name = params->name;
|
|
||||||
|
|
||||||
flash->write = spi_flash_cmd_write_multi;
|
|
||||||
flash->erase = spi_flash_cmd_erase;
|
|
||||||
flash->read = spi_flash_cmd_read_fast;
|
|
||||||
flash->page_size = 256;
|
flash->page_size = 256;
|
||||||
flash->sector_size = 256 * params->pages_per_sector;
|
flash->sector_size = 256 * params->pages_per_sector;
|
||||||
flash->size = flash->sector_size * params->nr_sectors;
|
flash->size = flash->sector_size * params->nr_sectors;
|
||||||
|
@@ -203,22 +203,16 @@ spi_flash_probe_sst(struct spi_slave *spi, u8 *idcode)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
stm = malloc(sizeof(*stm));
|
stm = spi_flash_alloc(struct sst_spi_flash, spi, params->name);
|
||||||
if (!stm) {
|
if (!stm) {
|
||||||
debug("SF: Failed to allocate memory\n");
|
debug("SF: Failed to allocate memory\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
stm->params = params;
|
stm->params = params;
|
||||||
stm->flash.spi = spi;
|
|
||||||
stm->flash.name = params->name;
|
|
||||||
|
|
||||||
if (stm->params->flags & SST_FEAT_WP)
|
if (stm->params->flags & SST_FEAT_WP)
|
||||||
stm->flash.write = sst_write_wp;
|
stm->flash.write = sst_write_wp;
|
||||||
else
|
|
||||||
stm->flash.write = spi_flash_cmd_write_multi;
|
|
||||||
stm->flash.erase = spi_flash_cmd_erase;
|
|
||||||
stm->flash.read = spi_flash_cmd_read_fast;
|
|
||||||
stm->flash.page_size = 256;
|
stm->flash.page_size = 256;
|
||||||
stm->flash.sector_size = 4096;
|
stm->flash.sector_size = 4096;
|
||||||
stm->flash.size = stm->flash.sector_size * params->nr_sectors;
|
stm->flash.size = stm->flash.sector_size * params->nr_sectors;
|
||||||
|
@@ -176,18 +176,12 @@ struct spi_flash *spi_flash_probe_stmicro(struct spi_slave *spi, u8 * idcode)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
flash = malloc(sizeof(*flash));
|
flash = spi_flash_alloc_base(spi, params->name);
|
||||||
if (!flash) {
|
if (!flash) {
|
||||||
debug("SF: Failed to allocate memory\n");
|
debug("SF: Failed to allocate memory\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
flash->spi = spi;
|
|
||||||
flash->name = params->name;
|
|
||||||
|
|
||||||
flash->write = spi_flash_cmd_write_multi;
|
|
||||||
flash->erase = spi_flash_cmd_erase;
|
|
||||||
flash->read = spi_flash_cmd_read_fast;
|
|
||||||
flash->page_size = 256;
|
flash->page_size = 256;
|
||||||
flash->sector_size = 256 * params->pages_per_sector;
|
flash->sector_size = 256 * params->pages_per_sector;
|
||||||
flash->size = flash->sector_size * params->nr_sectors;
|
flash->size = flash->sector_size * params->nr_sectors;
|
||||||
|
@@ -92,18 +92,12 @@ struct spi_flash *spi_flash_probe_winbond(struct spi_slave *spi, u8 *idcode)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
flash = malloc(sizeof(*flash));
|
flash = spi_flash_alloc_base(spi, params->name);
|
||||||
if (!flash) {
|
if (!flash) {
|
||||||
debug("SF: Failed to allocate memory\n");
|
debug("SF: Failed to allocate memory\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
flash->spi = spi;
|
|
||||||
flash->name = params->name;
|
|
||||||
|
|
||||||
flash->write = spi_flash_cmd_write_multi;
|
|
||||||
flash->erase = spi_flash_cmd_erase;
|
|
||||||
flash->read = spi_flash_cmd_read_fast;
|
|
||||||
flash->page_size = 256;
|
flash->page_size = 256;
|
||||||
flash->sector_size = 4096;
|
flash->sector_size = 4096;
|
||||||
flash->size = 4096 * 16 * params->nr_blocks;
|
flash->size = 4096 * 16 * params->nr_blocks;
|
||||||
|
Reference in New Issue
Block a user