Hello
I'm working on the ls1021a with the SDK Linux 4.4 and i want to use it with the Linux 4.9, however there is a problem with the qspi.
In fact, the fsl_quadspi driver from the SDK works with the ls1021a, but the fsl_quadspi from 4.9 returns the error "fsl-quadspi 1550000.quadspi: Unsupported cmd 0x70" when accessing the qspi. The reason is that the spi_nor driver calls:
ret = nor->read_reg(nor, SPINOR_OP_RDFSR, &val, 1);
and SPINOR_OP_RDFSR is defined in include/linux/mtd/spi-nor.h:
#define SPINOR_OP_RDFSR 0x70 /* Read flag status register */
But then there is a difference between the fsl_quadspi driver from the SDK and linux 4.9:
In the SDK, SPINOR_OP_RDFSR is handled by the function fsl_qspi_get_seqid line 539:
case SPINOR_OP_RDFSR:
return SEQID_RDFSR;
In 4.9, SPINOR_OP_RDFSR isn't handled by the function fsl_qspi_get_seqid:
switch (cmd) {
case SPINOR_OP_READ_1_1_4:
return SEQID_QUAD_READ;
case SPINOR_OP_WREN:
return SEQID_WREN;
case SPINOR_OP_WRDI:
return SEQID_WRDI;
case SPINOR_OP_RDSR:
return SEQID_RDSR;
case SPINOR_OP_SE:
return SEQID_SE;
case SPINOR_OP_CHIP_ERASE:
return SEQID_CHIP_ERASE;
case SPINOR_OP_PP:
return SEQID_PP;
case SPINOR_OP_RDID:
return SEQID_RDID;
case SPINOR_OP_WRSR:
return SEQID_WRSR;
case SPINOR_OP_RDCR:
return SEQID_RDCR;
case SPINOR_OP_EN4B:
return SEQID_EN4B;
case SPINOR_OP_BRWR:
return SEQID_BRWR;
default:
if (cmd == q->nor[0].erase_opcode)
return SEQID_SE;
dev_err(q->dev, "Unsupported cmd 0x%.2x\n", cmd);
break;
Is there any way to patch the 4.9 fsl_quadspi driver in order to use it with the ls1021a? Or is there any SDK with linux 4.9?
Thanks
Regards
Alexandre Delove