diff --git a/components/esp_hw_support/sleep_system_peripheral.c b/components/esp_hw_support/sleep_system_peripheral.c index 9a6c5e72923..2db76784f1d 100644 --- a/components/esp_hw_support/sleep_system_peripheral.c +++ b/components/esp_hw_support/sleep_system_peripheral.c @@ -298,6 +298,10 @@ bool peripheral_domain_pd_allowed(void) mask.bitmap[SLEEP_RETENTION_MODULE_LCDCAM >> 5] |= BIT(SLEEP_RETENTION_MODULE_LCDCAM % 32); #endif +#if SOC_H264_ENCODER_SUPPORTED + mask.bitmap[SLEEP_RETENTION_MODULE_H264 >> 5] |= BIT(SLEEP_RETENTION_MODULE_H264 % 32); +#endif + #if SOC_DMA2D_SUPPORTED mask.bitmap[SLEEP_RETENTION_MODULE_DMA2D >> 5] |= BIT(SLEEP_RETENTION_MODULE_DMA2D % 32); #endif diff --git a/components/soc/esp32p4/include/soc/Kconfig.soc_caps.in b/components/soc/esp32p4/include/soc/Kconfig.soc_caps.in index 9115d4f18f3..522699f5fbc 100644 --- a/components/soc/esp32p4/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32p4/include/soc/Kconfig.soc_caps.in @@ -2283,6 +2283,10 @@ config SOC_JPEG_ENCODE_SUPPORTED bool default y +config SOC_H264_ENCODER_SUPPORTED + bool + default y + config SOC_LCDCAM_CAM_SUPPORT_RGB_YUV_CONV bool default y diff --git a/components/soc/esp32p4/include/soc/retention_periph_defs.h b/components/soc/esp32p4/include/soc/retention_periph_defs.h index 584b7c1333b..2687b73f03a 100644 --- a/components/soc/esp32p4/include/soc/retention_periph_defs.h +++ b/components/soc/esp32p4/include/soc/retention_periph_defs.h @@ -61,6 +61,7 @@ typedef enum periph_retention_module { SLEEP_RETENTION_MODULE_MCPWM1 = 35, SLEEP_RETENTION_MODULE_PCNT0 = 36, SLEEP_RETENTION_MODULE_LCDCAM = 39, + SLEEP_RETENTION_MODULE_H264 = 40, SLEEP_RETENTION_MODULE_DMA2D = 41, SLEEP_RETENTION_MODULE_PPA = 42, @@ -106,6 +107,7 @@ typedef enum periph_retention_module { : ((m) == SLEEP_RETENTION_MODULE_MCPWM1) ? true \ : ((m) == SLEEP_RETENTION_MODULE_PCNT0) ? true \ : ((m) == SLEEP_RETENTION_MODULE_LCDCAM) ? true \ + : ((m) == SLEEP_RETENTION_MODULE_H264) ? true \ : ((m) == SLEEP_RETENTION_MODULE_DMA2D) ? true \ : ((m) == SLEEP_RETENTION_MODULE_PPA) ? true \ : false) diff --git a/components/soc/esp32p4/include/soc/soc_caps.h b/components/soc/esp32p4/include/soc/soc_caps.h index 4c136a62c8b..b17a171d03d 100644 --- a/components/soc/esp32p4/include/soc/soc_caps.h +++ b/components/soc/esp32p4/include/soc/soc_caps.h @@ -843,6 +843,9 @@ #define SOC_JPEG_DECODE_SUPPORTED (1) #define SOC_JPEG_ENCODE_SUPPORTED (1) +/*--------------------------- H264 --------------------------------*/ +#define SOC_H264_ENCODER_SUPPORTED (1) + /*--------------------------- CAM ---------------------------------*/ #define SOC_LCDCAM_CAM_SUPPORT_RGB_YUV_CONV (1) #define SOC_LCDCAM_CAM_PERIPH_NUM (1U) diff --git a/components/soc/include/soc/regdma.h b/components/soc/include/soc/regdma.h index 48ff734410f..690942d9b48 100644 --- a/components/soc/include/soc/regdma.h +++ b/components/soc/include/soc/regdma.h @@ -65,6 +65,7 @@ extern "C" { #define REGDMA_PCNT_LINK(_pri) ((0x25 << 8) | _pri) #define REGDMA_MCPWM_LINK(_pri) ((0x26 << 8) | _pri) #define REGDMA_LCDCAM_LINK(_pri) ((0x29 << 8) | _pri) +#define REGDMA_H264_LINK(_pri) ((0x2a << 8) | _pri) #define REGDMA_PPA_LINK(_pri) ((0x2B << 8) | _pri) #define REGDMA_DMA2D_LINK(_pri) ((0x2C << 8) | _pri) @@ -95,6 +96,7 @@ extern "C" { #define REGDMA_LINK_PRI_LEDC REGDMA_LINK_PRI_GENERAL_PERIPH #define REGDMA_LINK_PRI_MCPWM REGDMA_LINK_PRI_GENERAL_PERIPH #define REGDMA_LINK_PRI_LCDCAM REGDMA_LINK_PRI_GENERAL_PERIPH +#define REGDMA_LINK_PRI_H264 REGDMA_LINK_PRI_GENERAL_PERIPH #define REGDMA_LINK_PRI_PPA REGDMA_LINK_PRI_GENERAL_PERIPH #define REGDMA_LINK_PRI_DMA2D REGDMA_LINK_PRI_GENERAL_PERIPH