[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