diff options
| author | Mike Frysinger <vapier@gentoo.org> | 2011-01-10 02:20:12 -0500 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2011-04-11 21:00:53 +0200 | 
| commit | 6163045bcd276818d9ad6bdd1bf36ddcd60d014b (patch) | |
| tree | 732ba3dd3b07977e38c773960dfb76c78ee4ab09 /drivers/mtd/spi/spi_flash_internal.h | |
| parent | 000044d8bfdc803a1a97e68ba95f289bfe5ad149 (diff) | |
| download | olio-uboot-2014.01-6163045bcd276818d9ad6bdd1bf36ddcd60d014b.tar.xz olio-uboot-2014.01-6163045bcd276818d9ad6bdd1bf36ddcd60d014b.zip | |
sf: unify status polling for ready bit
All of the spi flash drivers implement the status register polling for
detecting the device ready state, so unify them all in a new helper
function -- spi_flash_wait_ready.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'drivers/mtd/spi/spi_flash_internal.h')
| -rw-r--r-- | drivers/mtd/spi/spi_flash_internal.h | 15 | 
1 files changed, 15 insertions, 0 deletions
| diff --git a/drivers/mtd/spi/spi_flash_internal.h b/drivers/mtd/spi/spi_flash_internal.h index 68dcffb97..440c044f7 100644 --- a/drivers/mtd/spi/spi_flash_internal.h +++ b/drivers/mtd/spi/spi_flash_internal.h @@ -19,6 +19,11 @@  #define CMD_READ_ARRAY_FAST		0x0b  #define CMD_READ_ARRAY_LEGACY		0xe8 +#define CMD_READ_STATUS			0x05 + +/* Common status */ +#define STATUS_WIP			0x01 +  /* Send a single-byte command to the device and read the response */  int spi_flash_cmd(struct spi_slave *spi, u8 cmd, void *response, size_t len); @@ -43,6 +48,16 @@ int spi_flash_cmd_write(struct spi_slave *spi, const u8 *cmd, size_t cmd_len,  int spi_flash_read_common(struct spi_flash *flash, const u8 *cmd,  		size_t cmd_len, void *data, size_t data_len); +/* Send a command to the device and wait for some bit to clear itself. */ +int spi_flash_cmd_poll_bit(struct spi_flash *flash, unsigned long timeout, +			   u8 cmd, u8 poll_bit); + +/* + * Send the read status command to the device and wait for the wip + * (write-in-progress) bit to clear itself. + */ +int spi_flash_cmd_wait_ready(struct spi_flash *flash, unsigned long timeout); +  /* Manufacturer-specific probe functions */  struct spi_flash *spi_flash_probe_spansion(struct spi_slave *spi, u8 *idcode);  struct spi_flash *spi_flash_probe_atmel(struct spi_slave *spi, u8 *idcode); |