diff mbox series

[U-Boot,v2] spi: cadence_qspi: Add quad write support

Message ID 1551245774-39693-1-git-send-email-ley.foon.tan@intel.com
State Accepted
Delegated to: Jagannadha Sutradharudu Teki
Headers show
Series [U-Boot,v2] spi: cadence_qspi: Add quad write support | expand

Commit Message

Ley Foon Tan Feb. 27, 2019, 5:36 a.m. UTC
Use quad write if SPI_TX_QUAD flag is set.

Tested quad write on Stratix 10 SoC board (Micron
serial NOR flash, mt25qu02g)

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>

---
v1 -> v2:
- Update commit message
- Restore file permission
---
 drivers/spi/cadence_qspi.c     | 2 +-
 drivers/spi/cadence_qspi.h     | 2 +-
 drivers/spi/cadence_qspi_apb.c | 7 ++++++-
 3 files changed, 8 insertions(+), 3 deletions(-)

Comments

Jagan Teki March 4, 2019, 12:23 p.m. UTC | #1
On Wed, Feb 27, 2019 at 11:06 AM Ley Foon Tan <ley.foon.tan@intel.com> wrote:
>
> Use quad write if SPI_TX_QUAD flag is set.
>
> Tested quad write on Stratix 10 SoC board (Micron
> serial NOR flash, mt25qu02g)
>
> Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
>
> ---
> v1 -> v2:
> - Update commit message
> - Restore file permission
> ---

Reviewed-by: Jagan Teki <jagan@openedev.com>
Ley Foon Tan March 25, 2019, 5:24 a.m. UTC | #2
On Mon, Mar 4, 2019 at 8:24 PM Jagan Teki <jagan@amarulasolutions.com> wrote:
>
> On Wed, Feb 27, 2019 at 11:06 AM Ley Foon Tan <ley.foon.tan@intel.com> wrote:
> >
> > Use quad write if SPI_TX_QUAD flag is set.
> >
> > Tested quad write on Stratix 10 SoC board (Micron
> > serial NOR flash, mt25qu02g)
> >
> > Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
> >
> > ---
> > v1 -> v2:
> > - Update commit message
> > - Restore file permission
> > ---
>
> Reviewed-by: Jagan Teki <jagan@openedev.com>
Hi Jagan

Will you merge this patch to next Uboot version?

Regards
Ley Foon
Marek Vasut March 25, 2019, 10:51 a.m. UTC | #3
On 3/25/19 6:24 AM, Ley Foon Tan wrote:
> On Mon, Mar 4, 2019 at 8:24 PM Jagan Teki <jagan@amarulasolutions.com> wrote:
>>
>> On Wed, Feb 27, 2019 at 11:06 AM Ley Foon Tan <ley.foon.tan@intel.com> wrote:
>>>
>>> Use quad write if SPI_TX_QUAD flag is set.
>>>
>>> Tested quad write on Stratix 10 SoC board (Micron
>>> serial NOR flash, mt25qu02g)
>>>
>>> Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
>>>
>>> ---
>>> v1 -> v2:
>>> - Update commit message
>>> - Restore file permission
>>> ---
>>
>> Reviewed-by: Jagan Teki <jagan@openedev.com>
> Hi Jagan
> 
> Will you merge this patch to next Uboot version?

At this point, that's for 2019.07 indeed.
Ley Foon Tan March 26, 2019, 5:11 a.m. UTC | #4
On Mon, Mar 25, 2019 at 6:54 PM Marek Vasut <marek.vasut@gmail.com> wrote:
>
> On 3/25/19 6:24 AM, Ley Foon Tan wrote:
> > On Mon, Mar 4, 2019 at 8:24 PM Jagan Teki <jagan@amarulasolutions.com> wrote:
> >>
> >> On Wed, Feb 27, 2019 at 11:06 AM Ley Foon Tan <ley.foon.tan@intel.com> wrote:
> >>>
> >>> Use quad write if SPI_TX_QUAD flag is set.
> >>>
> >>> Tested quad write on Stratix 10 SoC board (Micron
> >>> serial NOR flash, mt25qu02g)
> >>>
> >>> Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
> >>>
> >>> ---
> >>> v1 -> v2:
> >>> - Update commit message
> >>> - Restore file permission
> >>> ---
> >>
> >> Reviewed-by: Jagan Teki <jagan@openedev.com>
> > Hi Jagan
> >
> > Will you merge this patch to next Uboot version?
>
> At this point, that's for 2019.07 indeed.
>
Okay.

Thanks.

Regards
Ley Foon
Jagan Teki April 3, 2019, 6:13 a.m. UTC | #5
On Wed, Feb 27, 2019 at 11:06 AM Ley Foon Tan <ley.foon.tan@intel.com> wrote:
>
> Use quad write if SPI_TX_QUAD flag is set.
>
> Tested quad write on Stratix 10 SoC board (Micron
> serial NOR flash, mt25qu02g)
>
> Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
>
> ---

