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

Message ID 1538642920-3843-2-git-send-email-yogeshnarayan.gaur@nxp.com
State Superseded
Headers show
Series
  • spi: add support for octal mode data transfer
Related show

Commit Message

Yogesh Narayan Gaur Oct. 4, 2018, 8:48 a.m.
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 <yogeshnarayan.gaur@nxp.com>
---
 drivers/spi/spi.c       | 6 ++++++
 include/linux/spi/spi.h | 2 ++
 2 files changed, 8 insertions(+)

Comments

Boris Brezillon Oct. 4, 2018, 9:04 a.m. | #1
Hi Yogesh,

On Thu,  4 Oct 2018 14:18:37 +0530
Yogesh Gaur <yogeshnarayan.gaur@nxp.com> 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 <yogeshnarayan.gaur@nxp.com>
> ---
>  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).

Regards,

Boris
Yogesh Narayan Gaur Oct. 4, 2018, 9:14 a.m. | #2
Hi Boris,

> -----Original Message-----
> From: Boris Brezillon [mailto:boris.brezillon@bootlin.com]
> Sent: Thursday, October 4, 2018 2:35 PM
> To: Yogesh Narayan Gaur <yogeshnarayan.gaur@nxp.com>
> Cc: linux-mtd@lists.infradead.org; marek.vasut@gmail.com; vigneshr@ti.com;
> linux-spi@vger.kernel.org; devicetree@vger.kernel.org; robh@kernel.org;
> mark.rutland@arm.com; shawnguo@kernel.org; linux-arm-
> kernel@lists.infradead.org; computersforpeace@gmail.com;
> frieder.schrempf@exceet.de; linux-kernel@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 <yogeshnarayan.gaur@nxp.com> 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 <yogeshnarayan.gaur@nxp.com>
> > ---
> >  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.
For this patch series, have done data read/write verification using MTD_DEBUG and JFFS2 mount utility and none of them reports data read error.
Would add octal mode related changes in this file too.

--
Regards
Yogesh Gaur.

> Regards,
> 
> Boris
Boris Brezillon Oct. 4, 2018, 9:19 a.m. | #3
On Thu, 4 Oct 2018 09:14:36 +0000
Yogesh Narayan Gaur <yogeshnarayan.gaur@nxp.com> wrote:

> Hi Boris,
> 
> > -----Original Message-----
> > From: Boris Brezillon [mailto:boris.brezillon@bootlin.com]
> > Sent: Thursday, October 4, 2018 2:35 PM
> > To: Yogesh Narayan Gaur <yogeshnarayan.gaur@nxp.com>
> > Cc: linux-mtd@lists.infradead.org; marek.vasut@gmail.com;
> > vigneshr@ti.com; linux-spi@vger.kernel.org;
> > devicetree@vger.kernel.org; robh@kernel.org; mark.rutland@arm.com;
> > shawnguo@kernel.org; linux-arm- kernel@lists.infradead.org;
> > computersforpeace@gmail.com; frieder.schrempf@exceet.de;
> > linux-kernel@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 <yogeshnarayan.gaur@nxp.com> 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 <yogeshnarayan.gaur@nxp.com>
> > > ---
> > >  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?
Yogesh Narayan Gaur Oct. 4, 2018, 9:25 a.m. | #4
Hi Boris,

> -----Original Message-----
> From: Boris Brezillon [mailto:boris.brezillon@bootlin.com]
> Sent: Thursday, October 4, 2018 2:50 PM
> To: Yogesh Narayan Gaur <yogeshnarayan.gaur@nxp.com>
> Cc: linux-mtd@lists.infradead.org; marek.vasut@gmail.com; vigneshr@ti.com;
> linux-spi@vger.kernel.org; devicetree@vger.kernel.org; robh@kernel.org;
> mark.rutland@arm.com; shawnguo@kernel.org; linux-arm-
> kernel@lists.infradead.org; computersforpeace@gmail.com;
> frieder.schrempf@exceet.de; linux-kernel@vger.kernel.org
> Subject: Re: [PATCH 1/4] spi: add support for octal I/O data transfer
> 
> On Thu, 4 Oct 2018 09:14:36 +0000
> Yogesh Narayan Gaur <yogeshnarayan.gaur@nxp.com> wrote:
> 
> > Hi Boris,
> >
> > > -----Original Message-----
> > > From: Boris Brezillon [mailto:boris.brezillon@bootlin.com]
> > > Sent: Thursday, October 4, 2018 2:35 PM
> > > To: Yogesh Narayan Gaur <yogeshnarayan.gaur@nxp.com>
> > > Cc: linux-mtd@lists.infradead.org; marek.vasut@gmail.com;
> > > vigneshr@ti.com; linux-spi@vger.kernel.org;
> > > devicetree@vger.kernel.org; robh@kernel.org; mark.rutland@arm.com;
> > > shawnguo@kernel.org; linux-arm- kernel@lists.infradead.org;
> > > computersforpeace@gmail.com; frieder.schrempf@exceet.de;
> > > linux-kernel@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 <yogeshnarayan.gaur@nxp.com> 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 <yogeshnarayan.gaur@nxp.com>
> > > > ---
> > > >  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?

