feat(gdma): support gdma sleep retention on s31

This commit is contained in:
Chen Jichang
2026-05-13 18:09:17 +08:00
parent fbd587f10d
commit cc3edfa727
8 changed files with 179 additions and 82 deletions
@@ -435,6 +435,10 @@ config SOC_GDMA_SUPPORT_ETM
bool
default y
config SOC_GDMA_SUPPORT_SLEEP_RETENTION
bool
default y
config SOC_GDMA_EXT_MEM_ENC_ALIGNMENT
int
default 16
@@ -39,40 +39,43 @@ typedef enum periph_retention_module {
SLEEP_RETENTION_MODULE_AXI_DMA_CH0 = 15,
SLEEP_RETENTION_MODULE_AXI_DMA_CH1 = 16,
SLEEP_RETENTION_MODULE_AXI_DMA_CH2 = 17,
/* LP_AHB_DMA by channel */
SLEEP_RETENTION_MODULE_LP_AHB_DMA_CH0 = 18,
SLEEP_RETENTION_MODULE_LP_AHB_DMA_CH1 = 19,
/* MISC Peripherals */
SLEEP_RETENTION_MODULE_UART0 = 18,
SLEEP_RETENTION_MODULE_UART1 = 19,
SLEEP_RETENTION_MODULE_UART2 = 20,
SLEEP_RETENTION_MODULE_UART3 = 21,
SLEEP_RETENTION_MODULE_RMT0 = 22,
SLEEP_RETENTION_MODULE_I2S0 = 23,
SLEEP_RETENTION_MODULE_I2S1 = 24,
SLEEP_RETENTION_MODULE_I2C0 = 25,
SLEEP_RETENTION_MODULE_I2C1 = 26,
SLEEP_RETENTION_MODULE_ETM0 = 27,
SLEEP_RETENTION_MODULE_TWAI0 = 28,
SLEEP_RETENTION_MODULE_TWAI1 = 29,
SLEEP_RETENTION_MODULE_PARLIO0 = 30,
SLEEP_RETENTION_MODULE_GPSPI2 = 31,
SLEEP_RETENTION_MODULE_GPSPI3 = 32,
SLEEP_RETENTION_MODULE_LEDC0 = 33,
SLEEP_RETENTION_MODULE_LEDC1 = 34,
SLEEP_RETENTION_MODULE_MCPWM0 = 35,
SLEEP_RETENTION_MODULE_MCPWM1 = 36,
SLEEP_RETENTION_MODULE_MCPWM2 = 37,
SLEEP_RETENTION_MODULE_MCPWM3 = 38,
SLEEP_RETENTION_MODULE_SDM0 = 39,
SLEEP_RETENTION_MODULE_LCDCAM = 40,
SLEEP_RETENTION_MODULE_JPEG = 41,
SLEEP_RETENTION_MODULE_UART0 = 20,
SLEEP_RETENTION_MODULE_UART1 = 21,
SLEEP_RETENTION_MODULE_UART2 = 22,
SLEEP_RETENTION_MODULE_UART3 = 23,
SLEEP_RETENTION_MODULE_RMT0 = 24,
SLEEP_RETENTION_MODULE_I2S0 = 25,
SLEEP_RETENTION_MODULE_I2S1 = 26,
SLEEP_RETENTION_MODULE_I2C0 = 27,
SLEEP_RETENTION_MODULE_I2C1 = 28,
SLEEP_RETENTION_MODULE_ETM0 = 29,
SLEEP_RETENTION_MODULE_TWAI0 = 30,
SLEEP_RETENTION_MODULE_TWAI1 = 31,
SLEEP_RETENTION_MODULE_PARLIO0 = 32,
SLEEP_RETENTION_MODULE_GPSPI2 = 33,
SLEEP_RETENTION_MODULE_GPSPI3 = 34,
SLEEP_RETENTION_MODULE_LEDC0 = 35,
SLEEP_RETENTION_MODULE_LEDC1 = 36,
SLEEP_RETENTION_MODULE_MCPWM0 = 37,
SLEEP_RETENTION_MODULE_MCPWM1 = 38,
SLEEP_RETENTION_MODULE_MCPWM2 = 39,
SLEEP_RETENTION_MODULE_MCPWM3 = 40,
SLEEP_RETENTION_MODULE_SDM0 = 41,
SLEEP_RETENTION_MODULE_LCDCAM = 42,
SLEEP_RETENTION_MODULE_JPEG = 43,
/* Modem module, which includes WiFi, BLE and 802.15.4 */
SLEEP_RETENTION_MODULE_WIFI_MAC = 43,
SLEEP_RETENTION_MODULE_WIFI_BB = 44,
SLEEP_RETENTION_MODULE_BLE_MAC = 45,
SLEEP_RETENTION_MODULE_BT_BB = 46,
SLEEP_RETENTION_MODULE_802154_MAC = 47,
SLEEP_RETENTION_MODULE_CLOCK_MODEM = 48,
SLEEP_RETENTION_MODULE_MODEM_PHY = 49,
SLEEP_RETENTION_MODULE_WIFI_MAC = 44,
SLEEP_RETENTION_MODULE_WIFI_BB = 45,
SLEEP_RETENTION_MODULE_BLE_MAC = 46,
SLEEP_RETENTION_MODULE_BT_BB = 47,
SLEEP_RETENTION_MODULE_802154_MAC = 48,
SLEEP_RETENTION_MODULE_CLOCK_MODEM = 49,
SLEEP_RETENTION_MODULE_MODEM_PHY = 50,
SLEEP_RETENTION_MODULE_MAX = SOC_PM_RETENTION_MODULE_NUM - 1
} periph_retention_module_t;
@@ -169,7 +169,7 @@
/*-------------------------- GDMA CAPS -------------------------------------*/
#define SOC_AHB_GDMA_VERSION 2
#define SOC_GDMA_SUPPORT_ETM 1
// #define SOC_GDMA_SUPPORT_SLEEP_RETENTION 1 // TODO: [ESP32S31] IDF-14760
#define SOC_GDMA_SUPPORT_SLEEP_RETENTION 1
#define SOC_GDMA_EXT_MEM_ENC_ALIGNMENT (16)
/*-------------------------- APM CAPS ----------------------------------------*/
-1
View File
@@ -49,7 +49,6 @@ extern "C" {
#define REGDMA_MODEM_BT_BB_LINK(_pri) ((0x15 << 8) | _pri)
#define REGDMA_MODEM_IEEE802154_LINK(_pri) ((0x16 << 8) | _pri)
#define REGDMA_GDMA_LINK(_pri) ((0x17 << 8) | _pri)
#define REGDMA_AHB_DMA_LINK(_pri) ((0x17 << 8) | _pri)
#define REGDMA_I2C_LINK(_pri) ((0x18 << 8) | _pri)
#define REGDMA_RMT_LINK(_pri) ((0x19 << 8) | _pri)
#define REGDMA_TG0_WDT_LINK(_pri) ((0x1A << 8) | _pri)