Subject: [PATCH 1/4] spi: add support for octal I/O data transfer

From: [email-masked] (Boris Brezillon)
Date: Thu, 4 Oct 2018 11:19:41 +0200

On Thu, 4 Oct 2018 09:14:36 +0000
Yogesh Narayan Gaur <[email-masked]> wrote:

> Hi Boris,
> 
> > -----Original Message-----
> > From: Boris Brezillon [mailto:boris.brezillon at bootlin.com]
> > Sent: Thursday, October 4, 2018 2:35 PM
> > To: Yogesh Narayan Gaur <[email-masked]>
> > Cc: linux-mtd at lists.infradead.org; marek.vasut at gmail.com;
> > vigneshr at ti.com; linux-spi at vger.kernel.org;
> > devicetree at vger.kernel.org; robh at kernel.org; mark.rutland at arm.com;
> > shawnguo at kernel.org; linux-arm- kernel at lists.infradead.org;
> > computersforpeace at gmail.com; frieder.schrempf at exceet.de;
> > linux-kernel at vger.kernel.org Subject: Re: [PATCH 1/4] spi: add
> > support for octal I/O data transfer
> > 
> > Hi Yogesh,
> > 
> > On Thu,  4 Oct 2018 14:18:37 +0530
> > Yogesh Gaur <[email-masked]> wrote:
> >   
> > > Add flags for Octal I/O data transfer
> > > Required for the SPI controller which can do the data transfer
> > > (TX/RX) on 8 data lines e.g. NXP FlexSPI controller.
> > >  SPI_TX_OCTAL: transmit with 8 wires
> > >  SPI_RX_OCTAL: receive with 8 wires
> > >
> > > Signed-off-by: Yogesh Gaur <[email-masked]>
> > > ---
> > >  drivers/spi/spi.c       | 6 ++++++
> > >  include/linux/spi/spi.h | 2 ++
> > >  2 files changed, 8 insertions(+)
> > >
> > > diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index
> > > ec395a6..80f672f 100644
> > > --- a/drivers/spi/spi.c
> > > +++ b/drivers/spi/spi.c
> > > @@ -1573,6 +1573,9 @@ static int of_spi_parse_dt(struct
> > > spi_controller *ctlr,  
> > struct spi_device *spi,  
> > >  		case 4:
> > >  			spi->mode |= SPI_TX_QUAD;
> > >  			break;
> > > +		case 8:
> > > +			spi->mode |= SPI_TX_OCTAL;
> > > +			break;
> > >  		default:
> > >  			dev_warn(&ctlr->dev,
> > >  				"spi-tx-bus-width %d not
> > > supported\n", @@ -  
> > 1591,6 +1594,9 @@  
> > > static int of_spi_parse_dt(struct spi_controller *ctlr, struct
> > > spi_device *spi, case 4:
> > >  			spi->mode |= SPI_RX_QUAD;
> > >  			break;
> > > +		case 8:
> > > +			spi->mode |= SPI_RX_OCTAL;
> > > +			break;
> > >  		default:
> > >  			dev_warn(&ctlr->dev,
> > >  				"spi-rx-bus-width %d not
> > > supported\n", diff --  
> > git  
> > > a/include/linux/spi/spi.h b/include/linux/spi/spi.h index
> > > a64235e..2d21307 100644
> > > --- a/include/linux/spi/spi.h
> > > +++ b/include/linux/spi/spi.h
> > > @@ -163,6 +163,8 @@ struct spi_device {
> > >  #define	SPI_TX_QUAD
> > > 0x200			/* transmit with 4  
> > wires */  
> > >  #define	SPI_RX_DUAL
> > > 0x400			/* receive with 2 wires  
> > */  
> > >  #define	SPI_RX_QUAD
> > > 0x800			/* receive with 4 wires  
> > */  
> > > +#define	SPI_TX_OCTAL
> > > 0x1000			/* transmit with 8  
> > wires */  
> > > +#define	SPI_RX_OCTAL
> > > 0x2000			/* receive with 8 wires  
> > */  
> > >  	int			irq;
> > >  	void			*controller_state;
> > >  	void			*controller_data;  
> > 
> > You're still not updating spi-mem.c to check those flags and
> > SPI_MEM_MAX_BUSWIDTH is not updated to match the new limit (8
> > instead of 4).
> >   
> Yes and its strange that my octal mode communication is working fine
> without adding support in spi-mem.c and that's why this has been
> missed from me.

Are you based on top of spi-next?