mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-09 03:21:51 +00:00
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>
This commit is contained in:
parent
33adfb5f9b
commit
c4ba0d82d3
4 changed files with 8 additions and 2 deletions
|
@ -45,6 +45,7 @@
|
||||||
#define CMD_READ_DUAL_OUTPUT_FAST 0x3b
|
#define CMD_READ_DUAL_OUTPUT_FAST 0x3b
|
||||||
#define CMD_READ_DUAL_IO_FAST 0xbb
|
#define CMD_READ_DUAL_IO_FAST 0xbb
|
||||||
#define CMD_READ_QUAD_OUTPUT_FAST 0x6b
|
#define CMD_READ_QUAD_OUTPUT_FAST 0x6b
|
||||||
|
#define CMD_READ_QUAD_IO_FAST 0xeb
|
||||||
#define CMD_READ_ID 0x9f
|
#define CMD_READ_ID 0x9f
|
||||||
|
|
||||||
/* Bank addr access commands */
|
/* Bank addr access commands */
|
||||||
|
|
|
@ -25,6 +25,7 @@ static u8 spi_read_cmds_array[] = {
|
||||||
CMD_READ_DUAL_OUTPUT_FAST,
|
CMD_READ_DUAL_OUTPUT_FAST,
|
||||||
CMD_READ_DUAL_IO_FAST,
|
CMD_READ_DUAL_IO_FAST,
|
||||||
CMD_READ_QUAD_OUTPUT_FAST,
|
CMD_READ_QUAD_OUTPUT_FAST,
|
||||||
|
CMD_READ_QUAD_IO_FAST,
|
||||||
};
|
};
|
||||||
|
|
||||||
static int spi_flash_set_qeb(struct spi_flash *flash, u8 idcode0)
|
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 */
|
/* Set the quad enable bit - only for quad commands */
|
||||||
if ((flash->read_cmd == CMD_READ_QUAD_OUTPUT_FAST) ||
|
if ((flash->read_cmd == CMD_READ_QUAD_OUTPUT_FAST) ||
|
||||||
|
(flash->read_cmd == CMD_READ_QUAD_IO_FAST) ||
|
||||||
(flash->write_cmd == CMD_QUAD_PAGE_PROGRAM)) {
|
(flash->write_cmd == CMD_QUAD_PAGE_PROGRAM)) {
|
||||||
if (spi_flash_set_qeb(flash, idcode[0])) {
|
if (spi_flash_set_qeb(flash, idcode[0])) {
|
||||||
debug("SF: Fail to set QEB for %02x\n", idcode[0]);
|
debug("SF: Fail to set QEB for %02x\n", idcode[0]);
|
||||||
|
|
|
@ -39,8 +39,10 @@
|
||||||
#define SPI_OPM_RX_DOUT 1 << 1
|
#define SPI_OPM_RX_DOUT 1 << 1
|
||||||
#define SPI_OPM_RX_DIO 1 << 2
|
#define SPI_OPM_RX_DIO 1 << 2
|
||||||
#define SPI_OPM_RX_QOF 1 << 3
|
#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 | \
|
#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 */
|
/* Header byte that marks the start of the message */
|
||||||
#define SPI_PREAMBLE_END_BYTE 0xec
|
#define SPI_PREAMBLE_END_BYTE 0xec
|
||||||
|
|
|
@ -28,9 +28,10 @@ enum spi_read_cmds {
|
||||||
DUAL_OUTPUT_FAST = 1 << 1,
|
DUAL_OUTPUT_FAST = 1 << 1,
|
||||||
DUAL_IO_FAST = 1 << 2,
|
DUAL_IO_FAST = 1 << 2,
|
||||||
QUAD_OUTPUT_FAST = 1 << 3,
|
QUAD_OUTPUT_FAST = 1 << 3,
|
||||||
|
QUAD_IO_FAST = 1 << 4,
|
||||||
};
|
};
|
||||||
#define RD_EXTN ARRAY_SLOW | DUAL_OUTPUT_FAST | DUAL_IO_FAST
|
#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
|
* struct spi_flash_params - SPI/QSPI flash device params structure
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue