Re: [PATCH 4/6] spi: spi-fsl-dspi: Add support for LS1028A

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 9 Mar 2020 at 20:38, Michael Walle <michael@xxxxxxxx> wrote:
>
> Am 2020-03-09 15:56, schrieb Vladimir Oltean:
> > From: Vladimir Oltean <vladimir.oltean@xxxxxxx>
> >
> > 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@xxxxxxx>
> > ---
> >  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
>

Yes, sorry, I forgot to change it back after testing it both ways.

> > +             .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],



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux