From 485f2882d1b99824212c7fad23afd2e788e04967 Mon Sep 17 00:00:00 2001 From: wuzhenghui Date: Wed, 22 Mar 2023 21:50:04 +0800 Subject: [PATCH] modem_clock: rename modem_clock_lp_timer to ble_rtc_timer --- components/esp_hw_support/modem_clock.c | 71 ++++++++++++++----- .../hal/esp32c6/include/hal/modem_clock_hal.h | 40 ----------- .../hal/esp32c6/include/hal/modem_lpcon_ll.h | 18 ++--- components/hal/esp32c6/modem_clock_hal.c | 34 +++++---- components/hal/esp32h2/modem_clock_hal.c | 2 +- .../include/hal/modem_clock_hal.h | 16 +++-- .../soc/esp32c6/include/soc/periph_defs.h | 1 + .../soc/esp32h2/include/soc/periph_defs.h | 15 ++-- 8 files changed, 106 insertions(+), 91 deletions(-) delete mode 100644 components/hal/esp32c6/include/hal/modem_clock_hal.h rename components/hal/{esp32h2 => }/include/hal/modem_clock_hal.h (77%) diff --git a/components/esp_hw_support/modem_clock.c b/components/esp_hw_support/modem_clock.c index 587498bb75..affb764fdc 100644 --- a/components/esp_hw_support/modem_clock.c +++ b/components/esp_hw_support/modem_clock.c @@ -10,6 +10,7 @@ #include "sdkconfig.h" #include "esp_attr.h" #include "soc/soc.h" +#include "soc/soc_caps.h" #include "freertos/FreeRTOS.h" #include "hal/clk_gate_ll.h" #include "esp_private/esp_modem_clock.h" @@ -46,6 +47,7 @@ typedef struct modem_clock_context { } modem_clock_context_t; +#if SOC_WIFI_SUPPORTED static void IRAM_ATTR modem_clock_wifi_mac_configure(modem_clock_context_t *ctx, bool enable) { if (enable) { @@ -60,7 +62,9 @@ static void IRAM_ATTR modem_clock_wifi_bb_configure(modem_clock_context_t *ctx, modem_syscon_ll_clk_wifibb_configure(ctx->hal->syscon_dev, enable); } } +#endif // SOC_WIFI_SUPPORTED +#if SOC_BT_SUPPORTED static void IRAM_ATTR modem_clock_ble_mac_configure(modem_clock_context_t *ctx, bool enable) { modem_syscon_ll_enable_etm_clock(ctx->hal->syscon_dev, enable); @@ -74,11 +78,15 @@ static void IRAM_ATTR modem_clock_ble_bb_configure(modem_clock_context_t *ctx, b modem_syscon_ll_enable_bt_clock(ctx->hal->syscon_dev, enable); } +#endif // SOC_BT_SUPPORTED + +#if SOC_IEEE802154_SUPPORTED static void IRAM_ATTR modem_clock_ieee802154_mac_configure(modem_clock_context_t *ctx, bool enable) { modem_syscon_ll_enable_ieee802154_apb_clock(ctx->hal->syscon_dev, enable); modem_syscon_ll_enable_ieee802154_mac_clock(ctx->hal->syscon_dev, enable); } +#endif // SOC_IEEE802154_SUPPORTED static void IRAM_ATTR modem_clock_coex_configure(modem_clock_context_t *ctx, bool enable) { @@ -121,12 +129,18 @@ modem_clock_context_t * __attribute__((weak)) IRAM_ATTR MODEM_CLOCK_instance(voi { .refs = 0, .configure = modem_clock_fe_configure }, { .refs = 0, .configure = modem_clock_coex_configure }, { .refs = 0, .configure = modem_clock_i2c_master_configure }, +#if SOC_WIFI_SUPPORTED { .refs = 0, .configure = modem_clock_wifi_mac_configure }, { .refs = 0, .configure = modem_clock_wifi_bb_configure }, +#endif // SOC_WIFI_SUPPORTED { .refs = 0, .configure = modem_clock_etm_configure }, +#if SOC_BT_SUPPORTED { .refs = 0, .configure = modem_clock_ble_mac_configure }, { .refs = 0, .configure = modem_clock_ble_bb_configure }, +#endif // SOC_BT_SUPPORTED +#if SOC_IEEE802154_SUPPORTED { .refs = 0, .configure = modem_clock_ieee802154_mac_configure }, +#endif // SOC_IEEE802154_SUPPORTED { .refs = 0, .configure = modem_clock_data_dump_configure } }, .lpclk_src = { [0 ... PERIPH_MODEM_MODULE_NUM - 1] = MODEM_CLOCK_LPCLK_SRC_INVALID } @@ -134,6 +148,7 @@ modem_clock_context_t * __attribute__((weak)) IRAM_ATTR MODEM_CLOCK_instance(voi return &modem_clock_context; } +#if SOC_PM_SUPPORT_PMU_MODEM_STATE static void IRAM_ATTR modem_clock_domain_power_state_icg_map_init(modem_clock_context_t *ctx) { #define ICG_NOGATING_SLEEP (BIT(PMU_HP_ICG_MODEM_CODE_SLEEP)) @@ -159,11 +174,11 @@ static void IRAM_ATTR modem_clock_domain_power_state_icg_map_init(modem_clock_co } } - void modem_clock_domain_pmu_state_icg_map_init(void) { modem_clock_domain_power_state_icg_map_init(MODEM_CLOCK_instance()); } +#endif // #if SOC_PM_SUPPORT_PMU_MODEM_STATE static void IRAM_ATTR modem_clock_device_enable(modem_clock_context_t *ctx, uint32_t dev_map) { @@ -203,27 +218,34 @@ static void IRAM_ATTR modem_clock_device_disable(modem_clock_context_t *ctx, uin #define COEXIST_CLOCK_DEPS (MODEM_CLOCK_COEXIST) #define PHY_CLOCK_DEPS (MODEM_CLOCK_I2C_MASTER | MODEM_CLOCK_FE) +static inline uint32_t modem_clock_get_module_deps(periph_module_t module) +{ + uint32_t deps = 0; + if (module == PERIPH_PHY_MODULE) {deps = PHY_CLOCK_DEPS;} + else if (module == PERIPH_COEX_MODULE) { deps = COEXIST_CLOCK_DEPS; } +#if SOC_WIFI_SUPPORTED + else if (module == PERIPH_WIFI_MODULE) { deps = WIFI_CLOCK_DEPS; } +#endif +#if SOC_BT_SUPPORTED + else if (module == PERIPH_BT_MODULE) { deps = BLE_CLOCK_DEPS; } +#endif +#if SOC_IEEE802154_SUPPORTED + else if (module == PERIPH_IEEE802154_MODULE) { deps = IEEE802154_CLOCK_DEPS; } +#endif + return deps; +} + void IRAM_ATTR modem_clock_module_enable(periph_module_t module) { assert(IS_MODEM_MODULE(module)); - const int deps = (module == PERIPH_WIFI_MODULE) ? WIFI_CLOCK_DEPS \ - : (module == PERIPH_BT_MODULE) ? BLE_CLOCK_DEPS \ - : (module == PERIPH_IEEE802154_MODULE) ? IEEE802154_CLOCK_DEPS \ - : (module == PERIPH_COEX_MODULE) ? COEXIST_CLOCK_DEPS \ - : (module == PERIPH_PHY_MODULE) ? PHY_CLOCK_DEPS \ - : 0; + uint32_t deps = modem_clock_get_module_deps(module); modem_clock_device_enable(MODEM_CLOCK_instance(), deps); } void IRAM_ATTR modem_clock_module_disable(periph_module_t module) { assert(IS_MODEM_MODULE(module)); - const int deps = (module == PERIPH_WIFI_MODULE) ? WIFI_CLOCK_DEPS \ - : (module == PERIPH_BT_MODULE) ? BLE_CLOCK_DEPS \ - : (module == PERIPH_IEEE802154_MODULE) ? IEEE802154_CLOCK_DEPS \ - : (module == PERIPH_COEX_MODULE) ? COEXIST_CLOCK_DEPS \ - : (module == PERIPH_PHY_MODULE) ? PHY_CLOCK_DEPS \ - : 0; + uint32_t deps = modem_clock_get_module_deps(module); modem_clock_device_disable(MODEM_CLOCK_instance(), deps); } @@ -233,18 +255,24 @@ void modem_clock_select_lp_clock_source(periph_module_t module, modem_clock_lpcl portENTER_CRITICAL_SAFE(&MODEM_CLOCK_instance()->lock); switch (module) { +#if SOC_WIFI_SUPPORTED case PERIPH_WIFI_MODULE: modem_clock_hal_deselect_all_wifi_lpclk_source(MODEM_CLOCK_instance()->hal); modem_clock_hal_select_wifi_lpclk_source(MODEM_CLOCK_instance()->hal, src); modem_lpcon_ll_set_wifi_lpclk_divisor_value(MODEM_CLOCK_instance()->hal->lpcon_dev, divider); modem_lpcon_ll_enable_wifipwr_clock(MODEM_CLOCK_instance()->hal->lpcon_dev, true); break; +#endif // SOC_WIFI_SUPPORTED + +#if SOC_BT_SUPPORTED case PERIPH_BT_MODULE: - modem_clock_hal_deselect_all_lp_timer_lpclk_source(MODEM_CLOCK_instance()->hal); - modem_clock_hal_select_lp_timer_lpclk_source(MODEM_CLOCK_instance()->hal, src); - modem_lpcon_ll_set_lp_timer_divisor_value(MODEM_CLOCK_instance()->hal->lpcon_dev, divider); - modem_lpcon_ll_enable_lp_timer_clock(MODEM_CLOCK_instance()->hal->lpcon_dev, true); + modem_clock_hal_deselect_all_ble_rtc_timer_lpclk_source(MODEM_CLOCK_instance()->hal); + modem_clock_hal_select_ble_rtc_timer_lpclk_source(MODEM_CLOCK_instance()->hal, src); + modem_clock_hal_set_ble_rtc_timer_divisor_value(MODEM_CLOCK_instance()->hal, divider); + modem_clock_hal_enable_ble_rtc_timer_clock(MODEM_CLOCK_instance()->hal, true); break; +#endif // SOC_BT_SUPPORTED + case PERIPH_COEX_MODULE: modem_clock_hal_deselect_all_coex_lpclk_source(MODEM_CLOCK_instance()->hal); modem_clock_hal_select_coex_lpclk_source(MODEM_CLOCK_instance()->hal, src); @@ -282,14 +310,19 @@ void modem_clock_deselect_lp_clock_source(periph_module_t module) portENTER_CRITICAL_SAFE(&MODEM_CLOCK_instance()->lock); switch (module) { +#if SOC_WIFI_SUPPORTED case PERIPH_WIFI_MODULE: modem_clock_hal_deselect_all_wifi_lpclk_source(MODEM_CLOCK_instance()->hal); modem_lpcon_ll_enable_wifipwr_clock(MODEM_CLOCK_instance()->hal->lpcon_dev, false); break; +#endif // SOC_WIFI_SUPPORTED + +#if SOC_BT_SUPPORTED case PERIPH_BT_MODULE: - modem_clock_hal_deselect_all_lp_timer_lpclk_source(MODEM_CLOCK_instance()->hal); - modem_lpcon_ll_enable_lp_timer_clock(MODEM_CLOCK_instance()->hal->lpcon_dev, false); + modem_clock_hal_deselect_all_ble_rtc_timer_lpclk_source(MODEM_CLOCK_instance()->hal); + modem_clock_hal_enable_ble_rtc_timer_clock(MODEM_CLOCK_instance()->hal, false); break; +#endif // SOC_BT_SUPPORTED case PERIPH_COEX_MODULE: modem_clock_hal_deselect_all_coex_lpclk_source(MODEM_CLOCK_instance()->hal); // modem_lpcon_ll_enable_coex_clock(MODEM_CLOCK_instance()->hal->lpcon_dev, false); // TODO: IDF-5727 diff --git a/components/hal/esp32c6/include/hal/modem_clock_hal.h b/components/hal/esp32c6/include/hal/modem_clock_hal.h deleted file mode 100644 index bbd6866fc8..0000000000 --- a/components/hal/esp32c6/include/hal/modem_clock_hal.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -// The HAL layer for MODEM CLOCK - -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif - -#include "hal/modem_syscon_ll.h" -#include "hal/modem_lpcon_ll.h" -#include "hal/modem_clock_types.h" - -typedef struct { - modem_syscon_dev_t *syscon_dev; - modem_lpcon_dev_t *lpcon_dev; -} modem_clock_hal_context_t; - -void modem_clock_hal_set_clock_domain_icg_bitmap(modem_clock_hal_context_t *hal, modem_clock_domain_t domain, uint32_t bitmap); - -void modem_clock_hal_select_lp_timer_lpclk_source(modem_clock_hal_context_t *hal, modem_clock_lpclk_src_t src); - -void modem_clock_hal_deselect_all_lp_timer_lpclk_source(modem_clock_hal_context_t *hal); - -void modem_clock_hal_select_coex_lpclk_source(modem_clock_hal_context_t *hal, modem_clock_lpclk_src_t src); - -void modem_clock_hal_deselect_all_coex_lpclk_source(modem_clock_hal_context_t *hal); - -void modem_clock_hal_select_wifi_lpclk_source(modem_clock_hal_context_t *hal, modem_clock_lpclk_src_t src); - -void modem_clock_hal_deselect_all_wifi_lpclk_source(modem_clock_hal_context_t *hal); - -#ifdef __cplusplus -} -#endif diff --git a/components/hal/esp32c6/include/hal/modem_lpcon_ll.h b/components/hal/esp32c6/include/hal/modem_lpcon_ll.h index 57ca3bd71c..e6c754005d 100644 --- a/components/hal/esp32c6/include/hal/modem_lpcon_ll.h +++ b/components/hal/esp32c6/include/hal/modem_lpcon_ll.h @@ -4,7 +4,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -// The LL layer for ESP32-C6 MODEM SYSCON register operations +// The LL layer for ESP32-C6 MODEM LPCON register operations #pragma once @@ -25,37 +25,37 @@ static inline void modem_lpcon_ll_enable_test_clk(modem_lpcon_dev_t *hw, bool en } __attribute__((always_inline)) -static inline void modem_lpcon_ll_enable_lp_timer_slow_osc(modem_lpcon_dev_t *hw, bool en) +static inline void modem_lpcon_ll_enable_ble_rtc_timer_slow_osc(modem_lpcon_dev_t *hw, bool en) { hw->lp_timer_conf.clk_lp_timer_sel_osc_slow = en; } __attribute__((always_inline)) -static inline void modem_lpcon_ll_enable_lp_timer_fast_osc(modem_lpcon_dev_t *hw, bool en) +static inline void modem_lpcon_ll_enable_ble_rtc_timer_fast_osc(modem_lpcon_dev_t *hw, bool en) { hw->lp_timer_conf.clk_lp_timer_sel_osc_fast = en; } __attribute__((always_inline)) -static inline void modem_lpcon_ll_enable_lp_timer_main_xtal(modem_lpcon_dev_t *hw, bool en) +static inline void modem_lpcon_ll_enable_ble_rtc_timer_main_xtal(modem_lpcon_dev_t *hw, bool en) { hw->lp_timer_conf.clk_lp_timer_sel_xtal = en; } __attribute__((always_inline)) -static inline void modem_lpcon_ll_enable_lp_timer_32k_xtal(modem_lpcon_dev_t *hw, bool en) +static inline void modem_lpcon_ll_enable_ble_rtc_timer_32k_xtal(modem_lpcon_dev_t *hw, bool en) { hw->lp_timer_conf.clk_lp_timer_sel_xtal32k = en; } __attribute__((always_inline)) -static inline void modem_lpcon_ll_set_lp_timer_divisor_value(modem_lpcon_dev_t *hw, uint32_t value) +static inline void modem_lpcon_ll_set_ble_rtc_timer_divisor_value(modem_lpcon_dev_t *hw, uint32_t value) { hw->lp_timer_conf.clk_lp_timer_div_num = value; } __attribute__((always_inline)) -static inline uint32_t modem_lpcon_ll_get_lp_timer_divisor_value(modem_lpcon_dev_t *hw) +static inline uint32_t modem_lpcon_ll_get_ble_rtc_timer_divisor_value(modem_lpcon_dev_t *hw) { return hw->lp_timer_conf.clk_lp_timer_div_num; } @@ -163,7 +163,7 @@ static inline void modem_lpcon_ll_enable_i2c_master_clock(modem_lpcon_dev_t *hw, } __attribute__((always_inline)) -static inline void modem_lpcon_ll_enable_lp_timer_clock(modem_lpcon_dev_t *hw, bool en) +static inline void modem_lpcon_ll_enable_ble_rtc_timer_clock(modem_lpcon_dev_t *hw, bool en) { hw->clk_conf.clk_lp_timer_en = en; } @@ -187,7 +187,7 @@ static inline void modem_lpcon_ll_enable_i2c_master_force_clock(modem_lpcon_dev_ } __attribute__((always_inline)) -static inline void modem_lpcon_ll_enable_lp_timer_force_clock(modem_lpcon_dev_t *hw, bool en) +static inline void modem_lpcon_ll_enable_ble_rtc_timer_force_clock(modem_lpcon_dev_t *hw, bool en) { hw->clk_conf_force_on.clk_lp_timer_fo = en; } diff --git a/components/hal/esp32c6/modem_clock_hal.c b/components/hal/esp32c6/modem_clock_hal.c index c634b85228..449006b701 100644 --- a/components/hal/esp32c6/modem_clock_hal.c +++ b/components/hal/esp32c6/modem_clock_hal.c @@ -68,39 +68,49 @@ void modem_clock_hal_enable_fe_clock(modem_clock_hal_context_t *hal, bool enable } } -void modem_clock_hal_deselect_all_lp_timer_lpclk_source(modem_clock_hal_context_t *hal) +void modem_clock_hal_set_ble_rtc_timer_divisor_value(modem_clock_hal_context_t *hal, uint32_t divider) { - modem_lpcon_ll_enable_lp_timer_slow_osc(hal->lpcon_dev, false); - modem_lpcon_ll_enable_lp_timer_fast_osc(hal->lpcon_dev, false); - modem_lpcon_ll_enable_lp_timer_32k_xtal(hal->lpcon_dev, false); - modem_lpcon_ll_enable_lp_timer_main_xtal(hal->lpcon_dev, false); + modem_lpcon_ll_set_ble_rtc_timer_divisor_value(hal->lpcon_dev, divider); } -void modem_clock_hal_select_lp_timer_lpclk_source(modem_clock_hal_context_t *hal, modem_clock_lpclk_src_t src) +void modem_clock_hal_enable_ble_rtc_timer_clock(modem_clock_hal_context_t *hal, bool enable) +{ + modem_lpcon_ll_enable_ble_rtc_timer_clock(hal->lpcon_dev, enable); +} + +void modem_clock_hal_deselect_all_ble_rtc_timer_lpclk_source(modem_clock_hal_context_t *hal) +{ + modem_lpcon_ll_enable_ble_rtc_timer_slow_osc(hal->lpcon_dev, false); + modem_lpcon_ll_enable_ble_rtc_timer_fast_osc(hal->lpcon_dev, false); + modem_lpcon_ll_enable_ble_rtc_timer_32k_xtal(hal->lpcon_dev, false); + modem_lpcon_ll_enable_ble_rtc_timer_main_xtal(hal->lpcon_dev, false); +} + +void modem_clock_hal_select_ble_rtc_timer_lpclk_source(modem_clock_hal_context_t *hal, modem_clock_lpclk_src_t src) { HAL_ASSERT(src < MODEM_CLOCK_LPCLK_SRC_MAX); switch (src) { case MODEM_CLOCK_LPCLK_SRC_RC_SLOW: - modem_lpcon_ll_enable_lp_timer_slow_osc(hal->lpcon_dev, true); + modem_lpcon_ll_enable_ble_rtc_timer_slow_osc(hal->lpcon_dev, true); break; case MODEM_CLOCK_LPCLK_SRC_RC_FAST: - modem_lpcon_ll_enable_lp_timer_fast_osc(hal->lpcon_dev, true); + modem_lpcon_ll_enable_ble_rtc_timer_fast_osc(hal->lpcon_dev, true); break; case MODEM_CLOCK_LPCLK_SRC_MAIN_XTAL: - modem_lpcon_ll_enable_lp_timer_main_xtal(hal->lpcon_dev, true); + modem_lpcon_ll_enable_ble_rtc_timer_main_xtal(hal->lpcon_dev, true); break; case MODEM_CLOCK_LPCLK_SRC_RC32K: - modem_lpcon_ll_enable_lp_timer_32k_xtal(hal->lpcon_dev, true); + modem_lpcon_ll_enable_ble_rtc_timer_32k_xtal(hal->lpcon_dev, true); modem_lpcon_ll_select_modem_32k_clock_source(hal->lpcon_dev, MODEM_CLOCK_RC32K_CODE); break; case MODEM_CLOCK_LPCLK_SRC_XTAL32K: - modem_lpcon_ll_enable_lp_timer_32k_xtal(hal->lpcon_dev, true); + modem_lpcon_ll_enable_ble_rtc_timer_32k_xtal(hal->lpcon_dev, true); modem_lpcon_ll_select_modem_32k_clock_source(hal->lpcon_dev, MODEM_CLOCK_XTAL32K_CODE); break; case MODEM_CLOCK_LPCLK_SRC_EXT32K: - modem_lpcon_ll_enable_lp_timer_32k_xtal(hal->lpcon_dev, true); + modem_lpcon_ll_enable_ble_rtc_timer_32k_xtal(hal->lpcon_dev, true); modem_lpcon_ll_select_modem_32k_clock_source(hal->lpcon_dev, MODEM_CLOCK_EXT32K_CODE); break; default: diff --git a/components/hal/esp32h2/modem_clock_hal.c b/components/hal/esp32h2/modem_clock_hal.c index 102721a743..eb77e7b45b 100644 --- a/components/hal/esp32h2/modem_clock_hal.c +++ b/components/hal/esp32h2/modem_clock_hal.c @@ -4,7 +4,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -// The HAL layer for MODEM CLOCK (ESP32-C6 specific part) +// The HAL layer for MODEM CLOCK (ESP32-H2 specific part) #include #include "esp_attr.h" #include "soc/soc.h" diff --git a/components/hal/esp32h2/include/hal/modem_clock_hal.h b/components/hal/include/hal/modem_clock_hal.h similarity index 77% rename from components/hal/esp32h2/include/hal/modem_clock_hal.h rename to components/hal/include/hal/modem_clock_hal.h index fe7496d0e7..9912308f5e 100644 --- a/components/hal/esp32h2/include/hal/modem_clock_hal.h +++ b/components/hal/include/hal/modem_clock_hal.h @@ -12,6 +12,7 @@ extern "C" { #endif +#include "soc/soc_caps.h" #include "hal/modem_syscon_ll.h" #include "hal/modem_lpcon_ll.h" #include "hal/modem_clock_types.h" @@ -21,22 +22,27 @@ typedef struct { modem_lpcon_dev_t *lpcon_dev; } modem_clock_hal_context_t; +#if MAC_SUPPORT_PMU_MODEM_STATE void modem_clock_hal_set_clock_domain_icg_bitmap(modem_clock_hal_context_t *hal, modem_clock_domain_t domain, uint32_t bitmap); +#endif void modem_clock_hal_enable_fe_clock(modem_clock_hal_context_t *hal, bool enable); -void modem_clock_hal_set_ble_rtc_timer_divisor_value(modem_clock_hal_context_t *hal, uint32_t divider); - +#if SOC_BT_SUPPORTED +void modem_clock_hal_set_ble_rtc_timer_divisor_value(modem_clock_hal_context_t *hal, uint32_t divider); void modem_clock_hal_enable_ble_rtc_timer_clock(modem_clock_hal_context_t *hal, bool enable); - void modem_clock_hal_select_ble_rtc_timer_lpclk_source(modem_clock_hal_context_t *hal, modem_clock_lpclk_src_t src); - void modem_clock_hal_deselect_all_ble_rtc_timer_lpclk_source(modem_clock_hal_context_t *hal); +#endif void modem_clock_hal_select_coex_lpclk_source(modem_clock_hal_context_t *hal, modem_clock_lpclk_src_t src); - void modem_clock_hal_deselect_all_coex_lpclk_source(modem_clock_hal_context_t *hal); +#if SOC_WIFI_SUPPORTED +void modem_clock_hal_select_wifi_lpclk_source(modem_clock_hal_context_t *hal, modem_clock_lpclk_src_t src); +void modem_clock_hal_deselect_all_wifi_lpclk_source(modem_clock_hal_context_t *hal); +#endif + #ifdef __cplusplus } #endif diff --git a/components/soc/esp32c6/include/soc/periph_defs.h b/components/soc/esp32c6/include/soc/periph_defs.h index 28bbdb8a46..6ec855cd57 100644 --- a/components/soc/esp32c6/include/soc/periph_defs.h +++ b/components/soc/esp32c6/include/soc/periph_defs.h @@ -42,6 +42,7 @@ typedef enum { PERIPH_SARADC_MODULE, PERIPH_TEMPSENSOR_MODULE, PERIPH_REGDMA_MODULE, +/* Peripherals clock managed by the modem_clock driver must be listed last in the enumeration */ PERIPH_WIFI_MODULE, PERIPH_BT_MODULE, PERIPH_IEEE802154_MODULE, diff --git a/components/soc/esp32h2/include/soc/periph_defs.h b/components/soc/esp32h2/include/soc/periph_defs.h index 2f1789caba..73080f4f1b 100644 --- a/components/soc/esp32h2/include/soc/periph_defs.h +++ b/components/soc/esp32h2/include/soc/periph_defs.h @@ -27,11 +27,6 @@ typedef enum { PERIPH_SPI2_MODULE, //SPI2 PERIPH_TWAI0_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, @@ -45,9 +40,19 @@ typedef enum { PERIPH_SYSTIMER_MODULE, PERIPH_SARADC_MODULE, PERIPH_TEMPSENSOR_MODULE, +/* Peripherals clock managed by the modem_clock driver must be listed last in the enumeration */ + PERIPH_BT_MODULE, + PERIPH_IEEE802154_MODULE, + PERIPH_COEX_MODULE, + PERIPH_PHY_MODULE, PERIPH_MODULE_MAX } periph_module_t; +#define PERIPH_MODEM_MODULE_MIN PERIPH_BT_MODULE +#define PERIPH_MODEM_MODULE_MAX PERIPH_PHY_MODULE +#define PERIPH_MODEM_MODULE_NUM (PERIPH_MODEM_MODULE_MAX - PERIPH_MODEM_MODULE_MIN + 1) +#define IS_MODEM_MODULE(periph) ((periph>=PERIPH_MODEM_MODULE_MIN) && (periph<=PERIPH_MODEM_MODULE_MAX)) + typedef enum { ETS_PMU_INTR_SOURCE = 0, ETS_EFUSE_INTR_SOURCE, /**< interrupt of efuse, level, not likely to use*/