Skip to content

Commit 28833fe

Browse files
committed
spi: atmel-quadspi: Write QSPI_IAR only when needed
The address must be written in QSPI_IAR only when we have a instruction frame with address but no data. Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
1 parent 4b636ed commit 28833fe

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

drivers/spi/atmel-quadspi.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -379,9 +379,11 @@ static int atmel_qspi_set_cfg(struct atmel_qspi *aq,
379379
/* Clear pending interrupts */
380380
(void)atmel_qspi_read(aq, QSPI_SR);
381381

382-
if (aq->caps->has_ricr) {
383-
/* Set QSPI Instruction Frame registers */
382+
/* Set QSPI Instruction Frame registers. */
383+
if (op->addr.nbytes && !op->data.nbytes)
384384
atmel_qspi_write(iar, aq, QSPI_IAR);
385+
386+
if (aq->caps->has_ricr) {
385387
if (op->data.dir == SPI_MEM_DATA_IN)
386388
atmel_qspi_write(icr, aq, QSPI_RICR);
387389
else
@@ -391,8 +393,6 @@ static int atmel_qspi_set_cfg(struct atmel_qspi *aq,
391393
if (op->data.nbytes && op->data.dir == SPI_MEM_DATA_OUT)
392394
ifr |= QSPI_IFR_SAMA5D2_WRITE_TRSFR;
393395

394-
/* Set QSPI Instruction Frame registers */
395-
atmel_qspi_write(iar, aq, QSPI_IAR);
396396
atmel_qspi_write(icr, aq, QSPI_ICR);
397397
atmel_qspi_write(ifr, aq, QSPI_IFR);
398398
}

0 commit comments

Comments
 (0)