Ok, that might be the reason. I have rebased few days back.
Would rebase with current tip and add support in spi-mem interface too.
Yogesh Narayan Gaur Oct. 4, 2018, 12:07 p.m. | #5
Hi Boris,

> -----Original Message-----
> From: Yogesh Narayan Gaur
> Sent: Thursday, October 4, 2018 2:56 PM
> To: 'Boris Brezillon' <boris.brezillon@bootlin.com>
> Cc: linux-mtd@lists.infradead.org; marek.vasut@gmail.com; vigneshr@ti.com;
> linux-spi@vger.kernel.org; devicetree@vger.kernel.org; robh@kernel.org;
> mark.rutland@arm.com; shawnguo@kernel.org; linux-arm-
> kernel@lists.infradead.org; computersforpeace@gmail.com;
> frieder.schrempf@exceet.de; linux-kernel@vger.kernel.org
> Subject: RE: [PATCH 1/4] spi: add support for octal I/O data transfer
> 
> Hi Boris,
> 
> > -----Original Message-----
> > From: Boris Brezillon [mailto:boris.brezillon@bootlin.com]
> > Sent: Thursday, October 4, 2018 2:50 PM
> > To: Yogesh Narayan Gaur <yogeshnarayan.gaur@nxp.com>
> > Cc: linux-mtd@lists.infradead.org; marek.vasut@gmail.com;
> > vigneshr@ti.com; linux-spi@vger.kernel.org;
> > devicetree@vger.kernel.org; robh@kernel.org; mark.rutland@arm.com;
> > shawnguo@kernel.org; linux-arm- kernel@lists.infradead.org;
> > computersforpeace@gmail.com; frieder.schrempf@exceet.de;
> > linux-kernel@vger.kernel.org
> > Subject: Re: [PATCH 1/4] spi: add support for octal I/O data transfer
> >
> > On Thu, 4 Oct 2018 09:14:36 +0000
> > Yogesh Narayan Gaur <yogeshnarayan.gaur@nxp.com> wrote:
> >
> > > Hi Boris,
> > >
> > > > -----Original Message-----
> > > > From: Boris Brezillon [mailto:boris.brezillon@bootlin.com]
> > > > Sent: Thursday, October 4, 2018 2:35 PM
> > > > To: Yogesh Narayan Gaur <yogeshnarayan.gaur@nxp.com>
> > > > Cc: linux-mtd@lists.infradead.org; marek.vasut@gmail.com;
> > > > vigneshr@ti.com; linux-spi@vger.kernel.org;
> > > > devicetree@vger.kernel.org; robh@kernel.org; mark.rutland@arm.com;
> > > > shawnguo@kernel.org; linux-arm- kernel@lists.infradead.org;
> > > > computersforpeace@gmail.com; frieder.schrempf@exceet.de;
> > > > linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/4] spi: add
> > > > support for octal I/O data transfer
> > > >
> > > > Hi Yogesh,
> > > >
[...]
> > > > > +#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?
> 
> Ok, that might be the reason. I have rebased few days back.
> Would rebase with current tip and add support in spi-mem interface too.

I have rebased spi-next and currently on top but still my octal command support is working fine without any issue with current shared patch series, performed data sanity.

=>  git log  --pretty=oneline -3
	496c415717b8bb7d37181127fcfad0ba450eb10d mtd: spi-nor: fsl-quadspi: Don't let -EINVAL on the bus
	2336d3a7b125683c9e8b25d6efa6064310d19dbe mtd: devices: m25p80: Make sure WRITE_EN is issued before each write
	e55841874471282d32eec595997afce43a5f55c0 mtd: spi-nor: Support controllers with limited TX FIFO size

GIT Repo - 	git://git.infradead.org/linux-mtd.git
Branch -	remotes/origin/spi-nor/next

