mtd: spi-nor: fsl-quadspi: fix unsupported cmd when run flash_erase
Erase function will use cmd 0x20 (SPINOR_OP_BE_4K) if kenrel enable option CONFIG_MTD_SPI_NOR_USE_4K_SECTORS. This command is not in fsl-quadspi driver LUT. So driver continue report fsl-quadspi 21e0000.qspi: Unsupported cmd 0x20. This patch fix this issue. Signed-off-by: Frank Li <Frank.Li@freescale.com> Acked-by: Han Xu <Han.xu@freescale.com> Signed-off-by: Brian Norris <computersforpeace@gmail.com>
This commit is contained in:
parent
8b8319c8b7
commit
788a6cddda
1 changed files with 4 additions and 8 deletions
|
@ -397,14 +397,8 @@ static void fsl_qspi_init_lut(struct fsl_qspi *q)
|
||||||
/* Erase a sector */
|
/* Erase a sector */
|
||||||
lut_base = SEQID_SE * 4;
|
lut_base = SEQID_SE * 4;
|
||||||
|
|
||||||
if (q->nor_size <= SZ_16M) {
|
cmd = q->nor[0].erase_opcode;
|
||||||
cmd = SPINOR_OP_SE;
|
addrlen = q->nor_size <= SZ_16M ? ADDR24BIT : ADDR32BIT;
|
||||||
addrlen = ADDR24BIT;
|
|
||||||
} else {
|
|
||||||
/* use the 4-byte address */
|
|
||||||
cmd = SPINOR_OP_SE;
|
|
||||||
addrlen = ADDR32BIT;
|
|
||||||
}
|
|
||||||
|
|
||||||
writel(LUT0(CMD, PAD1, cmd) | LUT1(ADDR, PAD1, addrlen),
|
writel(LUT0(CMD, PAD1, cmd) | LUT1(ADDR, PAD1, addrlen),
|
||||||
base + QUADSPI_LUT(lut_base));
|
base + QUADSPI_LUT(lut_base));
|
||||||
|
@ -473,6 +467,8 @@ static int fsl_qspi_get_seqid(struct fsl_qspi *q, u8 cmd)
|
||||||
case SPINOR_OP_BRWR:
|
case SPINOR_OP_BRWR:
|
||||||
return SEQID_BRWR;
|
return SEQID_BRWR;
|
||||||
default:
|
default:
|
||||||
|
if (cmd == q->nor[0].erase_opcode)
|
||||||
|
return SEQID_SE;
|
||||||
dev_err(q->dev, "Unsupported cmd 0x%.2x\n", cmd);
|
dev_err(q->dev, "Unsupported cmd 0x%.2x\n", cmd);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue