mtd: spi-nor: fsl-quadspi: reset the module in the probe
The uboot may run the QuadSpi controler with command: #sf probe So we should reset the module in the probe. This patch also clear the pending interrupts which arised by the uboot code. Signed-off-by: Huang Shijie <shijie8@gmail.com> Signed-off-by: Frank Li <Frank.Li@freescale.com> Signed-off-by: Brian Norris <computersforpeace@gmail.com>
This commit is contained in:
Родитель
5cc66cb734
Коммит
8b8319c8b7
|
@ -716,6 +716,11 @@ static int fsl_qspi_nor_setup(struct fsl_qspi *q)
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
/* Reset the module */
|
||||||
|
writel(QUADSPI_MCR_SWRSTSD_MASK | QUADSPI_MCR_SWRSTHD_MASK,
|
||||||
|
base + QUADSPI_MCR);
|
||||||
|
udelay(1);
|
||||||
|
|
||||||
/* Init the LUT table. */
|
/* Init the LUT table. */
|
||||||
fsl_qspi_init_lut(q);
|
fsl_qspi_init_lut(q);
|
||||||
|
|
||||||
|
@ -733,6 +738,9 @@ static int fsl_qspi_nor_setup(struct fsl_qspi *q)
|
||||||
writel(QUADSPI_MCR_RESERVED_MASK | QUADSPI_MCR_END_CFG_MASK,
|
writel(QUADSPI_MCR_RESERVED_MASK | QUADSPI_MCR_END_CFG_MASK,
|
||||||
base + QUADSPI_MCR);
|
base + QUADSPI_MCR);
|
||||||
|
|
||||||
|
/* clear all interrupt status */
|
||||||
|
writel(0xffffffff, q->iobase + QUADSPI_FR);
|
||||||
|
|
||||||
/* enable the interrupt */
|
/* enable the interrupt */
|
||||||
writel(QUADSPI_RSER_TFIE, q->iobase + QUADSPI_RSER);
|
writel(QUADSPI_RSER_TFIE, q->iobase + QUADSPI_RSER);
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче