Skip to content

Commit 44b05a2

Browse files
drivers: dma: dma_nxp_edma: support MUX register in MP space
Some EDMA versions may have the channel MUX register in the MP region. To support this scenario, use the `EDMA_HAS_MP_MUX_FLAG` flag to figure out which channel MUX register to use (TCD or MP). Signed-off-by: Laurentiu Mihalcea <[email protected]>
1 parent 0a47f17 commit 44b05a2

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

drivers/dma/dma_nxp_edma.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,8 @@ static inline int edma_chan_cyclic_produce(struct edma_channel *chan,
417417
static inline void edma_dump_channel_registers(struct edma_data *data,
418418
uint32_t chan_id)
419419
{
420+
uint32_t mux_reg;
421+
420422
LOG_DBG("dumping channel data for channel %d", chan_id);
421423

422424
LOG_DBG("CH_CSR: 0x%x",
@@ -431,8 +433,13 @@ static inline void edma_dump_channel_registers(struct edma_data *data,
431433
EDMA_ChannelRegRead(data->hal_cfg, chan_id, EDMA_TCD_CH_PRI));
432434

433435
if (EDMA_HAS_MUX(data->hal_cfg)) {
434-
LOG_DBG("CH_MUX: 0x%x",
435-
EDMA_ChannelRegRead(data->hal_cfg, chan_id, EDMA_TCD_CH_MUX));
436+
if (data->hal_cfg->flags & EDMA_HAS_MP_MUX_FLAG) {
437+
mux_reg = EDMA_MP_CH_MUX;
438+
} else {
439+
mux_reg = EDMA_TCD_CH_MUX;
440+
}
441+
442+
LOG_DBG("CH_MUX: 0x%x", EDMA_ChannelRegRead(data->hal_cfg, chan_id, mux_reg));
436443
}
437444

438445
LOG_DBG("TCD_SADDR: 0x%x",

0 commit comments

Comments
 (0)