spi: spi-fsl-dspi: Convert the instantiations that support it to DMA
authorVladimir Oltean <vladimir.oltean@nxp.com>
Mon, 2 Mar 2020 00:19:58 +0000 (02:19 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 4 Mar 2020 18:28:54 +0000 (18:28 +0000)
The A-011218 eDMA/DSPI erratum affects most of the older Layerscape SoCs
with DSPI, and its workaround is a bit intrusive.

After this patch, there are no users of TCFQ mode that don't also
support XSPI (previously there was LS2085A).

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Message-Id: <20200302001958.11105-7-olteanv@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-fsl-dspi.c

index c26a42f..c357c32 100644 (file)
@@ -147,42 +147,49 @@ static const struct fsl_dspi_devtype_data devtype_data[] = {
                .fifo_size              = 4,
        },
        [LS1021A] = {
+               /* Has A-011218 DMA erratum */
                .trans_mode             = DSPI_TCFQ_MODE,
                .max_clock_factor       = 8,
                .xspi_mode              = true,
                .fifo_size              = 4,
        },
        [LS1012A] = {
+               /* Has A-011218 DMA erratum */
                .trans_mode             = DSPI_TCFQ_MODE,
                .max_clock_factor       = 8,
                .xspi_mode              = true,
                .fifo_size              = 16,
        },
        [LS1043A] = {
+               /* Has A-011218 DMA erratum */
                .trans_mode             = DSPI_TCFQ_MODE,
                .max_clock_factor       = 8,
                .xspi_mode              = true,
                .fifo_size              = 16,
        },
        [LS1046A] = {
+               /* Has A-011218 DMA erratum */
                .trans_mode             = DSPI_TCFQ_MODE,
                .max_clock_factor       = 8,
                .xspi_mode              = true,
                .fifo_size              = 16,
        },
        [LS2080A] = {
-               .trans_mode             = DSPI_TCFQ_MODE,
+               .trans_mode             = DSPI_DMA_MODE,
+               .dma_bufsize            = 8,
                .max_clock_factor       = 8,
                .xspi_mode              = true,
                .fifo_size              = 4,
        },
        [LS2085A] = {
-               .trans_mode             = DSPI_TCFQ_MODE,
+               .trans_mode             = DSPI_DMA_MODE,
+               .dma_bufsize            = 8,
                .max_clock_factor       = 8,
                .fifo_size              = 4,
        },
        [LX2160A] = {
-               .trans_mode             = DSPI_TCFQ_MODE,
+               .trans_mode             = DSPI_DMA_MODE,
+               .dma_bufsize            = 8,
                .max_clock_factor       = 8,
                .xspi_mode              = true,
                .fifo_size              = 4,