summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/mtd/spi-nor/fsl-flexspi.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/mtd/spi-nor/fsl-flexspi.c b/drivers/mtd/spi-nor/fsl-flexspi.c
index 7828b6b80c2e..d4f122bddea7 100644
--- a/drivers/mtd/spi-nor/fsl-flexspi.c
+++ b/drivers/mtd/spi-nor/fsl-flexspi.c
@@ -97,6 +97,8 @@
#define FLEXSPI_MCR2_ABR_CMD_MASK (1 << FLEXSPI_MCR2_ABR_CMD_SHIFT)
#define FLEXSPI_AHBCR 0x0c
+#define FLEXSPI_AHBCR_RDADDROPT_SHIFT 6
+#define FLEXSPI_AHBCR_RDADDROPT_MASK (1 << FLEXSPI_AHBCR_RDADDROPT_SHIFT)
#define FLEXSPI_AHBCR_PREF_EN_SHIFT 5
#define FLEXSPI_AHBCR_PREF_EN_MASK (1 << FLEXSPI_AHBCR_PREF_EN_SHIFT)
#define FLEXSPI_AHBCR_BUFF_EN_SHIFT 4
@@ -697,7 +699,6 @@ fsl_flexspi_runcmd(struct fsl_flexspi *flex, u8 cmd, unsigned int addr, int len)
(reg & FLEXSPI_STS0_SEQ_IDLE_MASK))
break;
udelay(1);
- dev_err(flex->dev, "The controller is busy, 0x%x\n", reg);
} while (1);
/* trigger the LUT now */
@@ -878,7 +879,9 @@ static void fsl_flexspi_init_ahb_read(struct fsl_flexspi *flex)
FLEXSPI_AHBRXBUF0CR7_PREF_MASK),
base + FLEXSPI_AHBRX_BUF7CR0);
- writel(FLEXSPI_AHBCR_PREF_EN_MASK, base + FLEXSPI_AHBCR);
+ /* prefetch and no start address alignment limitation */
+ writel(FLEXSPI_AHBCR_PREF_EN_MASK | FLEXSPI_AHBCR_RDADDROPT_MASK,
+ base + FLEXSPI_AHBCR);
/* Set the default lut sequence for AHB Read. */
seqid = fsl_flexspi_get_seqid(flex, nor->read_opcode);