Skip to content

Commit 1751b20

Browse files
ananglcarlescufi
authored andcommitted
drivers: mspi_sqspi: Align with recent bug fixes in sQSPI driver
Now the `data_bit_reorder_unit` and `data_swap_unit` fields in the `nrfx_qspi2_data_fmt_t` structure must match, otherwise the call to `nrfx_qspi2_dev_data_fmt_set()` fails (what in fact happened unnoticed by CI because of a missing check of the return value). Update the `nrfx_qspi2_data_fmt_t` structure initialization and also add missing checks of the return value in calls to nrfx_qspi2 driver APIs. Signed-off-by: Andrzej Głąbek <[email protected]> (cherry picked from commit 1f4e54c)
1 parent 1bed797 commit 1751b20

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

drivers/mspi/mspi_sqspi.c

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -487,12 +487,13 @@ static int dev_init(const struct device *dev)
487487
.cmd_bit_order = NRFX_QSPI2_DATA_FMT_BIT_ORDER_MSB_FIRST,
488488
.addr_bit_order = NRFX_QSPI2_DATA_FMT_BIT_ORDER_MSB_FIRST,
489489
.data_bit_order = NRFX_QSPI2_DATA_FMT_BIT_ORDER_MSB_FIRST,
490-
.data_bit_reorder_unit = 0,
490+
.data_bit_reorder_unit = 8,
491491
.data_container = 32,
492492
.data_swap_unit = 8,
493493
.data_padding = NRFX_QSPI2_DATA_FMT_PAD_RAW,
494494
};
495495
int rc;
496+
nrfx_err_t err;
496497

497498
k_sem_init(&dev_data->finished, 0, 1);
498499
k_sem_init(&dev_data->ctx_lock, 1, 1);
@@ -513,9 +514,17 @@ static int dev_init(const struct device *dev)
513514
IRQ_CONNECT(DT_IRQN(VPR_NODE), DT_IRQ(VPR_NODE, priority),
514515
nrfx_isr, nrfx_qspi2_irq_handler, 0);
515516

516-
nrfx_qspi2_init(&dev_config->qspi2, &qspi2_cfg);
517+
err = nrfx_qspi2_init(&dev_config->qspi2, &qspi2_cfg);
518+
if (err != NRFX_SUCCESS) {
519+
LOG_ERR("nrfx_qspi2_init() failed: %08x", err);
520+
return -EIO;
521+
}
517522

518-
nrfx_qspi2_dev_data_fmt_set(&dev_config->qspi2, &qspi2_data_fmt);
523+
err = nrfx_qspi2_dev_data_fmt_set(&dev_config->qspi2, &qspi2_data_fmt);
524+
if (err != NRFX_SUCCESS) {
525+
LOG_ERR("nrfx_qspi2_dev_data_fmt_set() failed: %08x", err);
526+
return -EIO;
527+
}
519528

520529
for (ce_gpio = dev_config->ce_gpios;
521530
ce_gpio < &dev_config->ce_gpios[dev_config->ce_gpios_len];

0 commit comments

Comments
 (0)