Lines Matching refs:channel

302 static int dma_silabs_configure(const struct device *dev, uint32_t channel,  in dma_silabs_configure()  argument
306 struct dma_silabs_channel *chan_conf = &data->dma_chan_table[channel]; in dma_silabs_configure()
310 if (channel > data->dma_ctx.dma_channels) { in dma_silabs_configure()
319 LOG_ERR("DMA channel %u is busy", channel); in dma_silabs_configure()
339 LDMA_StopTransfer(channel); in dma_silabs_configure()
403 atomic_set_bit(data->dma_ctx.atomic, channel); in dma_silabs_configure()
408 static int dma_silabs_start(const struct device *dev, uint32_t channel) in dma_silabs_start() argument
412 struct dma_silabs_channel *chan = &data->dma_chan_table[channel]; in dma_silabs_start()
414 if (channel > data->dma_ctx.dma_channels) { in dma_silabs_start()
420 LDMA_StartTransfer(channel, &chan->xfer_config, chan->desc); in dma_silabs_start()
425 static int dma_silabs_stop(const struct device *dev, uint32_t channel) in dma_silabs_stop() argument
428 struct dma_silabs_channel *chan = &data->dma_chan_table[channel]; in dma_silabs_stop()
430 if (channel > data->dma_ctx.dma_channels) { in dma_silabs_stop()
434 LDMA_StopTransfer(channel); in dma_silabs_stop()
438 LDMA_IntClear(BIT(channel)); in dma_silabs_stop()
443 static int dma_silabs_get_status(const struct device *dev, uint32_t channel, in dma_silabs_get_status() argument
448 if (channel > data->dma_ctx.dma_channels) { in dma_silabs_get_status()
452 if (!atomic_test_bit(data->dma_ctx.atomic, channel)) { in dma_silabs_get_status()
456 status->busy = data->dma_chan_table[channel].busy; in dma_silabs_get_status()
457 status->dir = data->dma_chan_table[channel].dir; in dma_silabs_get_status()