diff options
| author | Jagannadha Sutradharudu Teki <jaganna@xilinx.com> | 2013-12-24 15:24:31 +0530 | 
|---|---|---|
| committer | Jagannadha Sutradharudu Teki <jaganna@xilinx.com> | 2014-01-11 15:13:27 +0530 | 
| commit | c4ba0d82d329791c3f0456d88e93032b11e48535 (patch) | |
| tree | 4514b926ce236e9b23ae4054afec41b3ea32484e | |
| parent | 33adfb5f9b06ac1a386dddc222cc50e24a9909e2 (diff) | |
| download | olio-uboot-2014.01-c4ba0d82d329791c3f0456d88e93032b11e48535.tar.xz olio-uboot-2014.01-c4ba0d82d329791c3f0456d88e93032b11e48535.zip | |
sf: Add QUAD_IO_FAST read support
This patch adds support QUAD_IO_FAST read command.
Signed-off-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
| -rw-r--r-- | drivers/mtd/spi/sf_internal.h | 1 | ||||
| -rw-r--r-- | drivers/mtd/spi/sf_probe.c | 2 | ||||
| -rw-r--r-- | include/spi.h | 4 | ||||
| -rw-r--r-- | include/spi_flash.h | 3 | 
4 files changed, 8 insertions, 2 deletions
| diff --git a/drivers/mtd/spi/sf_internal.h b/drivers/mtd/spi/sf_internal.h index dca34f7a7..7be02925c 100644 --- a/drivers/mtd/spi/sf_internal.h +++ b/drivers/mtd/spi/sf_internal.h @@ -45,6 +45,7 @@  #define CMD_READ_DUAL_OUTPUT_FAST	0x3b  #define CMD_READ_DUAL_IO_FAST		0xbb  #define CMD_READ_QUAD_OUTPUT_FAST	0x6b +#define CMD_READ_QUAD_IO_FAST		0xeb  #define CMD_READ_ID			0x9f  /* Bank addr access commands */ diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c index d95c8b9ae..a049e729a 100644 --- a/drivers/mtd/spi/sf_probe.c +++ b/drivers/mtd/spi/sf_probe.c @@ -25,6 +25,7 @@ static u8 spi_read_cmds_array[] = {  	CMD_READ_DUAL_OUTPUT_FAST,  	CMD_READ_DUAL_IO_FAST,  	CMD_READ_QUAD_OUTPUT_FAST, +	CMD_READ_QUAD_IO_FAST,  };  static int spi_flash_set_qeb(struct spi_flash *flash, u8 idcode0) @@ -131,6 +132,7 @@ static struct spi_flash *spi_flash_validate_params(struct spi_slave *spi,  	/* Set the quad enable bit - only for quad commands */  	if ((flash->read_cmd == CMD_READ_QUAD_OUTPUT_FAST) || +	    (flash->read_cmd == CMD_READ_QUAD_IO_FAST) ||  	    (flash->write_cmd == CMD_QUAD_PAGE_PROGRAM)) {  		if (spi_flash_set_qeb(flash, idcode[0])) {  			debug("SF: Fail to set QEB for %02x\n", idcode[0]); diff --git a/include/spi.h b/include/spi.h index 5dd490a66..c8a9d87b5 100644 --- a/include/spi.h +++ b/include/spi.h @@ -39,8 +39,10 @@  #define SPI_OPM_RX_DOUT		1 << 1  #define SPI_OPM_RX_DIO		1 << 2  #define SPI_OPM_RX_QOF		1 << 3 +#define SPI_OPM_RX_QIOF		1 << 4  #define SPI_OPM_RX_EXTN		SPI_OPM_RX_AS | SPI_OPM_RX_DOUT | \ -				SPI_OPM_RX_DIO | SPI_OPM_RX_QOF +				SPI_OPM_RX_DIO | SPI_OPM_RX_QOF | \ +				SPI_OPM_RX_QIOF  /* Header byte that marks the start of the message */  #define SPI_PREAMBLE_END_BYTE	0xec diff --git a/include/spi_flash.h b/include/spi_flash.h index 8e0bb46e8..99724a0d3 100644 --- a/include/spi_flash.h +++ b/include/spi_flash.h @@ -28,9 +28,10 @@ enum spi_read_cmds {  	DUAL_OUTPUT_FAST = 1 << 1,  	DUAL_IO_FAST = 1 << 2,  	QUAD_OUTPUT_FAST = 1 << 3, +	QUAD_IO_FAST = 1 << 4,  };  #define RD_EXTN		ARRAY_SLOW | DUAL_OUTPUT_FAST | DUAL_IO_FAST -#define RD_FULL		RD_EXTN | QUAD_OUTPUT_FAST +#define RD_FULL		RD_EXTN | QUAD_OUTPUT_FAST | QUAD_IO_FAST  /**   * struct spi_flash_params - SPI/QSPI flash device params structure |