From f94b64d820cb4d9688d5d1690175bb70df68e755 Mon Sep 17 00:00:00 2001 From: cjin Date: Tue, 10 Oct 2023 11:57:34 +0800 Subject: [PATCH] feat(ble): added modem reset on c2 h2 and c6 --- components/bt/controller/esp32c2/bt.c | 4 ++++ components/bt/controller/esp32c6/bt.c | 2 +- components/bt/controller/esp32h2/bt.c | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/components/bt/controller/esp32c2/bt.c b/components/bt/controller/esp32c2/bt.c index 25c585bd34..7ed6ca84ae 100644 --- a/components/bt/controller/esp32c2/bt.c +++ b/components/bt/controller/esp32c2/bt.c @@ -628,6 +628,7 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg) #endif esp_phy_modem_init(); periph_module_enable(PERIPH_BT_MODULE); + periph_module_reset(PERIPH_BT_MODULE); if (ble_osi_coex_funcs_register((struct osi_coex_funcs_t *)&s_osi_coex_funcs_ro) != 0) { ESP_LOGW(NIMBLE_PORT_LOG_TAG, "osi coex funcs reg failed"); @@ -685,6 +686,7 @@ controller_init_err: ble_controller_deinit(); modem_deint: esp_phy_modem_deinit(); + periph_module_disable(PERIPH_BT_MODULE); #if CONFIG_BT_NIMBLE_ENABLED ble_npl_eventq_deinit(nimble_port_get_dflt_eventq()); #endif // CONFIG_BT_NIMBLE_ENABLED @@ -711,6 +713,8 @@ esp_err_t esp_bt_controller_deinit(void) #endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED ble_controller_deinit(); + periph_module_disable(PERIPH_BT_MODULE); + #if CONFIG_BT_NIMBLE_ENABLED /* De-initialize default event queue */ ble_npl_eventq_deinit(nimble_port_get_dflt_eventq()); diff --git a/components/bt/controller/esp32c6/bt.c b/components/bt/controller/esp32c6/bt.c index 4b7c517511..297bdce0bc 100644 --- a/components/bt/controller/esp32c6/bt.c +++ b/components/bt/controller/esp32c6/bt.c @@ -725,7 +725,7 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg) #endif // CONFIG_BT_NIMBLE_ENABLED /* Enable BT-related clocks */ modem_clock_module_enable(PERIPH_BT_MODULE); - + modem_clock_module_mac_reset(PERIPH_BT_MODULE); /* Select slow clock source for BT momdule */ #if CONFIG_BT_LE_LP_CLK_SRC_MAIN_XTAL esp_bt_rtc_slow_clk_select(MODEM_CLOCK_LPCLK_SRC_MAIN_XTAL); diff --git a/components/bt/controller/esp32h2/bt.c b/components/bt/controller/esp32h2/bt.c index 99a33f6ede..e88245cd17 100644 --- a/components/bt/controller/esp32h2/bt.c +++ b/components/bt/controller/esp32h2/bt.c @@ -707,6 +707,7 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg) /* Enable BT-related clocks */ modem_clock_module_enable(PERIPH_BT_MODULE); + modem_clock_module_mac_reset(PERIPH_BT_MODULE); #if CONFIG_BT_LE_LP_CLK_SRC_MAIN_XTAL esp_bt_rtc_slow_clk_select(MODEM_CLOCK_LPCLK_SRC_MAIN_XTAL); slow_clk_freq = 100000;