[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <02a2816d2f39bf621dfee543ed612ae0@walle.cc>
Date: Mon, 09 Mar 2020 19:38:48 +0100
From: Michael Walle <michael@...le.cc>
To: Vladimir Oltean <olteanv@...il.com>
Cc: broonie@...nel.org, linux-spi@...r.kernel.org,
linux-kernel@...r.kernel.org, shawnguo@...nel.org,
robh+dt@...nel.org, mark.rutland@....com,
devicetree@...r.kernel.org, eha@...f.com, angelo@...am.it,
andrew.smirnov@...il.com, gustavo@...eddedor.com, weic@...dia.com,
mhosny@...dia.com, peng.ma@....com
Subject: Re: [PATCH 4/6] spi: spi-fsl-dspi: Add support for LS1028A
Am 2020-03-09 15:56, schrieb Vladimir Oltean:
> From: Vladimir Oltean <vladimir.oltean@....com>
>
> This is similar to the DSPI instantiation on LS1028A, except that:
> - The A-011218 erratum has been fixed, so DMA works
> - The endianness is different, which has implications on XSPI mode
>
> Some benchmarking with the following command:
>
> spidev_test --device /dev/spidev2.0 --bpw 8 --size 256 --cpha --iter
> 10000000 --speed 20000000
>
> shows that in DMA mode, it can achieve around 2400 kbps, and in XSPI
> mode, the same command goes up to 4700 kbps. This is somewhat to be
> expected, since the DMA buffer size is extremely small at 8 bytes, the
> winner becomes whomever can prepare the buffers for transmission
> quicker, and DMA mode has higher overhead there. So XSPI FIFO mode has
> been chosen as the operating mode for this chip.
>
> Signed-off-by: Vladimir Oltean <vladimir.oltean@....com>
> ---
> drivers/spi/spi-fsl-dspi.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c
> index 5624b9ee77db..264d184e7296 100644
> --- a/drivers/spi/spi-fsl-dspi.c
> +++ b/drivers/spi/spi-fsl-dspi.c
> @@ -131,6 +131,7 @@ struct fsl_dspi_devtype_data {
> enum {
> LS1021A,
> LS1012A,
> + LS1028A,
> LS1043A,
> LS1046A,
> LS2080A,
> @@ -163,6 +164,14 @@ static const struct fsl_dspi_devtype_data
> devtype_data[] = {
> .pushr_cmd = 0,
> .pushr_tx = 2,
> },
> + [LS1028A] = {
> + .trans_mode = DSPI_DMA_MODE,
shouldn't this be DSPI_XSPI_MODE according to your cover letter?
-michael
> + .dma_bufsize = 8,
> + .max_clock_factor = 8,
> + .fifo_size = 4,
> + .pushr_cmd = 2,
> + .pushr_tx = 0,
> + },
> [LS1043A] = {
> /* Has A-011218 DMA erratum */
> .trans_mode = DSPI_XSPI_MODE,
> @@ -1113,6 +1122,9 @@ static const struct of_device_id
> fsl_dspi_dt_ids[] = {
> }, {
> .compatible = "fsl,ls1012a-dspi",
> .data = &devtype_data[LS1012A],
> + }, {
> + .compatible = "fsl,ls1028a-dspi",
> + .data = &devtype_data[LS1028A],
> }, {
> .compatible = "fsl,ls1043a-dspi",
> .data = &devtype_data[LS1043A],
Powered by blists - more mailing lists