From d0e24e4a81e5278e24e5ef51c61308cac0959c02 Mon Sep 17 00:00:00 2001 From: Chen Jichang Date: Wed, 24 Sep 2025 18:00:15 +0800 Subject: [PATCH] refactor(hw_support): remove unused periph_module_t members --- .../esp_driver_spi/src/gpspi/spi_common.c | 2 +- .../esp_hal_timg/include/soc/timer_periph.h | 2 +- .../include/esp_private/esp_modem_clock.h | 12 +- .../include/esp_private/periph_ctrl.h | 16 +- components/esp_hw_support/modem_clock.c | 12 +- components/esp_hw_support/periph_ctrl.c | 14 +- .../hal/esp32/include/hal/clk_gate_ll.h | 126 +------------ .../hal/esp32c2/include/hal/clk_gate_ll.h | 101 +--------- .../hal/esp32c3/include/hal/clk_gate_ll.h | 137 +------------- .../hal/esp32c6/include/hal/clk_gate_ll.h | 146 +------------- .../hal/esp32h2/include/hal/clk_gate_ll.h | 178 +----------------- .../hal/esp32s2/include/hal/clk_gate_ll.h | 155 +-------------- .../hal/esp32s3/include/hal/clk_gate_ll.h | 163 +--------------- .../soc/esp32/include/soc/periph_defs.h | 25 +-- components/soc/esp32/lcd_periph.c | 2 - .../soc/esp32c2/include/soc/periph_defs.h | 21 +-- .../soc/esp32c3/include/soc/periph_defs.h | 24 +-- .../soc/esp32c5/include/soc/periph_defs.h | 48 +---- components/soc/esp32c5/parlio_periph.c | 1 - .../soc/esp32c6/include/soc/periph_defs.h | 25 +-- components/soc/esp32c6/parlio_periph.c | 1 - .../soc/esp32c61/include/soc/periph_defs.h | 20 +- .../soc/esp32h2/include/soc/periph_defs.h | 22 +-- components/soc/esp32h2/parlio_periph.c | 1 - .../soc/esp32h21/include/soc/periph_defs.h | 31 +-- .../soc/esp32h4/include/soc/periph_defs.h | 36 +--- components/soc/esp32p4/gdma_periph.c | 2 - .../soc/esp32p4/include/soc/periph_defs.h | 64 +------ components/soc/esp32p4/parlio_periph.c | 1 - .../soc/esp32s2/include/soc/periph_defs.h | 27 +-- components/soc/esp32s2/lcd_periph.c | 1 - .../soc/esp32s3/include/soc/periph_defs.h | 34 +--- components/soc/include/soc/cam_periph.h | 2 +- components/soc/include/soc/gdma_periph.h | 2 +- .../soc/include/soc/ieee802154_periph.h | 2 +- components/soc/include/soc/lcd_periph.h | 7 +- components/soc/include/soc/parlio_periph.h | 2 +- 37 files changed, 124 insertions(+), 1341 deletions(-) diff --git a/components/esp_driver_spi/src/gpspi/spi_common.c b/components/esp_driver_spi/src/gpspi/spi_common.c index 8464783e4f..f36c62590a 100644 --- a/components/esp_driver_spi/src/gpspi/spi_common.c +++ b/components/esp_driver_spi/src/gpspi/spi_common.c @@ -150,7 +150,7 @@ int spicommon_irqdma_source_for_host(spi_host_device_t host) #if !SOC_GDMA_SUPPORTED #if SPI_LL_DMA_SHARED -static inline periph_module_t get_dma_periph(int dma_chan) +static inline shared_periph_module_t get_dma_periph(int dma_chan) { assert(dma_chan >= 1 && dma_chan <= SOC_SPI_DMA_CHAN_NUM); if (dma_chan == 1) { diff --git a/components/esp_hal_timg/include/soc/timer_periph.h b/components/esp_hal_timg/include/soc/timer_periph.h index 7e7b215dcd..26cb7de642 100644 --- a/components/esp_hal_timg/include/soc/timer_periph.h +++ b/components/esp_hal_timg/include/soc/timer_periph.h @@ -28,7 +28,7 @@ extern "C" { typedef struct { const char *module_name; // Module name - const periph_module_t parent_module; // GPTimer is a submodule under the timer group + const shared_periph_module_t parent_module; // GPTimer is a submodule under the timer group const int irq_id; // interrupt source ID } soc_timg_gptimer_signal_desc_t; diff --git a/components/esp_hw_support/include/esp_private/esp_modem_clock.h b/components/esp_hw_support/include/esp_private/esp_modem_clock.h index 1fd4079944..cbf7edacd3 100644 --- a/components/esp_hw_support/include/esp_private/esp_modem_clock.h +++ b/components/esp_hw_support/include/esp_private/esp_modem_clock.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -43,7 +43,7 @@ extern "C" { * * @param module modem module */ -void modem_clock_module_enable(periph_module_t module); +void modem_clock_module_enable(shared_periph_module_t module); /** * @brief Disable the clock of modem module @@ -60,7 +60,7 @@ void modem_clock_module_enable(periph_module_t module); * * @param module modem module */ -void modem_clock_module_disable(periph_module_t module); +void modem_clock_module_disable(shared_periph_module_t module); /** * @brief Reset the mac of modem module @@ -68,7 +68,7 @@ void modem_clock_module_disable(periph_module_t module); * @param module modem module, must be one of * PERIPH_WIFI_MODULE / PERIPH_BT_MODULE /PERIPH_IEEE802154_MODULE */ -void modem_clock_module_mac_reset(periph_module_t module); +void modem_clock_module_mac_reset(shared_periph_module_t module); #if SOC_BLE_USE_WIFI_PWR_CLK_WORKAROUND /** @@ -103,13 +103,13 @@ esp_err_t modem_clock_domain_clk_gate_disable(modem_clock_domain_t domain, pmu_h * @param src lowpower clock source * @param divider divider value to lowpower clock source */ -void modem_clock_select_lp_clock_source(periph_module_t module, modem_clock_lpclk_src_t src, uint32_t divider); +void modem_clock_select_lp_clock_source(shared_periph_module_t module, modem_clock_lpclk_src_t src, uint32_t divider); /** * @brief Disable lowpower clock source selection * @param module modem module */ -void modem_clock_deselect_lp_clock_source(periph_module_t module); +void modem_clock_deselect_lp_clock_source(shared_periph_module_t module); /** * @brief Disable all modem module's lowpower clock source selection diff --git a/components/esp_hw_support/include/esp_private/periph_ctrl.h b/components/esp_hw_support/include/esp_private/periph_ctrl.h index ea9910c315..cfbdc1fbe1 100644 --- a/components/esp_hw_support/include/esp_private/periph_ctrl.h +++ b/components/esp_hw_support/include/esp_private/periph_ctrl.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -54,10 +54,10 @@ extern "C" { /** @cond */ // The following functions are not intended to be used directly by the developers -uint8_t periph_rcc_acquire_enter(periph_module_t periph); -void periph_rcc_acquire_exit(periph_module_t periph, uint8_t ref_count); -uint8_t periph_rcc_release_enter(periph_module_t periph); -void periph_rcc_release_exit(periph_module_t periph, uint8_t ref_count); +uint8_t periph_rcc_acquire_enter(shared_periph_module_t periph); +void periph_rcc_acquire_exit(shared_periph_module_t periph, uint8_t ref_count); +uint8_t periph_rcc_release_enter(shared_periph_module_t periph); +void periph_rcc_release_exit(shared_periph_module_t periph, uint8_t ref_count); void periph_rcc_enter(void); void periph_rcc_exit(void); /** @endcond */ @@ -97,7 +97,7 @@ void periph_rcc_exit(void); * in order to put the peripheral into disabled state. */ __PERIPH_CTRL_DEPRECATE_ATTR -void periph_module_enable(periph_module_t periph); +void periph_module_enable(shared_periph_module_t periph); /** * @brief Disable peripheral module by gating the clock and asserting the reset signal. @@ -109,7 +109,7 @@ void periph_module_enable(periph_module_t periph); * in order to put the peripheral into disabled state. */ __PERIPH_CTRL_DEPRECATE_ATTR -void periph_module_disable(periph_module_t periph); +void periph_module_disable(shared_periph_module_t periph); /** * @brief Reset peripheral module by asserting and de-asserting the reset signal. @@ -119,7 +119,7 @@ void periph_module_disable(periph_module_t periph); * @note Calling this function does not enable or disable the clock for the module. */ __PERIPH_CTRL_DEPRECATE_ATTR -void periph_module_reset(periph_module_t periph); +void periph_module_reset(shared_periph_module_t periph); /** * @brief Enable Wi-Fi and BT common module diff --git a/components/esp_hw_support/modem_clock.c b/components/esp_hw_support/modem_clock.c index fcf21670b9..a9820eac0c 100644 --- a/components/esp_hw_support/modem_clock.c +++ b/components/esp_hw_support/modem_clock.c @@ -266,7 +266,7 @@ static void IRAM_ATTR modem_clock_device_disable(modem_clock_context_t *ctx, uin assert(refs >= 0); } -void IRAM_ATTR modem_clock_module_mac_reset(periph_module_t module) +void IRAM_ATTR modem_clock_module_mac_reset(shared_periph_module_t module) { __attribute__((unused)) modem_clock_context_t *ctx = MODEM_CLOCK_instance(); esp_os_enter_critical_safe(&ctx->lock); @@ -312,7 +312,7 @@ void IRAM_ATTR modem_clock_module_mac_reset(periph_module_t module) #define PHY_CALIBRATION_CLOCK_DEPS (BIT(MODEM_CLOCK_WIFI_APB) | BIT(MODEM_CLOCK_WIFI_BB_44M)) #endif -static IRAM_ATTR uint32_t modem_clock_get_module_deps(periph_module_t module) +static IRAM_ATTR uint32_t modem_clock_get_module_deps(shared_periph_module_t module) { uint32_t deps = 0; switch (module) { @@ -376,7 +376,7 @@ static IRAM_ATTR void modem_clock_module_icg_map_init_all(void) } #endif -void IRAM_ATTR modem_clock_module_enable(periph_module_t module) +void IRAM_ATTR modem_clock_module_enable(shared_periph_module_t module) { assert(IS_MODEM_MODULE(module)); #if SOC_PM_SUPPORT_PMU_MODEM_STATE @@ -386,7 +386,7 @@ void IRAM_ATTR modem_clock_module_enable(periph_module_t module) modem_clock_device_enable(MODEM_CLOCK_instance(), deps); } -void IRAM_ATTR modem_clock_module_disable(periph_module_t module) +void IRAM_ATTR modem_clock_module_disable(shared_periph_module_t module) { assert(IS_MODEM_MODULE(module)); uint32_t deps = modem_clock_get_module_deps(module); @@ -404,7 +404,7 @@ void modem_clock_deselect_all_module_lp_clock_source(void) modem_clock_hal_deselect_all_coex_lpclk_source(MODEM_CLOCK_instance()->hal); } -void modem_clock_select_lp_clock_source(periph_module_t module, modem_clock_lpclk_src_t src, uint32_t divider) +void modem_clock_select_lp_clock_source(shared_periph_module_t module, modem_clock_lpclk_src_t src, uint32_t divider) { assert(IS_MODEM_MODULE(module)); esp_os_enter_critical_safe(&MODEM_CLOCK_instance()->lock); @@ -497,7 +497,7 @@ void modem_clock_select_lp_clock_source(periph_module_t module, modem_clock_lpcl #endif } -void modem_clock_deselect_lp_clock_source(periph_module_t module) +void modem_clock_deselect_lp_clock_source(shared_periph_module_t module) { assert(IS_MODEM_MODULE(module)); esp_os_enter_critical_safe(&MODEM_CLOCK_instance()->lock); diff --git a/components/esp_hw_support/periph_ctrl.c b/components/esp_hw_support/periph_ctrl.c index 17d0be54bd..61c1553862 100644 --- a/components/esp_hw_support/periph_ctrl.c +++ b/components/esp_hw_support/periph_ctrl.c @@ -32,31 +32,31 @@ void periph_rcc_exit(void) esp_os_exit_critical_safe(&periph_spinlock); } -uint8_t periph_rcc_acquire_enter(periph_module_t periph) +uint8_t periph_rcc_acquire_enter(shared_periph_module_t periph) { periph_rcc_enter(); return ref_counts[periph]; } -void periph_rcc_acquire_exit(periph_module_t periph, uint8_t ref_count) +void periph_rcc_acquire_exit(shared_periph_module_t periph, uint8_t ref_count) { ref_counts[periph] = ++ref_count; periph_rcc_exit(); } -uint8_t periph_rcc_release_enter(periph_module_t periph) +uint8_t periph_rcc_release_enter(shared_periph_module_t periph) { periph_rcc_enter(); return ref_counts[periph] - 1; } -void periph_rcc_release_exit(periph_module_t periph, uint8_t ref_count) +void periph_rcc_release_exit(shared_periph_module_t periph, uint8_t ref_count) { ref_counts[periph] = ref_count; periph_rcc_exit(); } -void periph_module_enable(periph_module_t periph) +void periph_module_enable(shared_periph_module_t periph) { #ifdef __PERIPH_CTRL_ALLOW_LEGACY_API assert(periph < PERIPH_MODULE_MAX); @@ -69,7 +69,7 @@ void periph_module_enable(periph_module_t periph) #endif } -void periph_module_disable(periph_module_t periph) +void periph_module_disable(shared_periph_module_t periph) { #ifdef __PERIPH_CTRL_ALLOW_LEGACY_API assert(periph < PERIPH_MODULE_MAX); @@ -82,7 +82,7 @@ void periph_module_disable(periph_module_t periph) #endif } -void periph_module_reset(periph_module_t periph) +void periph_module_reset(shared_periph_module_t periph) { #ifdef __PERIPH_CTRL_ALLOW_LEGACY_API assert(periph < PERIPH_MODULE_MAX); diff --git a/components/hal/esp32/include/hal/clk_gate_ll.h b/components/hal/esp32/include/hal/clk_gate_ll.h index 56aaadc77d..b5071a5749 100644 --- a/components/hal/esp32/include/hal/clk_gate_ll.h +++ b/components/hal/esp32/include/hal/clk_gate_ll.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -18,57 +18,27 @@ extern "C" { #include "soc/dport_reg.h" #include "soc/soc_caps.h" -static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) +static inline uint32_t periph_ll_get_clk_en_mask(shared_periph_module_t periph) { switch (periph) { - case PERIPH_LEDC_MODULE: - return DPORT_LEDC_CLK_EN; - case PERIPH_UART0_MODULE: - return DPORT_UART_CLK_EN; case PERIPH_UART1_MODULE: return DPORT_UART1_CLK_EN; case PERIPH_UART2_MODULE: return DPORT_UART2_CLK_EN; - case PERIPH_I2C0_MODULE: - return DPORT_I2C_EXT0_CLK_EN; - case PERIPH_I2C1_MODULE: - return DPORT_I2C_EXT1_CLK_EN; case PERIPH_I2S0_MODULE: return DPORT_I2S0_CLK_EN; - case PERIPH_I2S1_MODULE: - return DPORT_I2S1_CLK_EN; case PERIPH_TIMG0_MODULE: return DPORT_TIMERGROUP_CLK_EN; case PERIPH_TIMG1_MODULE: return DPORT_TIMERGROUP1_CLK_EN; - case PERIPH_PWM0_MODULE: - return DPORT_PWM0_CLK_EN; - case PERIPH_PWM1_MODULE: - return DPORT_PWM1_CLK_EN; case PERIPH_UHCI0_MODULE: return DPORT_UHCI0_CLK_EN; - case PERIPH_UHCI1_MODULE: - return DPORT_UHCI1_CLK_EN; - case PERIPH_RMT_MODULE: - return DPORT_RMT_CLK_EN; - case PERIPH_PCNT_MODULE: - return DPORT_PCNT_CLK_EN; case PERIPH_SPI_MODULE: return DPORT_SPI01_CLK_EN; case PERIPH_HSPI_MODULE: return DPORT_SPI2_CLK_EN; case PERIPH_VSPI_MODULE: return DPORT_SPI3_CLK_EN; - case PERIPH_SPI_DMA_MODULE: - return DPORT_SPI_DMA_CLK_EN; - case PERIPH_SDMMC_MODULE: - return DPORT_WIFI_CLK_SDIO_HOST_EN; - case PERIPH_SDIO_SLAVE_MODULE: - return DPORT_WIFI_CLK_SDIOSLAVE_EN; - case PERIPH_TWAI_MODULE: - return DPORT_TWAI_CLK_EN; - case PERIPH_EMAC_MODULE: - return DPORT_WIFI_CLK_EMAC_EN; case PERIPH_RNG_MODULE: return DPORT_WIFI_CLK_RNG_EN; case PERIPH_WIFI_MODULE: @@ -79,154 +49,76 @@ static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) return DPORT_WIFI_CLK_WIFI_BT_COMMON_M; case PERIPH_BT_BASEBAND_MODULE: return DPORT_BT_BASEBAND_EN; - case PERIPH_BT_LC_MODULE: - return DPORT_BT_LC_EN; - case PERIPH_AES_MODULE: - return DPORT_PERI_EN_AES; - case PERIPH_SHA_MODULE: - return DPORT_PERI_EN_SHA; - case PERIPH_RSA_MODULE: - return DPORT_PERI_EN_RSA; default: return 0; } } -static inline uint32_t periph_ll_get_rst_en_mask(periph_module_t periph, bool enable) +static inline uint32_t periph_ll_get_rst_en_mask(shared_periph_module_t periph, bool enable) { switch (periph) { - case PERIPH_LEDC_MODULE: - return DPORT_LEDC_RST; case PERIPH_WIFI_MODULE: return DPORT_WIFIMAC_RST; case PERIPH_BT_MODULE: return (DPORT_BTBB_RST | DPORT_BTMAC_RST | DPORT_RW_BTMAC_RST | DPORT_RW_BTLP_RST); - case PERIPH_UART0_MODULE: - return DPORT_UART_RST; case PERIPH_UART1_MODULE: return DPORT_UART1_RST; case PERIPH_UART2_MODULE: return DPORT_UART2_RST; - case PERIPH_I2C0_MODULE: - return DPORT_I2C_EXT0_RST; - case PERIPH_I2C1_MODULE: - return DPORT_I2C_EXT1_RST; case PERIPH_I2S0_MODULE: return DPORT_I2S0_RST; - case PERIPH_I2S1_MODULE: - return DPORT_I2S1_RST; case PERIPH_TIMG0_MODULE: return DPORT_TIMERGROUP_RST; case PERIPH_TIMG1_MODULE: return DPORT_TIMERGROUP1_RST; - case PERIPH_PWM0_MODULE: - return DPORT_PWM0_RST; - case PERIPH_PWM1_MODULE: - return DPORT_PWM1_RST; case PERIPH_UHCI0_MODULE: return DPORT_UHCI0_RST; - case PERIPH_UHCI1_MODULE: - return DPORT_UHCI1_RST; - case PERIPH_RMT_MODULE: - return DPORT_RMT_RST; - case PERIPH_PCNT_MODULE: - return DPORT_PCNT_RST; case PERIPH_SPI_MODULE: return DPORT_SPI01_RST; case PERIPH_HSPI_MODULE: return DPORT_SPI2_RST; case PERIPH_VSPI_MODULE: return DPORT_SPI3_RST; - case PERIPH_SPI_DMA_MODULE: - return DPORT_SPI_DMA_RST; - case PERIPH_SDMMC_MODULE: - return DPORT_SDIO_HOST_RST; - case PERIPH_SDIO_SLAVE_MODULE: - return DPORT_SDIO_RST; - case PERIPH_TWAI_MODULE: - return DPORT_TWAI_RST; - case PERIPH_EMAC_MODULE: - return DPORT_EMAC_RST; - case PERIPH_AES_MODULE: - if (enable == true) { - // Clear reset on digital signature & secure boot units, otherwise AES unit is held in reset also. - return (DPORT_PERI_EN_AES | DPORT_PERI_EN_DIGITAL_SIGNATURE | DPORT_PERI_EN_SECUREBOOT); - } else { - //Don't return other units to reset, as this pulls reset on RSA & SHA units, respectively. - return DPORT_PERI_EN_AES; - } - case PERIPH_SHA_MODULE: - if (enable == true) { - // Clear reset on secure boot, otherwise SHA is held in reset - return (DPORT_PERI_EN_SHA | DPORT_PERI_EN_SECUREBOOT); - } else { - // Don't assert reset on secure boot, otherwise AES is held in reset - return DPORT_PERI_EN_SHA; - } - case PERIPH_RSA_MODULE: - if (enable == true) { - // Also clear reset on digital signature, otherwise RSA is held in reset - return (DPORT_PERI_EN_RSA | DPORT_PERI_EN_DIGITAL_SIGNATURE); - } else { - // Don't reset digital signature unit, as this resets AES also - return DPORT_PERI_EN_RSA; - } default: return 0; } } -static inline uint32_t periph_ll_get_clk_en_reg(periph_module_t periph) +static inline uint32_t periph_ll_get_clk_en_reg(shared_periph_module_t periph) { switch (periph) { - case PERIPH_AES_MODULE: - case PERIPH_SHA_MODULE: - case PERIPH_RSA_MODULE: - return DPORT_PERI_CLK_EN_REG; - case PERIPH_SDMMC_MODULE: - case PERIPH_SDIO_SLAVE_MODULE: - case PERIPH_EMAC_MODULE: case PERIPH_RNG_MODULE: case PERIPH_WIFI_MODULE: case PERIPH_BT_MODULE: case PERIPH_WIFI_BT_COMMON_MODULE: case PERIPH_BT_BASEBAND_MODULE: - case PERIPH_BT_LC_MODULE: return DPORT_WIFI_CLK_EN_REG; default: return DPORT_PERIP_CLK_EN_REG; } } -static inline uint32_t periph_ll_get_rst_en_reg(periph_module_t periph) +static inline uint32_t periph_ll_get_rst_en_reg(shared_periph_module_t periph) { switch (periph) { - case PERIPH_AES_MODULE: - case PERIPH_SHA_MODULE: - case PERIPH_RSA_MODULE: - return DPORT_PERI_RST_EN_REG; - case PERIPH_SDMMC_MODULE: - case PERIPH_SDIO_SLAVE_MODULE: - case PERIPH_EMAC_MODULE: case PERIPH_RNG_MODULE: case PERIPH_WIFI_MODULE: case PERIPH_BT_MODULE: case PERIPH_WIFI_BT_COMMON_MODULE: case PERIPH_BT_BASEBAND_MODULE: - case PERIPH_BT_LC_MODULE: return DPORT_CORE_RST_EN_REG; default: return DPORT_PERIP_RST_EN_REG; } } -static inline void periph_ll_enable_clk_clear_rst(periph_module_t periph) +static inline void periph_ll_enable_clk_clear_rst(shared_periph_module_t periph) { DPORT_SET_PERI_REG_MASK(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)); DPORT_CLEAR_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, true)); } -static inline void periph_ll_disable_clk_set_rst(periph_module_t periph) +static inline void periph_ll_disable_clk_set_rst(shared_periph_module_t periph) { DPORT_CLEAR_PERI_REG_MASK(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)); DPORT_SET_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); @@ -242,13 +134,13 @@ static inline void IRAM_ATTR periph_ll_wifi_bt_module_disable_clk(void) DPORT_CLEAR_PERI_REG_MASK(DPORT_WIFI_CLK_EN_REG, DPORT_WIFI_CLK_WIFI_BT_COMMON_M); } -static inline void periph_ll_reset(periph_module_t periph) +static inline void periph_ll_reset(shared_periph_module_t periph) { DPORT_SET_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); DPORT_CLEAR_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); } -static inline bool IRAM_ATTR periph_ll_periph_enabled(periph_module_t periph) +static inline bool IRAM_ATTR periph_ll_periph_enabled(shared_periph_module_t periph) { return DPORT_REG_GET_BIT(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)) == 0 && DPORT_REG_GET_BIT(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)) != 0; diff --git a/components/hal/esp32c2/include/hal/clk_gate_ll.h b/components/hal/esp32c2/include/hal/clk_gate_ll.h index 9e36fb4d14..6795cc8b2d 100644 --- a/components/hal/esp32c2/include/hal/clk_gate_ll.h +++ b/components/hal/esp32c2/include/hal/clk_gate_ll.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2020-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -20,33 +20,13 @@ extern "C" { #include "soc/soc_caps.h" #include "esp_attr.h" -static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) +static inline uint32_t periph_ll_get_clk_en_mask(shared_periph_module_t periph) { switch (periph) { - case PERIPH_SARADC_MODULE: - return SYSTEM_APB_SARADC_CLK_EN; - case PERIPH_LEDC_MODULE: - return SYSTEM_LEDC_CLK_EN; - case PERIPH_UART0_MODULE: - return SYSTEM_UART_CLK_EN; - case PERIPH_UART1_MODULE: - return SYSTEM_UART1_CLK_EN; - case PERIPH_I2C0_MODULE: - return SYSTEM_I2C_EXT0_CLK_EN; case PERIPH_TIMG0_MODULE: return SYSTEM_TIMERGROUP_CLK_EN; case PERIPH_SYSTIMER_MODULE: return SYSTEM_SYSTIMER_CLK_EN; - case PERIPH_SPI_MODULE: - return SYSTEM_SPI01_CLK_EN; - case PERIPH_SPI2_MODULE: - return SYSTEM_SPI2_CLK_EN; - case PERIPH_GDMA_MODULE: - return SYSTEM_DMA_CLK_EN; - case PERIPH_ECC_MODULE: - return SYSTEM_CRYPTO_ECC_CLK_EN; - case PERIPH_SHA_MODULE: - return SYSTEM_CRYPTO_SHA_CLK_EN; case PERIPH_RNG_MODULE: return SYSTEM_WIFI_CLK_RNG_EN; case PERIPH_WIFI_MODULE: @@ -55,126 +35,63 @@ static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) return SYSTEM_WIFI_CLK_BT_EN_M; case PERIPH_WIFI_BT_COMMON_MODULE: return SYSTEM_WIFI_CLK_WIFI_BT_COMMON_M; - case PERIPH_BT_BASEBAND_MODULE: - return SYSTEM_BT_BASEBAND_EN; - case PERIPH_BT_LC_MODULE: - return SYSTEM_BT_LC_EN; - case PERIPH_TEMPSENSOR_MODULE: - return SYSTEM_TSENS_CLK_EN; - case PERIPH_ASSIST_DEBUG_MODULE: - return SYSTEM_CLK_EN_ASSIST_DEBUG; default: return 0; } } -static inline uint32_t periph_ll_get_rst_en_mask(periph_module_t periph, bool enable) +static inline uint32_t periph_ll_get_rst_en_mask(shared_periph_module_t periph, bool enable) { (void)enable; // unused switch (periph) { - case PERIPH_SARADC_MODULE: - return SYSTEM_APB_SARADC_RST; - case PERIPH_LEDC_MODULE: - return SYSTEM_LEDC_RST; case PERIPH_WIFI_MODULE: return SYSTEM_MAC_RST; - case PERIPH_UART0_MODULE: - return SYSTEM_UART_RST; - case PERIPH_UART1_MODULE: - return SYSTEM_UART1_RST; - case PERIPH_I2C0_MODULE: - return SYSTEM_I2C_EXT0_RST; case PERIPH_TIMG0_MODULE: return SYSTEM_TIMERGROUP_RST; case PERIPH_SYSTIMER_MODULE: return SYSTEM_SYSTIMER_RST; - case PERIPH_GDMA_MODULE: - return SYSTEM_DMA_RST; - case PERIPH_ECC_MODULE: - return SYSTEM_CRYPTO_ECC_RST; - case PERIPH_SPI_MODULE: - return SYSTEM_SPI01_RST; - case PERIPH_SPI2_MODULE: - return SYSTEM_SPI2_RST; - case PERIPH_TEMPSENSOR_MODULE: - return SYSTEM_TSENS_RST; - case PERIPH_SHA_MODULE: - if (enable == true) { - // Clear reset on digital signature and HMAC, otherwise SHA is held in reset - return (SYSTEM_CRYPTO_SHA_RST); - } else { - // Don't assert reset on secure boot, otherwise AES is held in reset - return SYSTEM_CRYPTO_SHA_RST; - } - case PERIPH_MODEM_RPA_MODULE: - return BLE_RPA_REST_BIT; - case PERIPH_ASSIST_DEBUG_MODULE: - return SYSTEM_RST_EN_ASSIST_DEBUG; default: return 0; } } -static inline uint32_t periph_ll_get_clk_en_reg(periph_module_t periph) +static inline uint32_t periph_ll_get_clk_en_reg(shared_periph_module_t periph) { switch (periph) { case PERIPH_RNG_MODULE: case PERIPH_WIFI_MODULE: case PERIPH_BT_MODULE: case PERIPH_WIFI_BT_COMMON_MODULE: - case PERIPH_BT_BASEBAND_MODULE: - case PERIPH_BT_LC_MODULE: return SYSTEM_WIFI_CLK_EN_REG; - case PERIPH_SHA_MODULE: - case PERIPH_GDMA_MODULE: - case PERIPH_ECC_MODULE: - case PERIPH_TEMPSENSOR_MODULE: - return SYSTEM_PERIP_CLK_EN1_REG; - - case PERIPH_ASSIST_DEBUG_MODULE: - return SYSTEM_CPU_PERI_CLK_EN_REG; - default: return SYSTEM_PERIP_CLK_EN0_REG; } } -static inline uint32_t periph_ll_get_rst_en_reg(periph_module_t periph) +static inline uint32_t periph_ll_get_rst_en_reg(shared_periph_module_t periph) { switch (periph) { case PERIPH_RNG_MODULE: case PERIPH_WIFI_MODULE: case PERIPH_BT_MODULE: case PERIPH_WIFI_BT_COMMON_MODULE: - case PERIPH_BT_BASEBAND_MODULE: - case PERIPH_BT_LC_MODULE: - case PERIPH_MODEM_RPA_MODULE: return SYSTEM_WIFI_RST_EN_REG; - case PERIPH_SHA_MODULE: - case PERIPH_GDMA_MODULE: - case PERIPH_ECC_MODULE: - case PERIPH_TEMPSENSOR_MODULE: - return SYSTEM_PERIP_RST_EN1_REG; - - case PERIPH_ASSIST_DEBUG_MODULE: - return SYSTEM_CPU_PERI_RST_EN_REG; - default: return SYSTEM_PERIP_RST_EN0_REG; } } -static inline void periph_ll_enable_clk_clear_rst(periph_module_t periph) +static inline void periph_ll_enable_clk_clear_rst(shared_periph_module_t periph) { DPORT_SET_PERI_REG_MASK(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)); DPORT_CLEAR_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, true)); } -static inline void periph_ll_disable_clk_set_rst(periph_module_t periph) +static inline void periph_ll_disable_clk_set_rst(shared_periph_module_t periph) { DPORT_CLEAR_PERI_REG_MASK(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)); DPORT_SET_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); @@ -190,13 +107,13 @@ static inline void IRAM_ATTR periph_ll_wifi_bt_module_disable_clk(void) DPORT_CLEAR_PERI_REG_MASK(SYSTEM_WIFI_CLK_EN_REG, SYSTEM_WIFI_CLK_WIFI_BT_COMMON_M); } -static inline void periph_ll_reset(periph_module_t periph) +static inline void periph_ll_reset(shared_periph_module_t periph) { DPORT_SET_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); DPORT_CLEAR_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); } -static inline bool IRAM_ATTR periph_ll_periph_enabled(periph_module_t periph) +static inline bool IRAM_ATTR periph_ll_periph_enabled(shared_periph_module_t periph) { return DPORT_REG_GET_BIT(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)) == 0 && DPORT_REG_GET_BIT(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)) != 0; diff --git a/components/hal/esp32c3/include/hal/clk_gate_ll.h b/components/hal/esp32c3/include/hal/clk_gate_ll.h index daf544184b..8fae92f31b 100644 --- a/components/hal/esp32c3/include/hal/clk_gate_ll.h +++ b/components/hal/esp32c3/include/hal/clk_gate_ll.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -20,23 +20,11 @@ extern "C" { #include "soc/soc_caps.h" #include "esp_attr.h" -static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) +static inline uint32_t periph_ll_get_clk_en_mask(shared_periph_module_t periph) { switch (periph) { - case PERIPH_SARADC_MODULE: - return SYSTEM_APB_SARADC_CLK_EN; - case PERIPH_RMT_MODULE: - return SYSTEM_RMT_CLK_EN; - case PERIPH_LEDC_MODULE: - return SYSTEM_LEDC_CLK_EN; - case PERIPH_UART0_MODULE: - return SYSTEM_UART_CLK_EN; case PERIPH_UART1_MODULE: return SYSTEM_UART1_CLK_EN; - case PERIPH_I2C0_MODULE: - return SYSTEM_I2C_EXT0_CLK_EN; - case PERIPH_I2S0_MODULE: - return SYSTEM_I2S0_CLK_EN; case PERIPH_TIMG0_MODULE: return SYSTEM_TIMERGROUP_CLK_EN; case PERIPH_TIMG1_MODULE: @@ -45,24 +33,6 @@ static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) return SYSTEM_UHCI0_CLK_EN; case PERIPH_SYSTIMER_MODULE: return SYSTEM_SYSTIMER_CLK_EN; - case PERIPH_SPI_MODULE: - return SYSTEM_SPI01_CLK_EN; - case PERIPH_SPI2_MODULE: - return SYSTEM_SPI2_CLK_EN; - case PERIPH_TWAI_MODULE: - return SYSTEM_TWAI_CLK_EN; - case PERIPH_GDMA_MODULE: - return SYSTEM_DMA_CLK_EN; - case PERIPH_AES_MODULE: - return SYSTEM_CRYPTO_AES_CLK_EN; - case PERIPH_SHA_MODULE: - return SYSTEM_CRYPTO_SHA_CLK_EN; - case PERIPH_RSA_MODULE: - return SYSTEM_CRYPTO_RSA_CLK_EN; - case PERIPH_HMAC_MODULE: - return SYSTEM_CRYPTO_HMAC_CLK_EN; - case PERIPH_DS_MODULE: - return SYSTEM_CRYPTO_DS_CLK_EN; case PERIPH_RNG_MODULE: return SYSTEM_WIFI_CLK_RNG_EN; case PERIPH_WIFI_MODULE: @@ -71,43 +41,23 @@ static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) return SYSTEM_WIFI_CLK_BT_EN_M; case PERIPH_WIFI_BT_COMMON_MODULE: return SYSTEM_WIFI_CLK_WIFI_BT_COMMON_M; - case PERIPH_BT_BASEBAND_MODULE: - return SYSTEM_BT_BASEBAND_EN; - case PERIPH_BT_LC_MODULE: - return SYSTEM_BT_LC_EN; - case PERIPH_TEMPSENSOR_MODULE: - return SYSTEM_TSENS_CLK_EN; - case PERIPH_ASSIST_DEBUG_MODULE: - return SYSTEM_CLK_EN_ASSIST_DEBUG; default: return 0; } } -static inline uint32_t periph_ll_get_rst_en_mask(periph_module_t periph, bool enable) +static inline uint32_t periph_ll_get_rst_en_mask(shared_periph_module_t periph, bool enable) { (void)enable; // unused switch (periph) { - case PERIPH_SARADC_MODULE: - return SYSTEM_APB_SARADC_RST; - case PERIPH_RMT_MODULE: - return SYSTEM_RMT_RST; - case PERIPH_LEDC_MODULE: - return SYSTEM_LEDC_RST; case PERIPH_WIFI_MODULE: return SYSTEM_WIFIMAC_RST; case PERIPH_BT_MODULE: return (SYSTEM_BTBB_RST | SYSTEM_BTBB_REG_RST | SYSTEM_RW_BTMAC_RST | SYSTEM_RW_BTLP_RST | SYSTEM_RW_BTMAC_REG_RST | SYSTEM_RW_BTLP_REG_RST); - case PERIPH_UART0_MODULE: - return SYSTEM_UART_RST; case PERIPH_UART1_MODULE: return SYSTEM_UART1_RST; - case PERIPH_I2C0_MODULE: - return SYSTEM_I2C_EXT0_RST; - case PERIPH_I2S0_MODULE: - return SYSTEM_I2S0_RST; case PERIPH_TIMG0_MODULE: return SYSTEM_TIMERGROUP_RST; case PERIPH_TIMG1_MODULE: @@ -116,114 +66,45 @@ static inline uint32_t periph_ll_get_rst_en_mask(periph_module_t periph, bool en return SYSTEM_UHCI0_RST; case PERIPH_SYSTIMER_MODULE: return SYSTEM_SYSTIMER_RST; - case PERIPH_GDMA_MODULE: - return SYSTEM_DMA_RST; - case PERIPH_SPI_MODULE: - return SYSTEM_SPI01_RST; - case PERIPH_SPI2_MODULE: - return SYSTEM_SPI2_RST; - case PERIPH_TWAI_MODULE: - return SYSTEM_TWAI_RST; - case PERIPH_HMAC_MODULE: - return SYSTEM_CRYPTO_HMAC_RST; - case PERIPH_TEMPSENSOR_MODULE: - return SYSTEM_TSENS_RST; - case PERIPH_AES_MODULE: - if (enable == true) { - // Clear reset on digital signature, otherwise AES unit is held in reset also. - return (SYSTEM_CRYPTO_AES_RST | SYSTEM_CRYPTO_DS_RST); - } else { - //Don't return other units to reset, as this pulls reset on RSA & SHA units, respectively. - return SYSTEM_CRYPTO_AES_RST; - } - case PERIPH_SHA_MODULE: - if (enable == true) { - // Clear reset on digital signature and HMAC, otherwise SHA is held in reset - return (SYSTEM_CRYPTO_SHA_RST | SYSTEM_CRYPTO_DS_RST | SYSTEM_CRYPTO_HMAC_RST); - } else { - // Don't assert reset on secure boot, otherwise AES is held in reset - return SYSTEM_CRYPTO_SHA_RST; - } - case PERIPH_RSA_MODULE: - if (enable == true) { - /* also clear reset on digital signature, otherwise RSA is held in reset */ - return (SYSTEM_CRYPTO_RSA_RST | SYSTEM_CRYPTO_DS_RST); - } else { - /* don't reset digital signature unit, as this resets AES also */ - return SYSTEM_CRYPTO_RSA_RST; - } - case PERIPH_DS_MODULE: - return SYSTEM_CRYPTO_DS_RST; - case PERIPH_ASSIST_DEBUG_MODULE: - return SYSTEM_RST_EN_ASSIST_DEBUG; default: return 0; } } -static inline uint32_t periph_ll_get_clk_en_reg(periph_module_t periph) +static inline uint32_t periph_ll_get_clk_en_reg(shared_periph_module_t periph) { switch (periph) { case PERIPH_RNG_MODULE: case PERIPH_WIFI_MODULE: case PERIPH_BT_MODULE: case PERIPH_WIFI_BT_COMMON_MODULE: - case PERIPH_BT_BASEBAND_MODULE: - case PERIPH_BT_LC_MODULE: return SYSTEM_WIFI_CLK_EN_REG; - case PERIPH_HMAC_MODULE: - case PERIPH_DS_MODULE: - case PERIPH_AES_MODULE: - case PERIPH_RSA_MODULE: - case PERIPH_SHA_MODULE: - case PERIPH_GDMA_MODULE: - case PERIPH_TEMPSENSOR_MODULE: - return SYSTEM_PERIP_CLK_EN1_REG; - - case PERIPH_ASSIST_DEBUG_MODULE: - return SYSTEM_CPU_PERI_CLK_EN_REG; - default: return SYSTEM_PERIP_CLK_EN0_REG; } } -static inline uint32_t periph_ll_get_rst_en_reg(periph_module_t periph) +static inline uint32_t periph_ll_get_rst_en_reg(shared_periph_module_t periph) { switch (periph) { case PERIPH_RNG_MODULE: case PERIPH_WIFI_MODULE: case PERIPH_BT_MODULE: case PERIPH_WIFI_BT_COMMON_MODULE: - case PERIPH_BT_BASEBAND_MODULE: - case PERIPH_BT_LC_MODULE: return SYSTEM_WIFI_RST_EN_REG; - - case PERIPH_HMAC_MODULE: - case PERIPH_DS_MODULE: - case PERIPH_AES_MODULE: - case PERIPH_RSA_MODULE: - case PERIPH_SHA_MODULE: - case PERIPH_GDMA_MODULE: - case PERIPH_TEMPSENSOR_MODULE: - return SYSTEM_PERIP_RST_EN1_REG; - - case PERIPH_ASSIST_DEBUG_MODULE: - return SYSTEM_CPU_PERI_RST_EN_REG; - default: return SYSTEM_PERIP_RST_EN0_REG; } } -static inline void periph_ll_enable_clk_clear_rst(periph_module_t periph) +static inline void periph_ll_enable_clk_clear_rst(shared_periph_module_t periph) { DPORT_SET_PERI_REG_MASK(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)); DPORT_CLEAR_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, true)); } -static inline void periph_ll_disable_clk_set_rst(periph_module_t periph) +static inline void periph_ll_disable_clk_set_rst(shared_periph_module_t periph) { DPORT_CLEAR_PERI_REG_MASK(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)); DPORT_SET_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); @@ -239,13 +120,13 @@ static inline void IRAM_ATTR periph_ll_wifi_bt_module_disable_clk(void) DPORT_CLEAR_PERI_REG_MASK(SYSTEM_WIFI_CLK_EN_REG, SYSTEM_WIFI_CLK_WIFI_BT_COMMON_M); } -static inline void periph_ll_reset(periph_module_t periph) +static inline void periph_ll_reset(shared_periph_module_t periph) { DPORT_SET_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); DPORT_CLEAR_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); } -static inline bool IRAM_ATTR periph_ll_periph_enabled(periph_module_t periph) +static inline bool IRAM_ATTR periph_ll_periph_enabled(shared_periph_module_t periph) { return DPORT_REG_GET_BIT(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)) == 0 && DPORT_REG_GET_BIT(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)) != 0; diff --git a/components/hal/esp32c6/include/hal/clk_gate_ll.h b/components/hal/esp32c6/include/hal/clk_gate_ll.h index eaff2e3776..01d173aeed 100644 --- a/components/hal/esp32c6/include/hal/clk_gate_ll.h +++ b/components/hal/esp32c6/include/hal/clk_gate_ll.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -19,25 +19,11 @@ extern "C" { #endif -static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) +static inline uint32_t periph_ll_get_clk_en_mask(shared_periph_module_t periph) { switch (periph) { case PERIPH_SARADC_MODULE: return PCR_SARADC_CLK_EN; - case PERIPH_RMT_MODULE: - return PCR_RMT_CLK_EN; - case PERIPH_PCNT_MODULE: - return PCR_PCNT_CLK_EN; - case PERIPH_LEDC_MODULE: - return PCR_LEDC_CLK_EN; - case PERIPH_UART0_MODULE: - return PCR_UART0_CLK_EN; - case PERIPH_UART1_MODULE: - return PCR_UART1_CLK_EN; - case PERIPH_I2C0_MODULE: - return PCR_I2C_CLK_EN; - case PERIPH_I2S0_MODULE: - return PCR_I2S_CLK_EN; case PERIPH_TIMG0_MODULE: return PCR_TG0_CLK_EN; case PERIPH_TIMG1_MODULE: @@ -46,22 +32,6 @@ static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) return PCR_UHCI_CLK_EN; case PERIPH_SYSTIMER_MODULE: return PCR_SYSTIMER_CLK_EN; - case PERIPH_SPI_MODULE: - return PCR_MSPI_CLK_EN; - case PERIPH_SPI2_MODULE: - return PCR_SPI2_CLK_EN; - case PERIPH_TWAI0_MODULE: - return PCR_TWAI0_CLK_EN; - case PERIPH_TWAI1_MODULE: - return PCR_TWAI1_CLK_EN; - case PERIPH_GDMA_MODULE: - return PCR_GDMA_CLK_EN; - case PERIPH_MCPWM0_MODULE: - return PCR_PWM_CLK_EN; - case PERIPH_ETM_MODULE: - return PCR_ETM_CLK_EN; - case PERIPH_PARLIO_MODULE: - return PCR_PARL_CLK_EN; case PERIPH_AES_MODULE: return PCR_AES_CLK_EN; case PERIPH_SHA_MODULE: @@ -74,8 +44,6 @@ static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) return PCR_HMAC_CLK_EN; case PERIPH_DS_MODULE: return PCR_DS_CLK_EN; - case PERIPH_TEMPSENSOR_MODULE: - return PCR_TSENS_CLK_EN; case PERIPH_SDIO_SLAVE_MODULE: return PCR_SDIO_SLAVE_CLK_EN; case PERIPH_ASSIST_DEBUG_MODULE: @@ -85,27 +53,13 @@ static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) } } -static inline uint32_t periph_ll_get_rst_en_mask(periph_module_t periph, bool enable) +static inline uint32_t periph_ll_get_rst_en_mask(shared_periph_module_t periph, bool enable) { (void)enable; // unused switch (periph) { case PERIPH_SARADC_MODULE: return PCR_SARADC_REG_RST_EN; - case PERIPH_RMT_MODULE: - return PCR_RMT_RST_EN; - case PERIPH_PCNT_MODULE: - return PCR_PCNT_RST_EN; - case PERIPH_LEDC_MODULE: - return PCR_LEDC_RST_EN; - case PERIPH_UART0_MODULE: - return PCR_UART0_RST_EN; - case PERIPH_UART1_MODULE: - return PCR_UART1_RST_EN; - case PERIPH_I2C0_MODULE: - return PCR_I2C_RST_EN; - case PERIPH_I2S0_MODULE: - return PCR_I2S_RST_EN; case PERIPH_TIMG0_MODULE: return PCR_TG0_RST_EN; case PERIPH_TIMG1_MODULE: @@ -114,26 +68,8 @@ static inline uint32_t periph_ll_get_rst_en_mask(periph_module_t periph, bool en return PCR_UHCI_RST_EN; case PERIPH_SYSTIMER_MODULE: return PCR_SYSTIMER_RST_EN; - case PERIPH_SPI_MODULE: - return PCR_MSPI_RST_EN; - case PERIPH_SPI2_MODULE: - return PCR_SPI2_RST_EN; - case PERIPH_TWAI0_MODULE: - return PCR_TWAI0_RST_EN; - case PERIPH_TWAI1_MODULE: - return PCR_TWAI1_RST_EN; - case PERIPH_GDMA_MODULE: - return PCR_GDMA_RST_EN; - case PERIPH_MCPWM0_MODULE: - return PCR_PWM_RST_EN; - case PERIPH_ETM_MODULE: - return PCR_ETM_RST_EN; - case PERIPH_PARLIO_MODULE: - return PCR_PARL_RST_EN; case PERIPH_ECC_MODULE: return PCR_ECC_RST_EN; - case PERIPH_TEMPSENSOR_MODULE: - return PCR_TSENS_RST_EN; case PERIPH_AES_MODULE: if (enable == true) { // Clear reset on digital signature, otherwise AES unit is held in reset @@ -166,25 +102,11 @@ static inline uint32_t periph_ll_get_rst_en_mask(periph_module_t periph, bool en } } -static inline uint32_t periph_ll_get_clk_en_reg(periph_module_t periph) +static inline uint32_t periph_ll_get_clk_en_reg(shared_periph_module_t periph) { switch (periph) { case PERIPH_SARADC_MODULE: return PCR_SARADC_CONF_REG; - case PERIPH_RMT_MODULE: - return PCR_RMT_CONF_REG; - case PERIPH_PCNT_MODULE: - return PCR_PCNT_CONF_REG; - case PERIPH_LEDC_MODULE: - return PCR_LEDC_CONF_REG; - case PERIPH_UART0_MODULE: - return PCR_UART0_CONF_REG; - case PERIPH_UART1_MODULE: - return PCR_UART1_CONF_REG; - case PERIPH_I2C0_MODULE: - return PCR_I2C_CONF_REG; - case PERIPH_I2S0_MODULE: - return PCR_I2S_CONF_REG; case PERIPH_TIMG0_MODULE: return PCR_TIMERGROUP0_CONF_REG; case PERIPH_TIMG1_MODULE: @@ -193,22 +115,6 @@ static inline uint32_t periph_ll_get_clk_en_reg(periph_module_t periph) return PCR_UHCI_CONF_REG; case PERIPH_SYSTIMER_MODULE: return PCR_SYSTIMER_CONF_REG; - case PERIPH_SPI_MODULE: - return PCR_MSPI_CONF_REG; - case PERIPH_SPI2_MODULE: - return PCR_SPI2_CONF_REG; - case PERIPH_TWAI0_MODULE: - return PCR_TWAI0_CONF_REG; - case PERIPH_TWAI1_MODULE: - return PCR_TWAI1_CONF_REG; - case PERIPH_GDMA_MODULE: - return PCR_GDMA_CONF_REG; - case PERIPH_MCPWM0_MODULE: - return PCR_PWM_CONF_REG; - case PERIPH_ETM_MODULE: - return PCR_ETM_CONF_REG; - case PERIPH_PARLIO_MODULE: - return PCR_PARL_IO_CONF_REG; case PERIPH_AES_MODULE: return PCR_AES_CONF_REG; case PERIPH_SHA_MODULE: @@ -221,8 +127,6 @@ static inline uint32_t periph_ll_get_clk_en_reg(periph_module_t periph) return PCR_HMAC_CONF_REG; case PERIPH_DS_MODULE: return PCR_DS_CONF_REG; - case PERIPH_TEMPSENSOR_MODULE: - return PCR_TSENS_CLK_CONF_REG; case PERIPH_SDIO_SLAVE_MODULE: return PCR_SDIO_SLAVE_CONF_REG; case PERIPH_ASSIST_DEBUG_MODULE: @@ -232,25 +136,11 @@ static inline uint32_t periph_ll_get_clk_en_reg(periph_module_t periph) } } -static inline uint32_t periph_ll_get_rst_en_reg(periph_module_t periph) +static inline uint32_t periph_ll_get_rst_en_reg(shared_periph_module_t periph) { switch (periph) { case PERIPH_SARADC_MODULE: return PCR_SARADC_CONF_REG; - case PERIPH_RMT_MODULE: - return PCR_RMT_CONF_REG; - case PERIPH_PCNT_MODULE: - return PCR_PCNT_CONF_REG; - case PERIPH_LEDC_MODULE: - return PCR_LEDC_CONF_REG; - case PERIPH_UART0_MODULE: - return PCR_UART0_CONF_REG; - case PERIPH_UART1_MODULE: - return PCR_UART1_CONF_REG; - case PERIPH_I2C0_MODULE: - return PCR_I2C_CONF_REG; - case PERIPH_I2S0_MODULE: - return PCR_I2S_CONF_REG; case PERIPH_TIMG0_MODULE: return PCR_TIMERGROUP0_CONF_REG; case PERIPH_TIMG1_MODULE: @@ -259,22 +149,6 @@ static inline uint32_t periph_ll_get_rst_en_reg(periph_module_t periph) return PCR_UHCI_CONF_REG; case PERIPH_SYSTIMER_MODULE: return PCR_SYSTIMER_CONF_REG; - case PERIPH_SPI_MODULE: - return PCR_MSPI_CONF_REG; - case PERIPH_SPI2_MODULE: - return PCR_SPI2_CONF_REG; - case PERIPH_TWAI0_MODULE: - return PCR_TWAI0_CONF_REG; - case PERIPH_TWAI1_MODULE: - return PCR_TWAI1_CONF_REG; - case PERIPH_GDMA_MODULE: - return PCR_GDMA_CONF_REG; - case PERIPH_MCPWM0_MODULE: - return PCR_PWM_CONF_REG; - case PERIPH_ETM_MODULE: - return PCR_ETM_CONF_REG; - case PERIPH_PARLIO_MODULE: - return PCR_PARL_IO_CONF_REG; case PERIPH_AES_MODULE: return PCR_AES_CONF_REG; case PERIPH_SHA_MODULE: @@ -287,8 +161,6 @@ static inline uint32_t periph_ll_get_rst_en_reg(periph_module_t periph) return PCR_HMAC_CONF_REG; case PERIPH_DS_MODULE: return PCR_DS_CONF_REG; - case PERIPH_TEMPSENSOR_MODULE: - return PCR_TSENS_CLK_CONF_REG; case PERIPH_SDIO_SLAVE_MODULE: return PCR_SDIO_SLAVE_CONF_REG; case PERIPH_ASSIST_DEBUG_MODULE: @@ -298,25 +170,25 @@ static inline uint32_t periph_ll_get_rst_en_reg(periph_module_t periph) } } -static inline void periph_ll_enable_clk_clear_rst(periph_module_t periph) +static inline void periph_ll_enable_clk_clear_rst(shared_periph_module_t periph) { SET_PERI_REG_MASK(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)); CLEAR_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, true)); } -static inline void periph_ll_disable_clk_set_rst(periph_module_t periph) +static inline void periph_ll_disable_clk_set_rst(shared_periph_module_t periph) { CLEAR_PERI_REG_MASK(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)); SET_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); } -static inline void periph_ll_reset(periph_module_t periph) +static inline void periph_ll_reset(shared_periph_module_t periph) { SET_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); CLEAR_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); } -static inline bool IRAM_ATTR periph_ll_periph_enabled(periph_module_t periph) +static inline bool IRAM_ATTR periph_ll_periph_enabled(shared_periph_module_t periph) { return REG_GET_BIT(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)) == 0 && REG_GET_BIT(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)) != 0; diff --git a/components/hal/esp32h2/include/hal/clk_gate_ll.h b/components/hal/esp32h2/include/hal/clk_gate_ll.h index 7ac7b7d7fc..608c0a5803 100644 --- a/components/hal/esp32h2/include/hal/clk_gate_ll.h +++ b/components/hal/esp32h2/include/hal/clk_gate_ll.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -19,27 +19,11 @@ extern "C" { #endif -static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) +static inline uint32_t periph_ll_get_clk_en_mask(shared_periph_module_t periph) {// ESP32H2-TODO: IDF-6400 switch (periph) { case PERIPH_SARADC_MODULE: return PCR_SARADC_CLK_EN; - case PERIPH_RMT_MODULE: - return PCR_RMT_CLK_EN; - case PERIPH_PCNT_MODULE: - return PCR_PCNT_CLK_EN; - case PERIPH_LEDC_MODULE: - return PCR_LEDC_CLK_EN; - case PERIPH_UART0_MODULE: - return PCR_UART0_CLK_EN; - case PERIPH_UART1_MODULE: - return PCR_UART1_CLK_EN; - case PERIPH_I2C0_MODULE: - return PCR_I2C0_CLK_EN; - case PERIPH_I2C1_MODULE: - return PCR_I2C1_CLK_EN; - case PERIPH_I2S0_MODULE: - return PCR_I2S_CLK_EN; case PERIPH_TIMG0_MODULE: return PCR_TG0_CLK_EN; case PERIPH_TIMG1_MODULE: @@ -48,20 +32,6 @@ static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) return PCR_UHCI_CLK_EN; case PERIPH_SYSTIMER_MODULE: return PCR_SYSTIMER_CLK_EN; - case PERIPH_SPI_MODULE: - return PCR_MSPI_CLK_EN; - case PERIPH_SPI2_MODULE: - return PCR_SPI2_CLK_EN; - case PERIPH_TWAI0_MODULE: - return PCR_TWAI0_CLK_EN; - case PERIPH_GDMA_MODULE: - return PCR_GDMA_CLK_EN; - case PERIPH_MCPWM0_MODULE: - return PCR_PWM_CLK_EN; - case PERIPH_ETM_MODULE: - return PCR_ETM_CLK_EN; - case PERIPH_PARLIO_MODULE: - return PCR_PARL_CLK_EN; case PERIPH_AES_MODULE: return PCR_AES_CLK_EN; case PERIPH_SHA_MODULE: @@ -76,20 +46,6 @@ static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) return PCR_DS_CLK_EN; case PERIPH_ECDSA_MODULE: return PCR_ECDSA_CLK_EN; - case PERIPH_TEMPSENSOR_MODULE: - return PCR_TSENS_CLK_EN; - // case PERIPH_RNG_MODULE: - // return PCR_WIFI_CLK_RNG_EN; - // case PERIPH_WIFI_MODULE: - // return PCR_WIFI_CLK_WIFI_EN_M; - // case PERIPH_BT_MODULE: - // return PCR_WIFI_CLK_BT_EN_M; - // case PERIPH_WIFI_BT_COMMON_MODULE: - // return PCR_WIFI_CLK_WIFI_BT_COMMON_M; - // case PERIPH_BT_BASEBAND_MODULE: - // return PCR_BT_BASEBAND_EN; - // case PERIPH_BT_LC_MODULE: - // return PCR_BT_LC_EN; case PERIPH_ASSIST_DEBUG_MODULE: return PCR_ASSIST_CLK_EN; default: @@ -97,7 +53,7 @@ static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) } } -static inline uint32_t periph_ll_get_rst_en_mask(periph_module_t periph, bool enable) +static inline uint32_t periph_ll_get_rst_en_mask(shared_periph_module_t periph, bool enable) { // ESP32H2-TODO: IDF-6400 (void)enable; // unused @@ -105,22 +61,6 @@ static inline uint32_t periph_ll_get_rst_en_mask(periph_module_t periph, bool en switch (periph) { case PERIPH_SARADC_MODULE: return PCR_SARADC_REG_RST_EN; - case PERIPH_RMT_MODULE: - return PCR_RMT_RST_EN; - case PERIPH_PCNT_MODULE: - return PCR_PCNT_RST_EN; - case PERIPH_LEDC_MODULE: - return PCR_LEDC_RST_EN; - case PERIPH_UART0_MODULE: - return PCR_UART0_RST_EN; - case PERIPH_UART1_MODULE: - return PCR_UART1_RST_EN; - case PERIPH_I2C0_MODULE: - return PCR_I2C0_RST_EN; - case PERIPH_I2C1_MODULE: - return PCR_I2C1_RST_EN; - case PERIPH_I2S0_MODULE: - return PCR_I2S_RST_EN; case PERIPH_TIMG0_MODULE: return PCR_TG0_RST_EN; case PERIPH_TIMG1_MODULE: @@ -129,22 +69,6 @@ static inline uint32_t periph_ll_get_rst_en_mask(periph_module_t periph, bool en return PCR_UHCI_RST_EN; case PERIPH_SYSTIMER_MODULE: return PCR_SYSTIMER_RST_EN; - case PERIPH_SPI_MODULE: - return PCR_MSPI_RST_EN; - case PERIPH_SPI2_MODULE: - return PCR_SPI2_RST_EN; - case PERIPH_TWAI0_MODULE: - return PCR_TWAI0_RST_EN; - case PERIPH_GDMA_MODULE: - return PCR_GDMA_RST_EN; - case PERIPH_MCPWM0_MODULE: - return PCR_PWM_RST_EN; - case PERIPH_ETM_MODULE: - return PCR_ETM_RST_EN; - case PERIPH_PARLIO_MODULE: - return PCR_PARL_RST_EN; - case PERIPH_TEMPSENSOR_MODULE: - return PCR_TSENS_RST_EN; case PERIPH_ECC_MODULE: if (enable == true) { // Clear reset on ECDSA, otherwise ECC is held in reset @@ -178,18 +102,6 @@ static inline uint32_t periph_ll_get_rst_en_mask(periph_module_t periph, bool en return PCR_DS_RST_EN; case PERIPH_ECDSA_MODULE: return PCR_ECDSA_RST_EN; - // case PERIPH_RNG_MODULE: - // return PCR_WIFI_CLK_RNG_EN; - // case PERIPH_WIFI_MODULE: - // return PCR_WIFI_CLK_WIFI_EN_M; - // case PERIPH_BT_MODULE: - // return PCR_WIFI_CLK_BT_EN_M; - // case PERIPH_WIFI_BT_COMMON_MODULE: - // return PCR_WIFI_CLK_WIFI_BT_COMMON_M; - // case PERIPH_BT_BASEBAND_MODULE: - // return PCR_BT_BASEBAND_EN; - // case PERIPH_BT_LC_MODULE: - // return PCR_BT_LC_EN; case PERIPH_ASSIST_DEBUG_MODULE: return PCR_ASSIST_RST_EN; default: @@ -197,35 +109,11 @@ static inline uint32_t periph_ll_get_rst_en_mask(periph_module_t periph, bool en } } -static inline uint32_t periph_ll_get_clk_en_reg(periph_module_t periph) +static inline uint32_t periph_ll_get_clk_en_reg(shared_periph_module_t periph) {// ESP32H2-TODO: IDF-6400 switch (periph) { - // case PERIPH_RNG_MODULE: - // case PERIPH_WIFI_MODULE: - // case PERIPH_BT_MODULE: - // case PERIPH_WIFI_BT_COMMON_MODULE: - // case PERIPH_BT_BASEBAND_MODULE: - // case PERIPH_BT_LC_MODULE: - // return SYSTEM_WIFI_CLK_EN_REG; - case PERIPH_SARADC_MODULE: return PCR_SARADC_CONF_REG; - case PERIPH_RMT_MODULE: - return PCR_RMT_CONF_REG; - case PERIPH_LEDC_MODULE: - return PCR_LEDC_CONF_REG; - case PERIPH_PCNT_MODULE: - return PCR_PCNT_CONF_REG; - case PERIPH_UART0_MODULE: - return PCR_UART0_CONF_REG; - case PERIPH_UART1_MODULE: - return PCR_UART1_CONF_REG; - case PERIPH_I2C0_MODULE: - return PCR_I2C0_CONF_REG; - case PERIPH_I2C1_MODULE: - return PCR_I2C1_CONF_REG; - case PERIPH_I2S0_MODULE: - return PCR_I2S_CONF_REG; case PERIPH_TIMG0_MODULE: return PCR_TIMERGROUP0_CONF_REG; case PERIPH_TIMG1_MODULE: @@ -234,20 +122,6 @@ static inline uint32_t periph_ll_get_clk_en_reg(periph_module_t periph) return PCR_UHCI_CONF_REG; case PERIPH_SYSTIMER_MODULE: return PCR_SYSTIMER_CONF_REG; - case PERIPH_SPI_MODULE: - return PCR_MSPI_CONF_REG; - case PERIPH_SPI2_MODULE: - return PCR_SPI2_CONF_REG; - case PERIPH_TWAI0_MODULE: - return PCR_TWAI0_CONF_REG; - case PERIPH_GDMA_MODULE: - return PCR_GDMA_CONF_REG; - case PERIPH_MCPWM0_MODULE: - return PCR_PWM_CONF_REG; - case PERIPH_ETM_MODULE: - return PCR_ETM_CONF_REG; - case PERIPH_PARLIO_MODULE: - return PCR_PARL_IO_CONF_REG; case PERIPH_AES_MODULE: return PCR_AES_CONF_REG; case PERIPH_SHA_MODULE: @@ -262,8 +136,6 @@ static inline uint32_t periph_ll_get_clk_en_reg(periph_module_t periph) return PCR_DS_CONF_REG; case PERIPH_ECDSA_MODULE: return PCR_ECDSA_CONF_REG; - case PERIPH_TEMPSENSOR_MODULE: - return PCR_TSENS_CLK_CONF_REG; case PERIPH_ASSIST_DEBUG_MODULE: return PCR_ASSIST_CONF_REG; default: @@ -271,28 +143,12 @@ static inline uint32_t periph_ll_get_clk_en_reg(periph_module_t periph) } } -static inline uint32_t periph_ll_get_rst_en_reg(periph_module_t periph) +static inline uint32_t periph_ll_get_rst_en_reg(shared_periph_module_t periph) { // ESP32H2-TODO: IDF-6400 switch (periph) { case PERIPH_SARADC_MODULE: return PCR_SARADC_CONF_REG; - case PERIPH_RMT_MODULE: - return PCR_RMT_CONF_REG; - case PERIPH_PCNT_MODULE: - return PCR_PCNT_CONF_REG; - case PERIPH_LEDC_MODULE: - return PCR_LEDC_CONF_REG; - case PERIPH_UART0_MODULE: - return PCR_UART0_CONF_REG; - case PERIPH_UART1_MODULE: - return PCR_UART1_CONF_REG; - case PERIPH_I2C0_MODULE: - return PCR_I2C0_CONF_REG; - case PERIPH_I2C1_MODULE: - return PCR_I2C1_CONF_REG; - case PERIPH_I2S0_MODULE: - return PCR_I2S_CONF_REG; case PERIPH_TIMG0_MODULE: return PCR_TIMERGROUP0_CONF_REG; case PERIPH_TIMG1_MODULE: @@ -301,20 +157,6 @@ static inline uint32_t periph_ll_get_rst_en_reg(periph_module_t periph) return PCR_UHCI_CONF_REG; case PERIPH_SYSTIMER_MODULE: return PCR_SYSTIMER_CONF_REG; - case PERIPH_SPI_MODULE: - return PCR_MSPI_CONF_REG; - case PERIPH_SPI2_MODULE: - return PCR_SPI2_CONF_REG; - case PERIPH_TWAI0_MODULE: - return PCR_TWAI0_CONF_REG; - case PERIPH_GDMA_MODULE: - return PCR_GDMA_CONF_REG; - case PERIPH_MCPWM0_MODULE: - return PCR_PWM_CONF_REG; - case PERIPH_ETM_MODULE: - return PCR_ETM_CONF_REG; - case PERIPH_PARLIO_MODULE: - return PCR_PARL_IO_CONF_REG; case PERIPH_AES_MODULE: return PCR_AES_CONF_REG; case PERIPH_SHA_MODULE: @@ -329,8 +171,6 @@ static inline uint32_t periph_ll_get_rst_en_reg(periph_module_t periph) return PCR_DS_CONF_REG; case PERIPH_ECDSA_MODULE: return PCR_ECDSA_CONF_REG; - case PERIPH_TEMPSENSOR_MODULE: - return PCR_TSENS_CLK_CONF_REG; case PERIPH_ASSIST_DEBUG_MODULE: return PCR_ASSIST_CONF_REG; default: @@ -338,13 +178,13 @@ static inline uint32_t periph_ll_get_rst_en_reg(periph_module_t periph) } } -static inline void periph_ll_enable_clk_clear_rst(periph_module_t periph) +static inline void periph_ll_enable_clk_clear_rst(shared_periph_module_t periph) { SET_PERI_REG_MASK(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)); CLEAR_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, true)); } -static inline void periph_ll_disable_clk_set_rst(periph_module_t periph) +static inline void periph_ll_disable_clk_set_rst(shared_periph_module_t periph) { CLEAR_PERI_REG_MASK(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)); SET_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); @@ -360,13 +200,13 @@ static inline void periph_ll_wifi_bt_module_disable_clk(void) // DPORT_CLEAR_PERI_REG_MASK(SYSTEM_WIFI_CLK_EN_REG, SYSTEM_WIFI_CLK_WIFI_BT_COMMON_M);// ESP32H2-TODO: IDF-6400 } -static inline void periph_ll_reset(periph_module_t periph) +static inline void periph_ll_reset(shared_periph_module_t periph) { SET_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); CLEAR_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); } -static inline bool periph_ll_periph_enabled(periph_module_t periph) +static inline bool periph_ll_periph_enabled(shared_periph_module_t periph) { return REG_GET_BIT(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)) == 0 && REG_GET_BIT(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)) != 0; diff --git a/components/hal/esp32s2/include/hal/clk_gate_ll.h b/components/hal/esp32s2/include/hal/clk_gate_ll.h index 82725b9c59..1d4d0fccf5 100644 --- a/components/hal/esp32s2/include/hal/clk_gate_ll.h +++ b/components/hal/esp32s2/include/hal/clk_gate_ll.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -20,49 +20,19 @@ extern "C" { #include "soc/dport_access.h" #include "soc/soc_caps.h" -static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) +static inline uint32_t periph_ll_get_clk_en_mask(shared_periph_module_t periph) { switch (periph) { - case PERIPH_SARADC_MODULE: - return DPORT_APB_SARADC_CLK_EN; - case PERIPH_LEDC_MODULE: - return DPORT_LEDC_CLK_EN; - case PERIPH_UART0_MODULE: - return DPORT_UART_CLK_EN; - case PERIPH_UART1_MODULE: - return DPORT_UART1_CLK_EN; - case PERIPH_USB_MODULE: - return DPORT_USB_CLK_EN; - case PERIPH_I2C0_MODULE: - return DPORT_I2C_EXT0_CLK_EN; - case PERIPH_I2C1_MODULE: - return DPORT_I2C_EXT1_CLK_EN; - case PERIPH_I2S0_MODULE: - return DPORT_I2S0_CLK_EN; case PERIPH_TIMG0_MODULE: return DPORT_TIMERGROUP_CLK_EN; case PERIPH_TIMG1_MODULE: return DPORT_TIMERGROUP1_CLK_EN; case PERIPH_UHCI0_MODULE: return DPORT_UHCI0_CLK_EN; - case PERIPH_UHCI1_MODULE: - return DPORT_UHCI1_CLK_EN; - case PERIPH_RMT_MODULE: - return DPORT_RMT_CLK_EN; - case PERIPH_PCNT_MODULE: - return DPORT_PCNT_CLK_EN; - case PERIPH_SPI_MODULE: - return DPORT_SPI01_CLK_EN; - case PERIPH_FSPI_MODULE: - return DPORT_SPI2_CLK_EN; - case PERIPH_HSPI_MODULE: - return DPORT_SPI3_CLK_EN; case PERIPH_SPI2_DMA_MODULE: return DPORT_SPI2_DMA_CLK_EN; case PERIPH_SPI3_DMA_MODULE: return DPORT_SPI3_DMA_CLK_EN; - case PERIPH_TWAI_MODULE: - return DPORT_TWAI_CLK_EN; case PERIPH_RNG_MODULE: return DPORT_WIFI_CLK_RNG_EN; case PERIPH_WIFI_MODULE: @@ -71,173 +41,66 @@ static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) return DPORT_WIFI_CLK_WIFI_BT_COMMON_M; case PERIPH_SYSTIMER_MODULE: return DPORT_SYSTIMER_CLK_EN; - case PERIPH_DEDIC_GPIO_MODULE: - return DPORT_CLK_EN_DEDICATED_GPIO; - case PERIPH_AES_MODULE: - return DPORT_CRYPTO_AES_CLK_EN; - case PERIPH_SHA_MODULE: - return DPORT_CRYPTO_SHA_CLK_EN; - case PERIPH_RSA_MODULE: - return DPORT_CRYPTO_RSA_CLK_EN; - case PERIPH_CRYPTO_DMA_MODULE: - return DPORT_CRYPTO_DMA_CLK_EN; - case PERIPH_SHA_DMA_MODULE: - return DPORT_CRYPTO_DMA_CLK_EN | DPORT_CRYPTO_SHA_CLK_EN; - case PERIPH_AES_DMA_MODULE: - return DPORT_CRYPTO_DMA_CLK_EN | DPORT_CRYPTO_AES_CLK_EN; default: return 0; } } -static inline uint32_t periph_ll_get_rst_en_mask(periph_module_t periph, bool enable) +static inline uint32_t periph_ll_get_rst_en_mask(shared_periph_module_t periph, bool enable) { (void)enable; // unused switch (periph) { - case PERIPH_SARADC_MODULE: - return DPORT_APB_SARADC_RST; - case PERIPH_LEDC_MODULE: - return DPORT_LEDC_RST; case PERIPH_WIFI_MODULE: return DPORT_WIFIMAC_RST; - case PERIPH_UART0_MODULE: - return DPORT_UART_RST; - case PERIPH_UART1_MODULE: - return DPORT_UART1_RST; - case PERIPH_USB_MODULE: - return DPORT_USB_RST; - case PERIPH_I2C0_MODULE: - return DPORT_I2C_EXT0_RST; - case PERIPH_I2C1_MODULE: - return DPORT_I2C_EXT1_RST; - case PERIPH_I2S0_MODULE: - return DPORT_I2S0_RST; case PERIPH_TIMG0_MODULE: return DPORT_TIMERGROUP_RST; case PERIPH_TIMG1_MODULE: return DPORT_TIMERGROUP1_RST; case PERIPH_UHCI0_MODULE: return DPORT_UHCI0_RST; - case PERIPH_UHCI1_MODULE: - return DPORT_UHCI1_RST; - case PERIPH_RMT_MODULE: - return DPORT_RMT_RST; - case PERIPH_PCNT_MODULE: - return DPORT_PCNT_RST; - case PERIPH_SPI_MODULE: - return DPORT_SPI01_RST; - case PERIPH_FSPI_MODULE: - return DPORT_SPI2_RST; - case PERIPH_HSPI_MODULE: - return DPORT_SPI3_RST; case PERIPH_SPI2_DMA_MODULE: return DPORT_SPI2_DMA_RST; case PERIPH_SPI3_DMA_MODULE: return DPORT_SPI3_DMA_RST; - case PERIPH_TWAI_MODULE: - return DPORT_TWAI_RST; case PERIPH_SYSTIMER_MODULE: return DPORT_SYSTIMER_RST; - case PERIPH_DEDIC_GPIO_MODULE: - return DPORT_RST_EN_DEDICATED_GPIO; - case PERIPH_AES_MODULE: - if (enable == true) { - // Clear reset on digital signature, otherwise AES unit is held in reset also. - return (DPORT_CRYPTO_AES_RST | DPORT_CRYPTO_DS_RST); - } else { - //Don't return other units to reset, as this pulls reset on RSA & SHA units, respectively. - return DPORT_CRYPTO_AES_RST; - } - case PERIPH_SHA_MODULE: - if (enable == true) { - // Clear reset on digital signature and HMAC, otherwise SHA is held in reset - return (DPORT_CRYPTO_SHA_RST | DPORT_CRYPTO_DS_RST | DPORT_CRYPTO_HMAC_RST); - } else { - // Don't assert reset on secure boot, otherwise AES is held in reset - return DPORT_CRYPTO_SHA_RST; - } - case PERIPH_RSA_MODULE: - if (enable == true) { - /* also clear reset on digital signature, otherwise RSA is held in reset */ - return (DPORT_CRYPTO_RSA_RST | DPORT_CRYPTO_DS_RST); - } else { - /* don't reset digital signature unit, as this resets AES also */ - return DPORT_CRYPTO_RSA_RST; - } - case PERIPH_CRYPTO_DMA_MODULE: - return DPORT_CRYPTO_DMA_RST; - - case PERIPH_AES_DMA_MODULE: - if (enable == true) { - // Clear reset on digital signature, otherwise AES unit is held in reset also. - return (DPORT_CRYPTO_AES_RST | DPORT_CRYPTO_DS_RST | DPORT_CRYPTO_DMA_RST); - } else { - //Don't return other units to reset, as this pulls reset on RSA & SHA units, respectively. - return (DPORT_CRYPTO_AES_RST | DPORT_CRYPTO_DMA_RST); - } - case PERIPH_SHA_DMA_MODULE: - if (enable == true) { - // Clear reset on digital signature and HMAC, otherwise SHA is held in reset - return (DPORT_CRYPTO_SHA_RST | DPORT_CRYPTO_DS_RST | DPORT_CRYPTO_HMAC_RST | DPORT_CRYPTO_DMA_RST); - } else { - // Don't assert reset on secure boot, otherwise AES is held in reset - return (DPORT_CRYPTO_SHA_RST | DPORT_CRYPTO_DMA_RST); - } default: return 0; } } -static inline uint32_t periph_ll_get_clk_en_reg(periph_module_t periph) +static inline uint32_t periph_ll_get_clk_en_reg(shared_periph_module_t periph) { switch (periph) { - case PERIPH_DEDIC_GPIO_MODULE: - return DPORT_CPU_PERI_CLK_EN_REG; case PERIPH_RNG_MODULE: case PERIPH_WIFI_MODULE: case PERIPH_WIFI_BT_COMMON_MODULE: return DPORT_WIFI_CLK_EN_REG; - case PERIPH_AES_MODULE: - case PERIPH_SHA_MODULE: - case PERIPH_RSA_MODULE: - case PERIPH_CRYPTO_DMA_MODULE: - case PERIPH_AES_DMA_MODULE: - case PERIPH_SHA_DMA_MODULE: - return DPORT_PERIP_CLK_EN1_REG; default: return DPORT_PERIP_CLK_EN_REG; } } -static inline uint32_t periph_ll_get_rst_en_reg(periph_module_t periph) +static inline uint32_t periph_ll_get_rst_en_reg(shared_periph_module_t periph) { switch (periph) { - case PERIPH_DEDIC_GPIO_MODULE: - return DPORT_CPU_PERI_RST_EN_REG; case PERIPH_RNG_MODULE: case PERIPH_WIFI_MODULE: case PERIPH_WIFI_BT_COMMON_MODULE: return DPORT_CORE_RST_EN_REG; - case PERIPH_AES_MODULE: - case PERIPH_SHA_MODULE: - case PERIPH_RSA_MODULE: - case PERIPH_CRYPTO_DMA_MODULE: - case PERIPH_AES_DMA_MODULE: - case PERIPH_SHA_DMA_MODULE: - return DPORT_PERIP_RST_EN1_REG; default: return DPORT_PERIP_RST_EN_REG; } } -static inline void periph_ll_enable_clk_clear_rst(periph_module_t periph) +static inline void periph_ll_enable_clk_clear_rst(shared_periph_module_t periph) { DPORT_SET_PERI_REG_MASK(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)); DPORT_CLEAR_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, true)); } -static inline void periph_ll_disable_clk_set_rst(periph_module_t periph) +static inline void periph_ll_disable_clk_set_rst(shared_periph_module_t periph) { DPORT_CLEAR_PERI_REG_MASK(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)); DPORT_SET_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); @@ -253,13 +116,13 @@ static inline void IRAM_ATTR periph_ll_wifi_bt_module_disable_clk(void) DPORT_CLEAR_PERI_REG_MASK(DPORT_WIFI_CLK_EN_REG, DPORT_WIFI_CLK_WIFI_BT_COMMON_M); } -static inline void periph_ll_reset(periph_module_t periph) +static inline void periph_ll_reset(shared_periph_module_t periph) { DPORT_SET_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); DPORT_CLEAR_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); } -static inline bool IRAM_ATTR periph_ll_periph_enabled(periph_module_t periph) +static inline bool IRAM_ATTR periph_ll_periph_enabled(shared_periph_module_t periph) { return DPORT_REG_GET_BIT(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)) == 0 && DPORT_REG_GET_BIT(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)) != 0; diff --git a/components/hal/esp32s3/include/hal/clk_gate_ll.h b/components/hal/esp32s3/include/hal/clk_gate_ll.h index 0d43fd4bb8..afa103303d 100644 --- a/components/hal/esp32s3/include/hal/clk_gate_ll.h +++ b/components/hal/esp32s3/include/hal/clk_gate_ll.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -20,57 +20,21 @@ extern "C" { #include "soc/dport_access.h" #include "soc/soc_caps.h" -static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) +static inline uint32_t periph_ll_get_clk_en_mask(shared_periph_module_t periph) { switch (periph) { - case PERIPH_SARADC_MODULE: - return SYSTEM_APB_SARADC_CLK_EN; - case PERIPH_RMT_MODULE: - return SYSTEM_RMT_CLK_EN; - case PERIPH_LEDC_MODULE: - return SYSTEM_LEDC_CLK_EN; - case PERIPH_UART0_MODULE: - return SYSTEM_UART_CLK_EN; case PERIPH_UART1_MODULE: return SYSTEM_UART1_CLK_EN; case PERIPH_UART2_MODULE: return SYSTEM_UART2_CLK_EN; - case PERIPH_USB_MODULE: - return SYSTEM_USB_CLK_EN; - case PERIPH_I2C0_MODULE: - return SYSTEM_I2C_EXT0_CLK_EN; - case PERIPH_I2C1_MODULE: - return SYSTEM_I2C_EXT1_CLK_EN; - case PERIPH_I2S0_MODULE: - return SYSTEM_I2S0_CLK_EN; - case PERIPH_I2S1_MODULE: - return SYSTEM_I2S1_CLK_EN; case PERIPH_LCD_CAM_MODULE: return SYSTEM_LCD_CAM_CLK_EN; case PERIPH_TIMG0_MODULE: return SYSTEM_TIMERGROUP_CLK_EN; case PERIPH_TIMG1_MODULE: return SYSTEM_TIMERGROUP1_CLK_EN; - case PERIPH_PWM0_MODULE: - return SYSTEM_PWM0_CLK_EN; - case PERIPH_PWM1_MODULE: - return SYSTEM_PWM1_CLK_EN; case PERIPH_UHCI0_MODULE: return SYSTEM_UHCI0_CLK_EN; - case PERIPH_UHCI1_MODULE: - return SYSTEM_UHCI1_CLK_EN; - case PERIPH_PCNT_MODULE: - return SYSTEM_PCNT_CLK_EN; - case PERIPH_SPI_MODULE: - return SYSTEM_SPI01_CLK_EN; - case PERIPH_SPI2_MODULE: - return SYSTEM_SPI2_CLK_EN; - case PERIPH_SPI3_MODULE: - return SYSTEM_SPI3_CLK_EN; - case PERIPH_SDMMC_MODULE: - return SYSTEM_SDIO_HOST_CLK_EN; - case PERIPH_TWAI_MODULE: - return SYSTEM_TWAI_CLK_EN; case PERIPH_RNG_MODULE: return SYSTEM_WIFI_CLK_RNG_EN; case PERIPH_WIFI_MODULE: @@ -79,186 +43,77 @@ static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) return SYSTEM_WIFI_CLK_BT_EN_M; case PERIPH_WIFI_BT_COMMON_MODULE: return SYSTEM_WIFI_CLK_WIFI_BT_COMMON_M; - case PERIPH_BT_BASEBAND_MODULE: - return SYSTEM_BT_BASEBAND_EN; - case PERIPH_BT_LC_MODULE: - return SYSTEM_BT_LC_EN; case PERIPH_SYSTIMER_MODULE: return SYSTEM_SYSTIMER_CLK_EN; - case PERIPH_DEDIC_GPIO_MODULE: - return SYSTEM_CLK_EN_DEDICATED_GPIO; - case PERIPH_GDMA_MODULE: - return SYSTEM_DMA_CLK_EN; - case PERIPH_AES_MODULE: - return SYSTEM_CRYPTO_AES_CLK_EN; - case PERIPH_SHA_MODULE: - return SYSTEM_CRYPTO_SHA_CLK_EN; - case PERIPH_RSA_MODULE: - return SYSTEM_CRYPTO_RSA_CLK_EN; - case PERIPH_HMAC_MODULE: - return SYSTEM_CRYPTO_HMAC_CLK_EN; - case PERIPH_DS_MODULE: - return SYSTEM_CRYPTO_DS_CLK_EN; default: return 0; } } -static inline uint32_t periph_ll_get_rst_en_mask(periph_module_t periph, bool enable) +static inline uint32_t periph_ll_get_rst_en_mask(shared_periph_module_t periph, bool enable) { switch (periph) { - case PERIPH_SARADC_MODULE: - return SYSTEM_APB_SARADC_RST; - case PERIPH_RMT_MODULE: - return SYSTEM_RMT_RST; - case PERIPH_LEDC_MODULE: - return SYSTEM_LEDC_RST; case PERIPH_WIFI_MODULE: return SYSTEM_WIFIMAC_RST; case PERIPH_BT_MODULE: return (SYSTEM_BTBB_RST | SYSTEM_BTBB_REG_RST | SYSTEM_RW_BTMAC_RST | SYSTEM_RW_BTLP_RST | SYSTEM_RW_BTMAC_REG_RST | SYSTEM_RW_BTLP_REG_RST); - case PERIPH_UART0_MODULE: - return SYSTEM_UART_RST; case PERIPH_UART1_MODULE: return SYSTEM_UART1_RST; case PERIPH_UART2_MODULE: return SYSTEM_UART2_RST; - case PERIPH_USB_MODULE: - return SYSTEM_USB_RST; - case PERIPH_I2C0_MODULE: - return SYSTEM_I2C_EXT0_RST; - case PERIPH_I2C1_MODULE: - return SYSTEM_I2C_EXT1_RST; - case PERIPH_I2S0_MODULE: - return SYSTEM_I2S0_RST; - case PERIPH_I2S1_MODULE: - return SYSTEM_I2S1_RST; case PERIPH_LCD_CAM_MODULE: return SYSTEM_LCD_CAM_RST; case PERIPH_TIMG0_MODULE: return SYSTEM_TIMERGROUP_RST; case PERIPH_TIMG1_MODULE: return SYSTEM_TIMERGROUP1_RST; - case PERIPH_PWM0_MODULE: - return SYSTEM_PWM0_RST; - case PERIPH_PWM1_MODULE: - return SYSTEM_PWM1_RST; case PERIPH_UHCI0_MODULE: return SYSTEM_UHCI0_RST; - case PERIPH_UHCI1_MODULE: - return SYSTEM_UHCI1_RST; - case PERIPH_PCNT_MODULE: - return SYSTEM_PCNT_RST; - case PERIPH_SPI_MODULE: - return SYSTEM_SPI01_RST; - case PERIPH_SPI2_MODULE: - return SYSTEM_SPI2_RST; - case PERIPH_SPI3_MODULE: - return SYSTEM_SPI3_RST; - case PERIPH_SDMMC_MODULE: - return SYSTEM_SDIO_HOST_RST; - case PERIPH_TWAI_MODULE: - return SYSTEM_TWAI_RST; case PERIPH_SYSTIMER_MODULE: return SYSTEM_SYSTIMER_RST; - case PERIPH_DEDIC_GPIO_MODULE: - return SYSTEM_RST_EN_DEDICATED_GPIO; - case PERIPH_GDMA_MODULE: - return SYSTEM_DMA_RST; - case PERIPH_HMAC_MODULE: - return SYSTEM_CRYPTO_HMAC_RST; - case PERIPH_DS_MODULE: - return SYSTEM_CRYPTO_DS_RST; - case PERIPH_AES_MODULE: - if (enable == true) { - // Clear reset on digital signature, otherwise AES unit is held in reset also. - return (SYSTEM_CRYPTO_AES_RST | SYSTEM_CRYPTO_DS_RST); - } else { - //Don't return other units to reset, as this pulls reset on RSA & SHA units, respectively. - return SYSTEM_CRYPTO_AES_RST; - } - case PERIPH_SHA_MODULE: - if (enable == true) { - // Clear reset on digital signature and HMAC, otherwise SHA is held in reset - return (SYSTEM_CRYPTO_SHA_RST | SYSTEM_CRYPTO_DS_RST | SYSTEM_CRYPTO_HMAC_RST) ; - } else { - // Don't assert reset on secure boot, otherwise AES is held in reset - return SYSTEM_CRYPTO_SHA_RST; - } - case PERIPH_RSA_MODULE: - if (enable == true) { - /* also clear reset on digital signature, otherwise RSA is held in reset */ - return (SYSTEM_CRYPTO_RSA_RST | SYSTEM_CRYPTO_DS_RST); - } else { - /* don't reset digital signature unit, as this resets AES also */ - return SYSTEM_CRYPTO_RSA_RST; - } default: return 0; } } -static inline uint32_t periph_ll_get_clk_en_reg(periph_module_t periph) +static inline uint32_t periph_ll_get_clk_en_reg(shared_periph_module_t periph) { switch (periph) { - case PERIPH_DEDIC_GPIO_MODULE: - return SYSTEM_CPU_PERI_CLK_EN_REG; case PERIPH_RNG_MODULE: case PERIPH_WIFI_MODULE: case PERIPH_BT_MODULE: case PERIPH_WIFI_BT_COMMON_MODULE: - case PERIPH_BT_BASEBAND_MODULE: - case PERIPH_BT_LC_MODULE: - return SYSTEM_WIFI_CLK_EN_REG ; case PERIPH_UART2_MODULE: - case PERIPH_SDMMC_MODULE: case PERIPH_LCD_CAM_MODULE: - case PERIPH_GDMA_MODULE: - case PERIPH_HMAC_MODULE: - case PERIPH_DS_MODULE: - case PERIPH_AES_MODULE: - case PERIPH_SHA_MODULE: - case PERIPH_RSA_MODULE: return SYSTEM_PERIP_CLK_EN1_REG; default: return SYSTEM_PERIP_CLK_EN0_REG; } } -static inline uint32_t periph_ll_get_rst_en_reg(periph_module_t periph) +static inline uint32_t periph_ll_get_rst_en_reg(shared_periph_module_t periph) { switch (periph) { - case PERIPH_DEDIC_GPIO_MODULE: - return SYSTEM_CPU_PERI_RST_EN_REG; case PERIPH_RNG_MODULE: case PERIPH_WIFI_MODULE: case PERIPH_BT_MODULE: case PERIPH_WIFI_BT_COMMON_MODULE: - case PERIPH_BT_BASEBAND_MODULE: - case PERIPH_BT_LC_MODULE: return SYSTEM_CORE_RST_EN_REG; case PERIPH_UART2_MODULE: - case PERIPH_SDMMC_MODULE: case PERIPH_LCD_CAM_MODULE: - case PERIPH_GDMA_MODULE: - case PERIPH_HMAC_MODULE: - case PERIPH_DS_MODULE: - case PERIPH_AES_MODULE: - case PERIPH_SHA_MODULE: - case PERIPH_RSA_MODULE: return SYSTEM_PERIP_RST_EN1_REG; default: return SYSTEM_PERIP_RST_EN0_REG; } } -static inline void periph_ll_enable_clk_clear_rst(periph_module_t periph) +static inline void periph_ll_enable_clk_clear_rst(shared_periph_module_t periph) { DPORT_SET_PERI_REG_MASK(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)); DPORT_CLEAR_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, true)); } -static inline void periph_ll_disable_clk_set_rst(periph_module_t periph) +static inline void periph_ll_disable_clk_set_rst(shared_periph_module_t periph) { DPORT_CLEAR_PERI_REG_MASK(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)); DPORT_SET_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); @@ -274,13 +129,13 @@ static inline void IRAM_ATTR periph_ll_wifi_bt_module_disable_clk(void) DPORT_CLEAR_PERI_REG_MASK(SYSTEM_WIFI_CLK_EN_REG, SYSTEM_WIFI_CLK_WIFI_BT_COMMON_M); } -static inline void periph_ll_reset(periph_module_t periph) +static inline void periph_ll_reset(shared_periph_module_t periph) { DPORT_SET_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); DPORT_CLEAR_PERI_REG_MASK(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)); } -static inline bool IRAM_ATTR periph_ll_periph_enabled(periph_module_t periph) +static inline bool IRAM_ATTR periph_ll_periph_enabled(shared_periph_module_t periph) { return DPORT_REG_GET_BIT(periph_ll_get_rst_en_reg(periph), periph_ll_get_rst_en_mask(periph, false)) == 0 && DPORT_REG_GET_BIT(periph_ll_get_clk_en_reg(periph), periph_ll_get_clk_en_mask(periph)) != 0; diff --git a/components/soc/esp32/include/soc/periph_defs.h b/components/soc/esp32/include/soc/periph_defs.h index da81a70d59..f76453d92b 100644 --- a/components/soc/esp32/include/soc/periph_defs.h +++ b/components/soc/esp32/include/soc/periph_defs.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -11,43 +11,22 @@ extern "C" { #endif typedef enum { - PERIPH_LEDC_MODULE = 0, - PERIPH_UART0_MODULE, PERIPH_UART1_MODULE, PERIPH_UART2_MODULE, - PERIPH_I2C0_MODULE, - PERIPH_I2C1_MODULE, PERIPH_I2S0_MODULE, - PERIPH_I2S1_MODULE, PERIPH_TIMG0_MODULE, PERIPH_TIMG1_MODULE, - PERIPH_PWM0_MODULE, - PERIPH_PWM1_MODULE, PERIPH_UHCI0_MODULE, - PERIPH_UHCI1_MODULE, - PERIPH_RMT_MODULE, - PERIPH_PCNT_MODULE, PERIPH_SPI_MODULE, PERIPH_HSPI_MODULE, PERIPH_VSPI_MODULE, - PERIPH_SPI_DMA_MODULE, - PERIPH_SDMMC_MODULE, - PERIPH_SDIO_SLAVE_MODULE, - PERIPH_TWAI_MODULE, - PERIPH_CAN_MODULE = PERIPH_TWAI_MODULE, - PERIPH_EMAC_MODULE, PERIPH_RNG_MODULE, PERIPH_WIFI_MODULE, PERIPH_BT_MODULE, PERIPH_WIFI_BT_COMMON_MODULE, PERIPH_BT_BASEBAND_MODULE, - PERIPH_BT_LC_MODULE, - PERIPH_AES_MODULE, - PERIPH_SHA_MODULE, - PERIPH_RSA_MODULE, - PERIPH_SARADC_MODULE, PERIPH_MODULE_MAX -} periph_module_t; +} shared_periph_module_t; #ifdef __cplusplus } diff --git a/components/soc/esp32/lcd_periph.c b/components/soc/esp32/lcd_periph.c index 20bfe02713..ab153b3daa 100644 --- a/components/soc/esp32/lcd_periph.c +++ b/components/soc/esp32/lcd_periph.c @@ -11,7 +11,6 @@ const lcd_i2s_signal_conn_t lcd_periph_i2s_signals = { .buses = { [0] = { - .module = PERIPH_I2S0_MODULE, .irq_id = ETS_I2S0_INTR_SOURCE, .data_sigs = { I2S0O_DATA_OUT0_IDX, @@ -42,7 +41,6 @@ const lcd_i2s_signal_conn_t lcd_periph_i2s_signals = { .wr_sig = I2S0O_WS_OUT_IDX, }, [1] = { - .module = PERIPH_I2S1_MODULE, .irq_id = ETS_I2S1_INTR_SOURCE, .data_sigs = { I2S1O_DATA_OUT0_IDX, diff --git a/components/soc/esp32c2/include/soc/periph_defs.h b/components/soc/esp32c2/include/soc/periph_defs.h index fffb80134a..23665dd317 100644 --- a/components/soc/esp32c2/include/soc/periph_defs.h +++ b/components/soc/esp32c2/include/soc/periph_defs.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2020-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -13,32 +13,15 @@ extern "C" { #endif typedef enum { - PERIPH_LEDC_MODULE = 0, - PERIPH_UART0_MODULE, - PERIPH_UART1_MODULE, - PERIPH_I2C0_MODULE, PERIPH_TIMG0_MODULE, - PERIPH_TIMG1_MODULE, //No timg1 on esp32c2, please remove TODO: IDF-3825 PERIPH_UHCI0_MODULE, - PERIPH_SPI_MODULE, //SPI1 - PERIPH_SPI2_MODULE, //SPI2 PERIPH_RNG_MODULE, PERIPH_WIFI_MODULE, PERIPH_BT_MODULE, PERIPH_WIFI_BT_COMMON_MODULE, - PERIPH_BT_BASEBAND_MODULE, - PERIPH_BT_LC_MODULE, - PERIPH_AES_MODULE, - PERIPH_SHA_MODULE, - PERIPH_ECC_MODULE, - PERIPH_GDMA_MODULE, PERIPH_SYSTIMER_MODULE, - PERIPH_SARADC_MODULE, - PERIPH_TEMPSENSOR_MODULE, - PERIPH_MODEM_RPA_MODULE, - PERIPH_ASSIST_DEBUG_MODULE, PERIPH_MODULE_MAX -} periph_module_t; +} shared_periph_module_t; #ifdef __cplusplus } diff --git a/components/soc/esp32c3/include/soc/periph_defs.h b/components/soc/esp32c3/include/soc/periph_defs.h index 708ec23a83..d97ccd4239 100644 --- a/components/soc/esp32c3/include/soc/periph_defs.h +++ b/components/soc/esp32c3/include/soc/periph_defs.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2020-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -13,37 +13,17 @@ extern "C" { #endif typedef enum { - PERIPH_LEDC_MODULE = 0, - PERIPH_UART0_MODULE, PERIPH_UART1_MODULE, - PERIPH_USB_DEVICE_MODULE, - PERIPH_I2C0_MODULE, - PERIPH_I2S0_MODULE, PERIPH_TIMG0_MODULE, PERIPH_TIMG1_MODULE, PERIPH_UHCI0_MODULE, - PERIPH_RMT_MODULE, - PERIPH_SPI_MODULE, //SPI1 - PERIPH_SPI2_MODULE, //SPI2 - PERIPH_TWAI_MODULE, PERIPH_RNG_MODULE, PERIPH_WIFI_MODULE, PERIPH_BT_MODULE, PERIPH_WIFI_BT_COMMON_MODULE, - PERIPH_BT_BASEBAND_MODULE, - PERIPH_BT_LC_MODULE, - PERIPH_RSA_MODULE, - PERIPH_AES_MODULE, - PERIPH_SHA_MODULE, - PERIPH_HMAC_MODULE, - PERIPH_DS_MODULE, - PERIPH_GDMA_MODULE, PERIPH_SYSTIMER_MODULE, - PERIPH_SARADC_MODULE, - PERIPH_TEMPSENSOR_MODULE, - PERIPH_ASSIST_DEBUG_MODULE, PERIPH_MODULE_MAX -} periph_module_t; +} shared_periph_module_t; #ifdef __cplusplus } diff --git a/components/soc/esp32c5/include/soc/periph_defs.h b/components/soc/esp32c5/include/soc/periph_defs.h index c84c73b7e6..8c959568f0 100644 --- a/components/soc/esp32c5/include/soc/periph_defs.h +++ b/components/soc/esp32c5/include/soc/periph_defs.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -16,54 +16,10 @@ extern "C" { typedef enum { /* HP peripherals */ - PERIPH_LEDC_MODULE = 0, - PERIPH_UART0_MODULE, - PERIPH_UART1_MODULE, - PERIPH_USB_DEVICE_MODULE, // USB Serial Jtag - PERIPH_I2C0_MODULE, - PERIPH_I2S_MODULE, PERIPH_TIMG0_MODULE, PERIPH_TIMG1_MODULE, PERIPH_UHCI0_MODULE, - PERIPH_RMT_MODULE, - PERIPH_PCNT_MODULE, - PERIPH_MSPI0_MODULE, //SPI0 - PERIPH_MSPI1_MODULE, //SPI1 - PERIPH_GPSPI2_MODULE, //SPI2 - PERIPH_TWAI0_MODULE, - PERIPH_TWAI1_MODULE, - PERIPH_RNG_MODULE, - PERIPH_RSA_MODULE, - PERIPH_AES_MODULE, - PERIPH_SHA_MODULE, - PERIPH_ECC_MODULE, - PERIPH_HMAC_MODULE, - PERIPH_DS_MODULE, - PERIPH_GDMA_MODULE, - PERIPH_MCPWM0_MODULE, - PERIPH_ETM_MODULE, - PERIPH_PARLIO_MODULE, PERIPH_SYSTIMER_MODULE, - PERIPH_SARADC_MODULE, - PERIPH_TEMPSENSOR_MODULE, - PERIPH_ASSIST_DEBUG_MODULE, - PERIPH_INT_MATRIX_MODULE, - PERIPH_PVT_MONITOR_MODULE, - PERIPH_BITSCRAMBLER_MODULE, - PERIPH_KEY_MANAGE_MODULE, - PERIPH_ECDSA_MODULE, - PERIPH_MEM_MONITOR_MODULE, - PERIPH_TEE_MODULE, - PERIPH_HP_APM_MODULE, - /* LP peripherals */ - PERIPH_LP_I2C0_MODULE, - PERIPH_LP_UART0_MODULE, - PERIPH_LP_TEE_MODULE, - PERIPH_LP_APM_MODULE, - PERIPH_LP_ANA_PERI_MODULE, - PERIPH_LP_PERI_MODULE, - PERIPH_HUK_MODULE, - PERIPH_OTP_DEBUG_MODULE, /* Peripherals clock managed by the modem_clock driver must be listed last in the enumeration */ PERIPH_WIFI_MODULE, PERIPH_BT_MODULE, @@ -76,7 +32,7 @@ typedef enum { PERIPH_PHY_CALIBRATION_MODULE, PERIPH_MODULE_MAX /* !!! Don't append soc modules here !!! */ -} periph_module_t; +} shared_periph_module_t; #define PERIPH_MODEM_MODULE_MIN PERIPH_WIFI_MODULE #define PERIPH_MODEM_MODULE_MAX PERIPH_PHY_CALIBRATION_MODULE diff --git a/components/soc/esp32c5/parlio_periph.c b/components/soc/esp32c5/parlio_periph.c index ba1c9f21f6..7bd78b9970 100644 --- a/components/soc/esp32c5/parlio_periph.c +++ b/components/soc/esp32c5/parlio_periph.c @@ -11,7 +11,6 @@ const parlio_signal_conn_t parlio_periph_signals = { .groups = { [0] = { .module_name = "PARLIO0", - .module = PERIPH_PARLIO_MODULE, .tx_irq_id = ETS_PARL_IO_TX_INTR_SOURCE, .rx_irq_id = ETS_PARL_IO_RX_INTR_SOURCE, .tx_units = { diff --git a/components/soc/esp32c6/include/soc/periph_defs.h b/components/soc/esp32c6/include/soc/periph_defs.h index 65cb21953c..7ded3cfb17 100644 --- a/components/soc/esp32c6/include/soc/periph_defs.h +++ b/components/soc/esp32c6/include/soc/periph_defs.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -14,22 +14,9 @@ extern "C" { typedef enum { /* HP peripherals */ - PERIPH_LEDC_MODULE = 0, - PERIPH_UART0_MODULE, - PERIPH_UART1_MODULE, - PERIPH_USB_DEVICE_MODULE, - PERIPH_I2C0_MODULE, - PERIPH_I2S0_MODULE, PERIPH_TIMG0_MODULE, PERIPH_TIMG1_MODULE, PERIPH_UHCI0_MODULE, - PERIPH_RMT_MODULE, - PERIPH_PCNT_MODULE, - PERIPH_SPI_MODULE, //SPI1 - PERIPH_SPI2_MODULE, //SPI2 - PERIPH_TWAI0_MODULE, - PERIPH_TWAI1_MODULE, - PERIPH_RNG_MODULE, PERIPH_RSA_MODULE, PERIPH_AES_MODULE, PERIPH_SHA_MODULE, @@ -37,17 +24,9 @@ typedef enum { PERIPH_HMAC_MODULE, PERIPH_DS_MODULE, PERIPH_SDIO_SLAVE_MODULE, - PERIPH_GDMA_MODULE, - PERIPH_MCPWM0_MODULE, - PERIPH_ETM_MODULE, - PERIPH_PARLIO_MODULE, PERIPH_SYSTIMER_MODULE, PERIPH_SARADC_MODULE, - PERIPH_TEMPSENSOR_MODULE, PERIPH_ASSIST_DEBUG_MODULE, - /* LP peripherals */ - PERIPH_LP_I2C0_MODULE, - PERIPH_LP_UART0_MODULE, /* Peripherals clock managed by the modem_clock driver must be listed last in the enumeration */ PERIPH_WIFI_MODULE, PERIPH_BT_MODULE, @@ -59,7 +38,7 @@ typedef enum { PERIPH_MODEM_ADC_COMMON_FE_MODULE, PERIPH_MODULE_MAX /* !!! Don't append soc modules here !!! */ -} periph_module_t; +} shared_periph_module_t; #define PERIPH_MODEM_MODULE_MIN PERIPH_WIFI_MODULE #define PERIPH_MODEM_MODULE_MAX PERIPH_MODEM_ADC_COMMON_FE_MODULE diff --git a/components/soc/esp32c6/parlio_periph.c b/components/soc/esp32c6/parlio_periph.c index 9780a5609c..34433d7ce0 100644 --- a/components/soc/esp32c6/parlio_periph.c +++ b/components/soc/esp32c6/parlio_periph.c @@ -11,7 +11,6 @@ const parlio_signal_conn_t parlio_periph_signals = { .groups = { [0] = { .module_name = "PARLIO0", - .module = PERIPH_PARLIO_MODULE, .tx_irq_id = ETS_PARL_IO_INTR_SOURCE, .rx_irq_id = ETS_PARL_IO_INTR_SOURCE, .tx_units = { diff --git a/components/soc/esp32c61/include/soc/periph_defs.h b/components/soc/esp32c61/include/soc/periph_defs.h index f4c771a385..b7ad1d82ef 100644 --- a/components/soc/esp32c61/include/soc/periph_defs.h +++ b/components/soc/esp32c61/include/soc/periph_defs.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -14,25 +14,9 @@ extern "C" { typedef enum { /* HP peripherals */ - PERIPH_LEDC_MODULE = 0, - PERIPH_UART0_MODULE, - PERIPH_UART1_MODULE, - PERIPH_USB_DEVICE_MODULE, - PERIPH_I2C0_MODULE, - PERIPH_I2S1_MODULE, PERIPH_TIMG0_MODULE, PERIPH_TIMG1_MODULE, - PERIPH_SPI_MODULE, //SPI1 - PERIPH_SPI2_MODULE, //SPI2 - PERIPH_RNG_MODULE, - PERIPH_SHA_MODULE, - PERIPH_ECC_MODULE, - PERIPH_GDMA_MODULE, - PERIPH_ETM_MODULE, PERIPH_SYSTIMER_MODULE, - PERIPH_SARADC_MODULE, - PERIPH_TEMPSENSOR_MODULE, - PERIPH_ASSIST_DEBUG_MODULE, /* Peripherals clock managed by the modem_clock driver must be listed last in the enumeration */ PERIPH_WIFI_MODULE, PERIPH_BT_MODULE, @@ -45,7 +29,7 @@ typedef enum { PERIPH_PHY_CALIBRATION_MODULE, PERIPH_MODULE_MAX /* !!! Don't append soc modules here !!! */ -} periph_module_t; +} shared_periph_module_t; #define PERIPH_MODEM_MODULE_MIN PERIPH_WIFI_MODULE #define PERIPH_MODEM_MODULE_MAX PERIPH_PHY_CALIBRATION_MODULE diff --git a/components/soc/esp32h2/include/soc/periph_defs.h b/components/soc/esp32h2/include/soc/periph_defs.h index 01faf4437c..ad7183462e 100644 --- a/components/soc/esp32h2/include/soc/periph_defs.h +++ b/components/soc/esp32h2/include/soc/periph_defs.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -13,22 +13,9 @@ extern "C" { #endif typedef enum { - PERIPH_LEDC_MODULE = 0, - PERIPH_UART0_MODULE, - PERIPH_UART1_MODULE, - PERIPH_USB_DEVICE_MODULE, - PERIPH_I2C0_MODULE, - PERIPH_I2C1_MODULE, - PERIPH_I2S0_MODULE, PERIPH_TIMG0_MODULE, PERIPH_TIMG1_MODULE, PERIPH_UHCI0_MODULE, - PERIPH_RMT_MODULE, - PERIPH_PCNT_MODULE, - PERIPH_SPI_MODULE, //SPI1 - PERIPH_SPI2_MODULE, //SPI2 - PERIPH_TWAI0_MODULE, - PERIPH_RNG_MODULE, PERIPH_RSA_MODULE, PERIPH_AES_MODULE, PERIPH_SHA_MODULE, @@ -36,13 +23,8 @@ typedef enum { PERIPH_HMAC_MODULE, PERIPH_DS_MODULE, PERIPH_ECDSA_MODULE, - PERIPH_GDMA_MODULE, - PERIPH_MCPWM0_MODULE, - PERIPH_ETM_MODULE, - PERIPH_PARLIO_MODULE, PERIPH_SYSTIMER_MODULE, PERIPH_SARADC_MODULE, - PERIPH_TEMPSENSOR_MODULE, PERIPH_ASSIST_DEBUG_MODULE, /* Peripherals clock managed by the modem_clock driver must be listed last in the enumeration */ PERIPH_BT_MODULE, @@ -54,7 +36,7 @@ typedef enum { PERIPH_MODEM_ADC_COMMON_FE_MODULE, PERIPH_MODULE_MAX /* !!! Don't append soc modules here !!! */ -} periph_module_t; +} shared_periph_module_t; #define PERIPH_MODEM_MODULE_MIN PERIPH_BT_MODULE #define PERIPH_MODEM_MODULE_MAX PERIPH_MODEM_ADC_COMMON_FE_MODULE diff --git a/components/soc/esp32h2/parlio_periph.c b/components/soc/esp32h2/parlio_periph.c index b667d302c0..15475301d4 100644 --- a/components/soc/esp32h2/parlio_periph.c +++ b/components/soc/esp32h2/parlio_periph.c @@ -11,7 +11,6 @@ const parlio_signal_conn_t parlio_periph_signals = { .groups = { [0] = { .module_name = "PARLIO0", - .module = PERIPH_PARLIO_MODULE, .tx_irq_id = ETS_PARL_IO_TX_INTR_SOURCE, .rx_irq_id = ETS_PARL_IO_RX_INTR_SOURCE, .tx_units = { diff --git a/components/soc/esp32h21/include/soc/periph_defs.h b/components/soc/esp32h21/include/soc/periph_defs.h index 9044603a06..798e342ebc 100644 --- a/components/soc/esp32h21/include/soc/periph_defs.h +++ b/components/soc/esp32h21/include/soc/periph_defs.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -14,37 +14,10 @@ extern "C" { // TODO: IDF-11855 typedef enum { - PERIPH_LEDC_MODULE = 0, - PERIPH_UART0_MODULE, - PERIPH_UART1_MODULE, - PERIPH_USB_DEVICE_MODULE, - PERIPH_I2C0_MODULE, - PERIPH_I2C1_MODULE, - PERIPH_I2S1_MODULE, PERIPH_TIMG0_MODULE, PERIPH_TIMG1_MODULE, PERIPH_UHCI0_MODULE, - PERIPH_RMT_MODULE, - PERIPH_PCNT_MODULE, - PERIPH_SPI_MODULE, //SPI1 - PERIPH_SPI2_MODULE, //SPI2 - PERIPH_TWAI0_MODULE, - PERIPH_RNG_MODULE, - PERIPH_RSA_MODULE, - PERIPH_AES_MODULE, - PERIPH_SHA_MODULE, - PERIPH_ECC_MODULE, - PERIPH_HMAC_MODULE, - PERIPH_DS_MODULE, - PERIPH_ECDSA_MODULE, - PERIPH_GDMA_MODULE, - PERIPH_MCPWM0_MODULE, - PERIPH_ETM_MODULE, - PERIPH_PARLIO_MODULE, PERIPH_SYSTIMER_MODULE, - PERIPH_SARADC_MODULE, - PERIPH_TEMPSENSOR_MODULE, - PERIPH_ASSIST_DEBUG_MODULE, /* Peripherals clock managed by the modem_clock driver must be listed last in the enumeration */ PERIPH_BT_MODULE, PERIPH_IEEE802154_MODULE, @@ -55,7 +28,7 @@ typedef enum { PERIPH_MODEM_ADC_COMMON_FE_MODULE, PERIPH_MODULE_MAX /* !!! Don't append soc modules here !!! */ -} periph_module_t; +} shared_periph_module_t; #define PERIPH_MODEM_MODULE_MIN PERIPH_BT_MODULE #define PERIPH_MODEM_MODULE_MAX PERIPH_MODEM_ADC_COMMON_FE_MODULE diff --git a/components/soc/esp32h4/include/soc/periph_defs.h b/components/soc/esp32h4/include/soc/periph_defs.h index 935f39d235..f047baf829 100644 --- a/components/soc/esp32h4/include/soc/periph_defs.h +++ b/components/soc/esp32h4/include/soc/periph_defs.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -14,42 +14,10 @@ extern "C" { typedef enum { /* HP peripherals */ - PERIPH_LEDC_MODULE = 0, - PERIPH_UART0_MODULE, - PERIPH_UART1_MODULE, - PERIPH_USB_DEVICE_MODULE, - PERIPH_I2C0_MODULE, - PERIPH_I2C1_MODULE, - PERIPH_I2S1_MODULE, PERIPH_TIMG0_MODULE, PERIPH_TIMG1_MODULE, PERIPH_UHCI0_MODULE, - PERIPH_RMT_MODULE, - PERIPH_PCNT_MODULE, - PERIPH_SPI_MODULE, //SPI1 - PERIPH_SPI2_MODULE, //SPI2 - PERIPH_TWAI0_MODULE, - PERIPH_TWAI1_MODULE, - PERIPH_RNG_MODULE, - PERIPH_AES_MODULE, - PERIPH_SHA_MODULE, - PERIPH_ECC_MODULE, - PERIPH_HMAC_MODULE, - PERIPH_DS_MODULE, - PERIPH_SDIO_SLAVE_MODULE, - PERIPH_GDMA_MODULE, - PERIPH_MCPWM0_MODULE, - PERIPH_MCPWM1_MODULE, - PERIPH_ETM_MODULE, - PERIPH_PARLIO_MODULE, PERIPH_SYSTIMER_MODULE, - PERIPH_SARADC_MODULE, - PERIPH_TEMPSENSOR_MODULE, - PERIPH_REGDMA_MODULE, - PERIPH_ASSIST_DEBUG_MODULE, - /* LP peripherals */ - PERIPH_LP_I2C0_MODULE, - PERIPH_LP_UART0_MODULE, /* Peripherals clock managed by the modem_clock driver must be listed last in the enumeration */ PERIPH_BT_MODULE, PERIPH_IEEE802154_MODULE, @@ -60,7 +28,7 @@ typedef enum { PERIPH_MODEM_ADC_COMMON_FE_MODULE, PERIPH_MODULE_MAX /* !!! Don't append soc modules here !!! */ -} periph_module_t; +} shared_periph_module_t; #define PERIPH_MODEM_MODULE_MIN PERIPH_BT_MODULE #define PERIPH_MODEM_MODULE_MAX PERIPH_MODEM_ADC_COMMON_FE_MODULE diff --git a/components/soc/esp32p4/gdma_periph.c b/components/soc/esp32p4/gdma_periph.c index eb8970b30c..79213fb58e 100644 --- a/components/soc/esp32p4/gdma_periph.c +++ b/components/soc/esp32p4/gdma_periph.c @@ -11,7 +11,6 @@ const gdma_signal_conn_t gdma_periph_signals = { .groups = { [0] = { - .module = PERIPH_AHB_PDMA_MODULE, .pairs = { [0] = { .rx_irq_id = ETS_AHB_PDMA_IN_CH0_INTR_SOURCE, @@ -28,7 +27,6 @@ const gdma_signal_conn_t gdma_periph_signals = { } }, [1] = { - .module = PERIPH_AXI_PDMA_MODULE, .pairs = { [0] = { .rx_irq_id = ETS_AXI_PDMA_IN_CH0_INTR_SOURCE, diff --git a/components/soc/esp32p4/include/soc/periph_defs.h b/components/soc/esp32p4/include/soc/periph_defs.h index 7c7a6b8d9c..4978ed5196 100644 --- a/components/soc/esp32p4/include/soc/periph_defs.h +++ b/components/soc/esp32p4/include/soc/periph_defs.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -13,72 +13,14 @@ extern "C" { #endif typedef enum { - PERIPH_MSPI_FLASH_MODULE = 0, - PERIPH_MSPI_PSRAM_MODULE, - PERIPH_EMAC_MODULE, - PERIPH_MIPI_DSI_MODULE, - PERIPH_MIPI_CSI_MODULE, - PERIPH_I2C0_MODULE, - PERIPH_I2C1_MODULE, - PERIPH_I2S0_MODULE, - PERIPH_I2S1_MODULE, - PERIPH_I2S2_MODULE, - - PERIPH_LCD_CAM_MODULE = 10, - PERIPH_UART0_MODULE, - PERIPH_UART1_MODULE, - PERIPH_UART2_MODULE, - PERIPH_UART3_MODULE, - PERIPH_UART4_MODULE, - PERIPH_TWAI0_MODULE, - PERIPH_TWAI1_MODULE, - PERIPH_TWAI2_MODULE, - PERIPH_GPSPI_MODULE, - - PERIPH_GPSPI2_MODULE = 20, - PERIPH_GPSPI3_MODULE, - PERIPH_PARLIO_MODULE, - PERIPH_I3C_MODULE, - PERIPH_MCPWM0_MODULE, - PERIPH_MCPWM1_MODULE, + PERIPH_LCD_CAM_MODULE, PERIPH_TIMG0_MODULE, PERIPH_TIMG1_MODULE, PERIPH_SYSTIMER_MODULE, - - PERIPH_LEDC_MODULE = 30, - PERIPH_RMT_MODULE, - PERIPH_SARADC_MODULE, - PERIPH_PVT_MODULE, - PERIPH_AES_MODULE, - PERIPH_DS_MODULE, - PERIPH_ECC_MODULE, - PERIPH_HMAC_MODULE, - PERIPH_RSA_MODULE, - PERIPH_SEC_MODULE, - - PERIPH_SHA_MODULE = 40, - PERIPH_ECDSA_MODULE, - PERIPH_ISP_MODULE, - PERIPH_SDMMC_MODULE, - PERIPH_GDMA_MODULE, - PERIPH_JPEG_MODULE, - PERIPH_DMA2D_MODULE, - PERIPH_PPA_MODULE, - PERIPH_AHB_PDMA_MODULE, - PERIPH_AXI_PDMA_MODULE, - PERIPH_UHCI_MODULE, - PERIPH_PCNT_MODULE, - PERIPH_ASSIST_DEBUG_MODULE, - PERIPH_BITSCRAMBLER_MODULE, - /* LP peripherals */ - PERIPH_LP_I2C0_MODULE, - PERIPH_LP_UART0_MODULE, - /* MISC */ PERIPH_ANA_I2C_MASTER_MODULE, - PERIPH_MODULE_MAX -} periph_module_t; +} shared_periph_module_t; #ifdef __cplusplus } diff --git a/components/soc/esp32p4/parlio_periph.c b/components/soc/esp32p4/parlio_periph.c index b055416e9a..f5fc910c58 100644 --- a/components/soc/esp32p4/parlio_periph.c +++ b/components/soc/esp32p4/parlio_periph.c @@ -11,7 +11,6 @@ const parlio_signal_conn_t parlio_periph_signals = { .groups = { [0] = { .module_name = "PARLIO0", - .module = PERIPH_PARLIO_MODULE, .tx_irq_id = ETS_HP_PARLIO_TX_INTR_SOURCE, .rx_irq_id = ETS_HP_PARLIO_RX_INTR_SOURCE, .tx_units = { diff --git a/components/soc/esp32s2/include/soc/periph_defs.h b/components/soc/esp32s2/include/soc/periph_defs.h index 9616810f32..55fe0ec19e 100644 --- a/components/soc/esp32s2/include/soc/periph_defs.h +++ b/components/soc/esp32s2/include/soc/periph_defs.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -13,40 +13,17 @@ extern "C" { #endif typedef enum { - PERIPH_LEDC_MODULE = 0, - PERIPH_UART0_MODULE, - PERIPH_UART1_MODULE, - PERIPH_USB_MODULE, - PERIPH_I2C0_MODULE, - PERIPH_I2C1_MODULE, - PERIPH_I2S0_MODULE, PERIPH_TIMG0_MODULE, PERIPH_TIMG1_MODULE, PERIPH_UHCI0_MODULE, - PERIPH_UHCI1_MODULE, - PERIPH_RMT_MODULE, - PERIPH_PCNT_MODULE, - PERIPH_SPI_MODULE, //SPI1 - PERIPH_FSPI_MODULE, //SPI2 - PERIPH_HSPI_MODULE, //SPI3 PERIPH_SPI2_DMA_MODULE, PERIPH_SPI3_DMA_MODULE, - PERIPH_TWAI_MODULE, PERIPH_RNG_MODULE, PERIPH_WIFI_MODULE, PERIPH_WIFI_BT_COMMON_MODULE, PERIPH_SYSTIMER_MODULE, - PERIPH_AES_MODULE, - PERIPH_SHA_MODULE, - PERIPH_RSA_MODULE, - PERIPH_CRYPTO_DMA_MODULE, //this DMA is shared between AES and SHA - PERIPH_AES_DMA_MODULE, - PERIPH_SHA_DMA_MODULE, - PERIPH_DEDIC_GPIO_MODULE, - PERIPH_SARADC_MODULE, - PERIPH_TEMPSENSOR_MODULE, PERIPH_MODULE_MAX -} periph_module_t; +} shared_periph_module_t; #ifdef __cplusplus } diff --git a/components/soc/esp32s2/lcd_periph.c b/components/soc/esp32s2/lcd_periph.c index b42bf9d426..17867fb172 100644 --- a/components/soc/esp32s2/lcd_periph.c +++ b/components/soc/esp32s2/lcd_periph.c @@ -10,7 +10,6 @@ const lcd_i2s_signal_conn_t lcd_periph_i2s_signals = { .buses = { [0] = { - .module = PERIPH_I2S0_MODULE, .irq_id = ETS_I2S0_INTR_SOURCE, .data_sigs = { I2S0O_DATA_OUT0_IDX, diff --git a/components/soc/esp32s3/include/soc/periph_defs.h b/components/soc/esp32s3/include/soc/periph_defs.h index ca93c51cbe..24b7ddf0eb 100644 --- a/components/soc/esp32s3/include/soc/periph_defs.h +++ b/components/soc/esp32s3/include/soc/periph_defs.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -13,49 +13,19 @@ extern "C" { #endif typedef enum { - PERIPH_LEDC_MODULE = 0, - PERIPH_UART0_MODULE, PERIPH_UART1_MODULE, PERIPH_UART2_MODULE, - PERIPH_USB_MODULE, - PERIPH_I2C0_MODULE, - PERIPH_I2C1_MODULE, - PERIPH_I2S0_MODULE, - PERIPH_I2S1_MODULE, PERIPH_LCD_CAM_MODULE, PERIPH_TIMG0_MODULE, PERIPH_TIMG1_MODULE, - PERIPH_PWM0_MODULE, - PERIPH_PWM1_MODULE, - PERIPH_PWM2_MODULE, - PERIPH_PWM3_MODULE, PERIPH_UHCI0_MODULE, - PERIPH_UHCI1_MODULE, - PERIPH_RMT_MODULE, - PERIPH_PCNT_MODULE, - PERIPH_SPI_MODULE, - PERIPH_SPI2_MODULE, - PERIPH_SPI3_MODULE, - PERIPH_SDMMC_MODULE, - PERIPH_TWAI_MODULE, PERIPH_RNG_MODULE, PERIPH_WIFI_MODULE, PERIPH_BT_MODULE, PERIPH_WIFI_BT_COMMON_MODULE, - PERIPH_BT_BASEBAND_MODULE, - PERIPH_BT_LC_MODULE, - PERIPH_AES_MODULE, - PERIPH_SHA_MODULE, - PERIPH_HMAC_MODULE, - PERIPH_DS_MODULE, - PERIPH_RSA_MODULE, PERIPH_SYSTIMER_MODULE, - PERIPH_GDMA_MODULE, - PERIPH_DEDIC_GPIO_MODULE, - PERIPH_SARADC_MODULE, - PERIPH_TEMPSENSOR_MODULE, PERIPH_MODULE_MAX -} periph_module_t; +} shared_periph_module_t; #ifdef __cplusplus } diff --git a/components/soc/include/soc/cam_periph.h b/components/soc/include/soc/cam_periph.h index e71f973656..9845e8927b 100644 --- a/components/soc/include/soc/cam_periph.h +++ b/components/soc/include/soc/cam_periph.h @@ -16,7 +16,7 @@ extern "C" { #if SOC_LCDCAM_CAM_SUPPORTED typedef struct { struct { - const periph_module_t module; + const shared_periph_module_t module; const int irq_id; const int data_sigs[SOC_LCDCAM_CAM_DATA_WIDTH_MAX]; const int hsync_sig; diff --git a/components/soc/include/soc/gdma_periph.h b/components/soc/include/soc/gdma_periph.h index 478aab39a9..11cf48bfdb 100644 --- a/components/soc/include/soc/gdma_periph.h +++ b/components/soc/include/soc/gdma_periph.h @@ -20,7 +20,7 @@ extern "C" { #if SOC_GDMA_SUPPORTED typedef struct { struct { - const periph_module_t module; + const shared_periph_module_t module; struct { const int rx_irq_id; const int tx_irq_id; diff --git a/components/soc/include/soc/ieee802154_periph.h b/components/soc/include/soc/ieee802154_periph.h index 5c414e91f6..b8428eb7ff 100644 --- a/components/soc/include/soc/ieee802154_periph.h +++ b/components/soc/include/soc/ieee802154_periph.h @@ -15,7 +15,7 @@ extern "C" { #endif typedef struct { - const periph_module_t module; // peripheral module + const shared_periph_module_t module; // peripheral module const int irq_id; // interrupt source ID } ieee802154_conn_t; diff --git a/components/soc/include/soc/lcd_periph.h b/components/soc/include/soc/lcd_periph.h index cabc94f51b..4e71ef2c45 100644 --- a/components/soc/include/soc/lcd_periph.h +++ b/components/soc/include/soc/lcd_periph.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -17,7 +17,7 @@ extern "C" { #if SOC_LCDCAM_I80_LCD_SUPPORTED typedef struct { struct { - const periph_module_t module; + const shared_periph_module_t module; const int irq_id; const int data_sigs[SOC_LCDCAM_I80_BUS_WIDTH]; const int cs_sig; @@ -32,7 +32,7 @@ extern const lcd_i80_signal_conn_t lcd_periph_i80_signals; #if SOC_LCDCAM_RGB_LCD_SUPPORTED typedef struct { struct { - const periph_module_t module; + const shared_periph_module_t module; const int irq_id; const int data_sigs[SOC_LCDCAM_RGB_DATA_WIDTH]; const int hsync_sig; @@ -49,7 +49,6 @@ extern const lcd_rgb_signal_conn_t lcd_periph_rgb_signals; #if SOC_I2S_SUPPORTS_LCD_CAMERA typedef struct { struct { - const periph_module_t module; const int irq_id; const int data_sigs[SOC_MODULE_ATTR(I2S, MAX_DATA_WIDTH)]; const int wr_sig; diff --git a/components/soc/include/soc/parlio_periph.h b/components/soc/include/soc/parlio_periph.h index 7d64be95af..d33e97c1a3 100644 --- a/components/soc/include/soc/parlio_periph.h +++ b/components/soc/include/soc/parlio_periph.h @@ -38,7 +38,7 @@ typedef struct { } rx_units[SOC_PARLIO_RX_UNITS_PER_GROUP]; const int tx_irq_id; const int rx_irq_id; - const periph_module_t module; + const shared_periph_module_t module; const char *module_name; } groups[SOC_PARLIO_GROUPS]; } parlio_signal_conn_t;