Applied to u-boot-spi/master
Marek Vasut April 3, 2019, 11:46 a.m. UTC | #6
On 4/3/19 8:13 AM, Jagan Teki wrote:
> On Wed, Feb 27, 2019 at 11:06 AM Ley Foon Tan <ley.foon.tan@intel.com> wrote:
>>
>> Use quad write if SPI_TX_QUAD flag is set.
>>
>> Tested quad write on Stratix 10 SoC board (Micron
>> serial NOR flash, mt25qu02g)
>>
>> Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
>>
>> ---
> 
> Applied to u-boot-spi/master

That means it goes into THIS release ? If so, NAK.
Jagan Teki April 4, 2019, 8:38 a.m. UTC | #7
On Wed, Apr 3, 2019 at 5:22 PM Marek Vasut <marex@denx.de> wrote:
>
> On 4/3/19 8:13 AM, Jagan Teki wrote:
> > On Wed, Feb 27, 2019 at 11:06 AM Ley Foon Tan <ley.foon.tan@intel.com> wrote:
> >>
> >> Use quad write if SPI_TX_QUAD flag is set.
> >>
> >> Tested quad write on Stratix 10 SoC board (Micron
> >> serial NOR flash, mt25qu02g)
> >>
> >> Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
> >>
> >> ---
> >
> > Applied to u-boot-spi/master
>
> That means it goes into THIS release ? If so, NAK.

for next release.
diff mbox series

Patch

diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c
index 11fce9c4fe..efdb178450 100644
--- a/drivers/spi/cadence_qspi.c
+++ b/drivers/spi/cadence_qspi.c
@@ -256,7 +256,7 @@  static int cadence_spi_xfer(struct udevice *dev, unsigned int bitlen,
 		break;
 		case CQSPI_INDIRECT_WRITE:
 			err = cadence_qspi_apb_indirect_write_setup
-				(plat, priv->cmd_len, cmd_buf);
+				(plat, priv->cmd_len, dm_plat->mode, cmd_buf);
 			if (!err) {
 				err = cadence_qspi_apb_indirect_write_execute
 				(plat, data_bytes, dout);
diff --git a/drivers/spi/cadence_qspi.h b/drivers/spi/cadence_qspi.h
index 055900def0..b491407130 100644
--- a/drivers/spi/cadence_qspi.h
+++ b/drivers/spi/cadence_qspi.h
@@ -60,7 +60,7 @@  int cadence_qspi_apb_indirect_read_setup(struct cadence_spi_platdata *plat,
 int cadence_qspi_apb_indirect_read_execute(struct cadence_spi_platdata *plat,
 	unsigned int rxlen, u8 *rxbuf);
 int cadence_qspi_apb_indirect_write_setup(struct cadence_spi_platdata *plat,
-	unsigned int cmdlen, const u8 *cmdbuf);
+	unsigned int cmdlen, unsigned int tx_width, const u8 *cmdbuf);
 int cadence_qspi_apb_indirect_write_execute(struct cadence_spi_platdata *plat,
 	unsigned int txlen, const u8 *txbuf);
 
diff --git a/drivers/spi/cadence_qspi_apb.c b/drivers/spi/cadence_qspi_apb.c
index a8af352030..55a7501913 100644
--- a/drivers/spi/cadence_qspi_apb.c
+++ b/drivers/spi/cadence_qspi_apb.c
@@ -77,6 +77,7 @@ 
 
 #define	CQSPI_REG_WR_INSTR			0x08
 #define	CQSPI_REG_WR_INSTR_OPCODE_LSB		0
+#define	CQSPI_REG_WR_INSTR_TYPE_DATA_LSB	16
 
 #define	CQSPI_REG_DELAY				0x0C
 #define	CQSPI_REG_DELAY_TSLCH_LSB		0
@@ -686,7 +687,7 @@  failrd:
 
 /* Opcode + Address (3/4 bytes) */
 int cadence_qspi_apb_indirect_write_setup(struct cadence_spi_platdata *plat,
-	unsigned int cmdlen, const u8 *cmdbuf)
+	unsigned int cmdlen, unsigned int tx_width, const u8 *cmdbuf)
 {
 	unsigned int reg;
 	unsigned int addr_bytes = cmdlen > 4 ? 4 : 3;
@@ -702,6 +703,10 @@  int cadence_qspi_apb_indirect_write_setup(struct cadence_spi_platdata *plat,
 
 	/* Configure the opcode */
 	reg = cmdbuf[0] << CQSPI_REG_WR_INSTR_OPCODE_LSB;
+
+	if (tx_width & SPI_TX_QUAD)
+		reg |= CQSPI_INST_TYPE_QUAD << CQSPI_REG_WR_INSTR_TYPE_DATA_LSB;
+
 	writel(reg, plat->regbase + CQSPI_REG_WR_INSTR);
 
 	/* Setup write address. */