mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-02 20:24:32 +02:00
gdma: correct the dma trigger of uart
GDMA trigger actually is not assigned to UART controller, but for UHCI controller
This commit is contained in:
@@ -30,7 +30,7 @@ typedef struct gdma_channel_t *gdma_channel_handle_t;
|
|||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
GDMA_TRIG_PERIPH_M2M, /*!< GDMA trigger peripheral: M2M */
|
GDMA_TRIG_PERIPH_M2M, /*!< GDMA trigger peripheral: M2M */
|
||||||
GDMA_TRIG_PERIPH_UART, /*!< GDMA trigger peripheral: UART */
|
GDMA_TRIG_PERIPH_UHCI, /*!< GDMA trigger peripheral: UHCI */
|
||||||
GDMA_TRIG_PERIPH_SPI, /*!< GDMA trigger peripheral: SPI */
|
GDMA_TRIG_PERIPH_SPI, /*!< GDMA trigger peripheral: SPI */
|
||||||
GDMA_TRIG_PERIPH_I2S, /*!< GDMA trigger peripheral: I2S */
|
GDMA_TRIG_PERIPH_I2S, /*!< GDMA trigger peripheral: I2S */
|
||||||
GDMA_TRIG_PERIPH_AES, /*!< GDMA trigger peripheral: AES */
|
GDMA_TRIG_PERIPH_AES, /*!< GDMA trigger peripheral: AES */
|
||||||
@@ -124,13 +124,13 @@ typedef struct {
|
|||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
gdma_trigger_peripheral_t periph; /*!< Target peripheral which will trigger DMA operations */
|
gdma_trigger_peripheral_t periph; /*!< Target peripheral which will trigger DMA operations */
|
||||||
int instance_id; /*!< Peripheral instance ID. Supported IDs are listed in `soc/gdma_channel.h`, e.g. SOC_GDMA_TRIG_PERIPH_UART0 */
|
int instance_id; /*!< Peripheral instance ID. Supported IDs are listed in `soc/gdma_channel.h`, e.g. SOC_GDMA_TRIG_PERIPH_UHCI0 */
|
||||||
} gdma_trigger_t;
|
} gdma_trigger_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Helper macro to initialize GDMA trigger
|
* @brief Helper macro to initialize GDMA trigger
|
||||||
* @note value of `peri` must be selected from `gdma_trigger_peripheral_t` enum.
|
* @note value of `peri` must be selected from `gdma_trigger_peripheral_t` enum.
|
||||||
* e.g. GDMA_MAKE_TRIGGER(GDMA_TRIG_PERIPH_UART,0)
|
* e.g. GDMA_MAKE_TRIGGER(GDMA_TRIG_PERIPH_I2S,0)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#define GDMA_MAKE_TRIGGER(peri, id) \
|
#define GDMA_MAKE_TRIGGER(peri, id) \
|
||||||
|
@@ -17,7 +17,7 @@
|
|||||||
// The following macros have a format SOC_[periph][instance_id] to make it work with `GDMA_MAKE_TRIGGER`
|
// The following macros have a format SOC_[periph][instance_id] to make it work with `GDMA_MAKE_TRIGGER`
|
||||||
#define SOC_GDMA_TRIG_PERIPH_M2M0 (-1)
|
#define SOC_GDMA_TRIG_PERIPH_M2M0 (-1)
|
||||||
#define SOC_GDMA_TRIG_PERIPH_SPI2 (0)
|
#define SOC_GDMA_TRIG_PERIPH_SPI2 (0)
|
||||||
#define SOC_GDMA_TRIG_PERIPH_UART0 (2)
|
#define SOC_GDMA_TRIG_PERIPH_UHCI0 (2)
|
||||||
#define SOC_GDMA_TRIG_PERIPH_I2S0 (3)
|
#define SOC_GDMA_TRIG_PERIPH_I2S0 (3)
|
||||||
#define SOC_GDMA_TRIG_PERIPH_AES0 (6)
|
#define SOC_GDMA_TRIG_PERIPH_AES0 (6)
|
||||||
#define SOC_GDMA_TRIG_PERIPH_SHA0 (7)
|
#define SOC_GDMA_TRIG_PERIPH_SHA0 (7)
|
||||||
|
@@ -17,7 +17,7 @@
|
|||||||
// The following macros have a format SOC_[periph][instance_id] to make it work with `GDMA_MAKE_TRIGGER`
|
// The following macros have a format SOC_[periph][instance_id] to make it work with `GDMA_MAKE_TRIGGER`
|
||||||
#define SOC_GDMA_TRIG_PERIPH_M2M0 (-1)
|
#define SOC_GDMA_TRIG_PERIPH_M2M0 (-1)
|
||||||
#define SOC_GDMA_TRIG_PERIPH_SPI2 (0)
|
#define SOC_GDMA_TRIG_PERIPH_SPI2 (0)
|
||||||
#define SOC_GDMA_TRIG_PERIPH_UART0 (2)
|
#define SOC_GDMA_TRIG_PERIPH_UHCI0 (2)
|
||||||
#define SOC_GDMA_TRIG_PERIPH_I2S0 (3)
|
#define SOC_GDMA_TRIG_PERIPH_I2S0 (3)
|
||||||
#define SOC_GDMA_TRIG_PERIPH_AES0 (6)
|
#define SOC_GDMA_TRIG_PERIPH_AES0 (6)
|
||||||
#define SOC_GDMA_TRIG_PERIPH_SHA0 (7)
|
#define SOC_GDMA_TRIG_PERIPH_SHA0 (7)
|
||||||
|
@@ -18,7 +18,7 @@
|
|||||||
#define SOC_GDMA_TRIG_PERIPH_M2M0 (-1)
|
#define SOC_GDMA_TRIG_PERIPH_M2M0 (-1)
|
||||||
#define SOC_GDMA_TRIG_PERIPH_SPI2 (0)
|
#define SOC_GDMA_TRIG_PERIPH_SPI2 (0)
|
||||||
#define SOC_GDMA_TRIG_PERIPH_SPI3 (1)
|
#define SOC_GDMA_TRIG_PERIPH_SPI3 (1)
|
||||||
#define SOC_GDMA_TRIG_PERIPH_UART0 (2)
|
#define SOC_GDMA_TRIG_PERIPH_UHCI0 (2)
|
||||||
#define SOC_GDMA_TRIG_PERIPH_I2S0 (3)
|
#define SOC_GDMA_TRIG_PERIPH_I2S0 (3)
|
||||||
#define SOC_GDMA_TRIG_PERIPH_I2S1 (4)
|
#define SOC_GDMA_TRIG_PERIPH_I2S1 (4)
|
||||||
#define SOC_GDMA_TRIG_PERIPH_LCD0 (5)
|
#define SOC_GDMA_TRIG_PERIPH_LCD0 (5)
|
||||||
|
@@ -223,8 +223,8 @@ void uhci_uart_install(void)
|
|||||||
};
|
};
|
||||||
ESP_ERROR_CHECK(gdma_new_channel(&rx_channel_config, &s_rx_channel));
|
ESP_ERROR_CHECK(gdma_new_channel(&rx_channel_config, &s_rx_channel));
|
||||||
|
|
||||||
gdma_connect(s_tx_channel, GDMA_MAKE_TRIGGER(GDMA_TRIG_PERIPH_UART, 0));
|
gdma_connect(s_tx_channel, GDMA_MAKE_TRIGGER(GDMA_TRIG_PERIPH_UHCI, 0));
|
||||||
gdma_connect(s_rx_channel, GDMA_MAKE_TRIGGER(GDMA_TRIG_PERIPH_UART, 0));
|
gdma_connect(s_rx_channel, GDMA_MAKE_TRIGGER(GDMA_TRIG_PERIPH_UHCI, 0));
|
||||||
|
|
||||||
gdma_strategy_config_t strategy_config = {
|
gdma_strategy_config_t strategy_config = {
|
||||||
.auto_update_desc = false,
|
.auto_update_desc = false,
|
||||||
|
Reference in New Issue
Block a user