Lines Matching refs:dma_chan

136 static inline periph_module_t get_dma_periph(int dma_chan)  in get_dma_periph()  argument
138 assert(dma_chan >= 1 && dma_chan <= SOC_SPI_DMA_CHAN_NUM); in get_dma_periph()
140 if (dma_chan == 1) { in get_dma_periph()
142 } else if (dma_chan == 2) { in get_dma_periph()
152 static bool claim_dma_chan(int dma_chan, uint32_t *out_actual_dma_chan) in claim_dma_chan() argument
157 bool is_used = (BIT(dma_chan) & spi_dma_chan_enabled); in claim_dma_chan()
159 spi_dma_chan_enabled |= BIT(dma_chan); in claim_dma_chan()
160 periph_module_enable(get_dma_periph(dma_chan)); in claim_dma_chan()
161 *out_actual_dma_chan = dma_chan; in claim_dma_chan()
169 static void connect_spi_and_dma(spi_host_device_t host, int dma_chan) in connect_spi_and_dma() argument
172 DPORT_SET_PERI_REG_BITS(DPORT_SPI_DMA_CHAN_SEL_REG, 3, dma_chan, (host * 2)); in connect_spi_and_dma()
178 static esp_err_t alloc_dma_chan(spi_host_device_t host_id, spi_dma_chan_t dma_chan, uint32_t *out_a… in alloc_dma_chan() argument
182 assert(dma_chan > SPI_DMA_DISABLED && dma_chan <= SPI_DMA_CH_AUTO); in alloc_dma_chan()
184 assert(dma_chan == (int)host_id || dma_chan == SPI_DMA_CH_AUTO); in alloc_dma_chan()
191 if (dma_chan == SPI_DMA_CH_AUTO) { in alloc_dma_chan()
204 success = claim_dma_chan((int)dma_chan, &actual_dma_chan); in alloc_dma_chan()
221 static esp_err_t alloc_dma_chan(spi_host_device_t host_id, spi_dma_chan_t dma_chan, uint32_t *out_a… in alloc_dma_chan() argument
224 assert(dma_chan == SPI_DMA_CH_AUTO); in alloc_dma_chan()
229 if (dma_chan == SPI_DMA_CH_AUTO) { in alloc_dma_chan()
266 esp_err_t spicommon_dma_chan_alloc(spi_host_device_t host_id, spi_dma_chan_t dma_chan, uint32_t *ou… in spicommon_dma_chan_alloc() argument
270 assert(dma_chan > SPI_DMA_DISABLED && dma_chan <= SPI_DMA_CH_AUTO); in spicommon_dma_chan_alloc()
272 assert(dma_chan == (int)host_id || dma_chan == SPI_DMA_CH_AUTO); in spicommon_dma_chan_alloc()
286 ret = alloc_dma_chan(host_id, dma_chan, &actual_tx_dma_chan, &actual_rx_dma_chan); in spicommon_dma_chan_alloc()
330 int dma_chan = ctx->bus_attr.tx_dma_chan; in dma_chan_free() local
331 assert(spi_dma_chan_enabled & BIT(dma_chan)); in dma_chan_free()
334 spi_dma_chan_enabled &= ~BIT(dma_chan); in dma_chan_free()
335 periph_module_disable(get_dma_periph(dma_chan)); in dma_chan_free()
759 …_initialize(spi_host_device_t host_id, const spi_bus_config_t *bus_config, spi_dma_chan_t dma_chan) in spi_bus_initialize() argument
770 …SPI_CHECK(dma_chan >= SPI_DMA_DISABLED && dma_chan <= SPI_DMA_CH_AUTO, "invalid dma channel", ESP_… in spi_bus_initialize()
772 …SPI_CHECK( dma_chan == SPI_DMA_DISABLED || dma_chan == (int)host_id || dma_chan == SPI_DMA_CH_AUTO… in spi_bus_initialize()
774 …SPI_CHECK( dma_chan == SPI_DMA_DISABLED || dma_chan == SPI_DMA_CH_AUTO, "invalid dma channel, chip… in spi_bus_initialize()
795 if (dma_chan != SPI_DMA_DISABLED) { in spi_bus_initialize()
798 err = alloc_dma_chan(host_id, dma_chan, &actual_tx_dma_chan, &actual_rx_dma_chan); in spi_bus_initialize()