mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-09 12:35:28 +00:00
gdma: dynamic alloc DMA channels
This commit is contained in:
@@ -23,6 +23,8 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define GDMA_LL_GET_HW(id) (((id) == 0) ? (&GDMA) : NULL)
|
||||
|
||||
#define GDMA_LL_EVENT_TX_FIFO_UDF (1<<12)
|
||||
#define GDMA_LL_EVENT_TX_FIFO_OVF (1<<11)
|
||||
#define GDMA_LL_EVENT_RX_FIFO_UDF (1<<10)
|
||||
@@ -37,22 +39,6 @@ extern "C" {
|
||||
#define GDMA_LL_EVENT_RX_SUC_EOF (1<<1)
|
||||
#define GDMA_LL_EVENT_RX_DONE (1<<0)
|
||||
|
||||
#define GDMA_LL_TRIG_SRC_SPI2 (0)
|
||||
#define GDMA_LL_TRIG_SRC_UART (2)
|
||||
#define GDMA_LL_TRIG_SRC_I2S0 (3)
|
||||
#define GDMA_LL_TRIG_SRC_AES (6)
|
||||
#define GDMA_LL_TRIG_SRC_SHA (7)
|
||||
#define GDMA_LL_TRIG_SRC_ADC_DAC (8)
|
||||
|
||||
typedef enum {
|
||||
GDMA_LL_PERIPH_ID_SPI2 = 0,
|
||||
GDMA_LL_PERIPH_ID_UART = 2,
|
||||
GDMA_LL_PERIPH_ID_I2S0 = 3,
|
||||
GDMA_LL_PERIPH_ID_AES = 6,
|
||||
GDMA_LL_PERIPH_ID_SHA = 7,
|
||||
GDMA_LL_PERIPH_ID_ADC_DAC = 8,
|
||||
} gdma_ll_periph_id_t;
|
||||
|
||||
///////////////////////////////////// Common /////////////////////////////////////////
|
||||
/**
|
||||
* @brief Enable DMA channel M2M mode (TX channel n forward data to RX channel n), disabled by default
|
||||
@@ -256,7 +242,7 @@ static inline void gdma_ll_rx_set_priority(gdma_dev_t *dev, uint32_t channel, ui
|
||||
/**
|
||||
* @brief Connect DMA RX channel to a given peripheral
|
||||
*/
|
||||
static inline void gdma_ll_rx_connect_to_periph(gdma_dev_t *dev, uint32_t channel, gdma_ll_periph_id_t periph_id)
|
||||
static inline void gdma_ll_rx_connect_to_periph(gdma_dev_t *dev, uint32_t channel, int periph_id)
|
||||
{
|
||||
dev->channel[channel].in.in_peri_sel.sel = periph_id;
|
||||
}
|
||||
@@ -414,7 +400,7 @@ static inline void gdma_ll_tx_set_priority(gdma_dev_t *dev, uint32_t channel, ui
|
||||
/**
|
||||
* @brief Connect DMA TX channel to a given peripheral
|
||||
*/
|
||||
static inline void gdma_ll_tx_connect_to_periph(gdma_dev_t *dev, uint32_t channel, gdma_ll_periph_id_t periph_id)
|
||||
static inline void gdma_ll_tx_connect_to_periph(gdma_dev_t *dev, uint32_t channel, int periph_id)
|
||||
{
|
||||
dev->channel[channel].out.out_peri_sel.sel = periph_id;
|
||||
}
|
||||
|
Reference in New Issue
Block a user