diff options
Diffstat (limited to 'src/drivers/spi/gigadevice.c')
-rw-r--r-- | src/drivers/spi/gigadevice.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/drivers/spi/gigadevice.c b/src/drivers/spi/gigadevice.c index 780cc82b23..3146a97167 100644 --- a/src/drivers/spi/gigadevice.c +++ b/src/drivers/spi/gigadevice.c @@ -17,9 +17,10 @@ * GNU General Public License for more details. */ - +#include <console/console.h> #include <stdlib.h> #include <spi_flash.h> +#include <spi-generic.h> #include "spi_flash_internal.h" @@ -54,7 +55,7 @@ struct gigadevice_spi_flash { }; static inline struct gigadevice_spi_flash * -to_gigadevice_spi_flash(struct spi_flash *flash) +to_gigadevice_spi_flash(const struct spi_flash *flash) { return container_of(flash, struct gigadevice_spi_flash, flash); } @@ -118,8 +119,8 @@ static const struct gigadevice_spi_flash_params gigadevice_spi_flash_table[] = { }, }; -static int gigadevice_write(struct spi_flash *flash, u32 offset, - size_t len, const void *buf) +static int gigadevice_write(const struct spi_flash *flash, u32 offset, + size_t len, const void *buf) { struct gigadevice_spi_flash *stm = to_gigadevice_spi_flash(flash); unsigned long byte_addr; @@ -132,8 +133,6 @@ static int gigadevice_write(struct spi_flash *flash, u32 offset, page_size = 1 << stm->params->l2_page_size; byte_addr = offset % page_size; - flash->spi->rw = SPI_WRITE_FLAG; - for (actual = 0; actual < len; actual += chunk_len) { chunk_len = min(len - actual, page_size - byte_addr); chunk_len = spi_crop_chunk(sizeof(cmd), chunk_len); @@ -212,13 +211,13 @@ struct spi_flash *spi_flash_probe_gigadevice(struct spi_slave *spi, u8 *idcode) /* Assuming power-of-two page size initially. */ page_size = 1 << params->l2_page_size; - stm.flash.write = gigadevice_write; - stm.flash.erase = spi_flash_cmd_erase; - stm.flash.status = spi_flash_cmd_status; + stm.flash.internal_write = gigadevice_write; + stm.flash.internal_erase = spi_flash_cmd_erase; + stm.flash.internal_status = spi_flash_cmd_status; #if CONFIG_SPI_FLASH_NO_FAST_READ - stm.flash.read = spi_flash_cmd_read_slow; + stm.flash.internal_read = spi_flash_cmd_read_slow; #else - stm.flash.read = spi_flash_cmd_read_fast; + stm.flash.internal_read = spi_flash_cmd_read_fast; #endif stm.flash.sector_size = (1 << stm.params->l2_page_size) * stm.params->pages_per_sector; |