Also, I am not able to find string SPI_MEM_MAX_BUSWIDTH in current source code, can you share the GIT details where these changes are pushed.
--
Regards
Yogesh Gaur.
Boris Brezillon Oct. 4, 2018, 12:12 p.m. | #6
On Thu, 4 Oct 2018 12:07:17 +0000
Yogesh Narayan Gaur <yogeshnarayan.gaur@nxp.com> wrote:

> Hi Boris,
> 
> > -----Original Message-----
> > From: Yogesh Narayan Gaur
> > Sent: Thursday, October 4, 2018 2:56 PM
> > To: 'Boris Brezillon' <boris.brezillon@bootlin.com>
> > Cc: linux-mtd@lists.infradead.org; marek.vasut@gmail.com; vigneshr@ti.com;
> > linux-spi@vger.kernel.org; devicetree@vger.kernel.org; robh@kernel.org;
> > mark.rutland@arm.com; shawnguo@kernel.org; linux-arm-
> > kernel@lists.infradead.org; computersforpeace@gmail.com;
> > frieder.schrempf@exceet.de; linux-kernel@vger.kernel.org
> > Subject: RE: [PATCH 1/4] spi: add support for octal I/O data transfer
> > 
> > Hi Boris,
> >   
> > > -----Original Message-----
> > > From: Boris Brezillon [mailto:boris.brezillon@bootlin.com]
> > > Sent: Thursday, October 4, 2018 2:50 PM
> > > To: Yogesh Narayan Gaur <yogeshnarayan.gaur@nxp.com>
> > > Cc: linux-mtd@lists.infradead.org; marek.vasut@gmail.com;
> > > vigneshr@ti.com; linux-spi@vger.kernel.org;
> > > devicetree@vger.kernel.org; robh@kernel.org; mark.rutland@arm.com;
> > > shawnguo@kernel.org; linux-arm- kernel@lists.infradead.org;
> > > computersforpeace@gmail.com; frieder.schrempf@exceet.de;
> > > linux-kernel@vger.kernel.org
> > > Subject: Re: [PATCH 1/4] spi: add support for octal I/O data transfer
> > >
> > > On Thu, 4 Oct 2018 09:14:36 +0000
> > > Yogesh Narayan Gaur <yogeshnarayan.gaur@nxp.com> wrote:
> > >  
> > > > Hi Boris,
> > > >  
> > > > > -----Original Message-----
> > > > > From: Boris Brezillon [mailto:boris.brezillon@bootlin.com]
> > > > > Sent: Thursday, October 4, 2018 2:35 PM
> > > > > To: Yogesh Narayan Gaur <yogeshnarayan.gaur@nxp.com>
> > > > > Cc: linux-mtd@lists.infradead.org; marek.vasut@gmail.com;
> > > > > vigneshr@ti.com; linux-spi@vger.kernel.org;
> > > > > devicetree@vger.kernel.org; robh@kernel.org; mark.rutland@arm.com;
> > > > > shawnguo@kernel.org; linux-arm- kernel@lists.infradead.org;
> > > > > computersforpeace@gmail.com; frieder.schrempf@exceet.de;
> > > > > linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/4] spi: add
> > > > > support for octal I/O data transfer
> > > > >
> > > > > Hi Yogesh,
> > > > >  
> [...]
> > > > > > +#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?  
> > 
> > Ok, that might be the reason. I have rebased few days back.
> > Would rebase with current tip and add support in spi-mem interface too.  
> 
> I have rebased spi-next and currently on top but still my octal command support is working fine without any issue with current shared patch series, performed data sanity.
> 
> =>  git log  --pretty=oneline -3  
> 	496c415717b8bb7d37181127fcfad0ba450eb10d mtd: spi-nor: fsl-quadspi: Don't let -EINVAL on the bus
> 	2336d3a7b125683c9e8b25d6efa6064310d19dbe mtd: devices: m25p80: Make sure WRITE_EN is issued before each write
> 	e55841874471282d32eec595997afce43a5f55c0 mtd: spi-nor: Support controllers with limited TX FIFO size
> 
> GIT Repo - 	git://git.infradead.org/linux-mtd.git
> Branch -	remotes/origin/spi-nor/next
> 
> Also, I am not able to find string SPI_MEM_MAX_BUSWIDTH in current source code, can you share the GIT details where these changes are pushed.

It's in Mark's tree [1] (spi-next != spi-nor/next).

[1]https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git/log/?h=for-next

Patch

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;