summaryrefslogtreecommitdiff
path: root/drivers/spi/cadence_qspi_apb.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2019-04-14 00:03:06 -0400
committerTom Rini <trini@konsulko.com>2019-04-14 00:03:06 -0400
commit216800acf1fbf9f498455bf3c92d4513d9a4c681 (patch)
tree08ee65c9c73a954c71b6f6051725338f0f23fdcb /drivers/spi/cadence_qspi_apb.c
parentcf5eebeb18f7790d5030eb94f51fca0ebcd6e406 (diff)
parent59aea29a31869ed0fd5ffc4b95050db966fcaf6d (diff)
Merge branch 'master' of git://git.denx.de/u-boot-spi
Conflicts: arch/arm/dts/armada-385-amc.dts arch/arm/dts/armada-xp-theadorable.dts arch/arm/dts/stm32mp157c-ev1-u-boot.dtsi Signed-off-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'drivers/spi/cadence_qspi_apb.c')
-rw-r--r--drivers/spi/cadence_qspi_apb.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/spi/cadence_qspi_apb.c b/drivers/spi/cadence_qspi_apb.c
index a8af3520303..55a7501913a 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. */