[PATCH 6/7] mtd: spi-nor: fsl-quadspi: reset the module in the probe
Han Xu
xhnjupt at gmail.com
Fri Jul 24 08:40:56 PDT 2015
On Tue, Jul 21, 2015 at 2:39 PM, <Frank.Li at freescale.com> wrote:
> From: Frank Li <Frank.Li at freescale.com>
>
> 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 at gmail.com>
> Signed-off-by: Frank Li <Frank.Li at freescale.com>
Acked-by: Han Xu <han.xu at freescale.com>
> ---
> drivers/mtd/spi-nor/fsl-quadspi.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/mtd/spi-nor/fsl-quadspi.c b/drivers/mtd/spi-nor/fsl-quadspi.c
> index 10a2c23..68054c1 100644
> --- a/drivers/mtd/spi-nor/fsl-quadspi.c
> +++ b/drivers/mtd/spi-nor/fsl-quadspi.c
> @@ -715,6 +715,11 @@ static int fsl_qspi_nor_setup(struct fsl_qspi *q)
> if (ret)
> return ret;
>
> + /* Reset the module */
> + writel(QUADSPI_MCR_SWRSTSD_MASK | QUADSPI_MCR_SWRSTHD_MASK,
> + base + QUADSPI_MCR);
> + udelay(1);
> +
> /* Init the LUT table. */
> fsl_qspi_init_lut(q);
>
> @@ -732,6 +737,9 @@ static int fsl_qspi_nor_setup(struct fsl_qspi *q)
> writel(QUADSPI_MCR_RESERVED_MASK | QUADSPI_MCR_END_CFG_MASK,
> base + QUADSPI_MCR);
>
> + /* clear all interrupt status */
> + writel(0xffffffff, q->iobase + QUADSPI_FR);
> +
> /* enable the interrupt */
> writel(QUADSPI_RSER_TFIE, q->iobase + QUADSPI_RSER);
>
> --
> 1.9.1
>
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
More information about the linux-mtd
mailing list