fix(ble): fix bt_apb module clock config on esp32h4 and esp32s31

This commit is contained in:
cjin
2026-08-14 12:02:26 +08:00
parent b2672c7937
commit 7552394de8
@@ -85,6 +85,7 @@ static DRAM_ATTR esp_pm_lock_handle_t s_pm_lock = NULL;
static uint32_t s_bt_xtal_lpclk_freq = 100000; static uint32_t s_bt_xtal_lpclk_freq = 100000;
static uint32_t s_bt_lpclk_freq = 0; static uint32_t s_bt_lpclk_freq = 0;
static uint8_t s_btdm_lp_modem_clk_en = 0; static uint8_t s_btdm_lp_modem_clk_en = 0;
static uint8_t s_btdm_lp_modem_apb_clk_en = 0;
/* /*
*************************************************************************************************** ***************************************************************************************************
@@ -358,19 +359,25 @@ btdm_lp_enable_clock(esp_bt_ctrl_btdm_config_t *cfg)
{ {
if (!s_btdm_lp_modem_clk_en) { if (!s_btdm_lp_modem_clk_en) {
modem_clock_module_enable(PERIPH_BT_MODULE); modem_clock_module_enable(PERIPH_BT_MODULE);
s_btdm_lp_modem_clk_en = 1;
}
if (!s_btdm_lp_modem_apb_clk_en) {
modem_clock_module_enable(PERIPH_BT_APB_MODULE); modem_clock_module_enable(PERIPH_BT_APB_MODULE);
modem_clock_module_mac_reset(PERIPH_BT_MODULE); modem_clock_module_mac_reset(PERIPH_BT_MODULE);
btdm_lp_timer_clk_init(cfg); btdm_lp_timer_clk_init(cfg);
s_btdm_lp_modem_clk_en = 1; s_btdm_lp_modem_apb_clk_en = 1;
} }
} }
void void
btdm_lp_disable_clock(void) btdm_lp_disable_clock(void)
{ {
if (s_btdm_lp_modem_clk_en) { if (s_btdm_lp_modem_apb_clk_en) {
btdm_lp_timer_clk_deinit(); btdm_lp_timer_clk_deinit();
modem_clock_module_disable(PERIPH_BT_APB_MODULE); modem_clock_module_disable(PERIPH_BT_APB_MODULE);
s_btdm_lp_modem_apb_clk_en = 0;
}
if (s_btdm_lp_modem_clk_en) {
modem_clock_module_disable(PERIPH_BT_MODULE); modem_clock_module_disable(PERIPH_BT_MODULE);
s_btdm_lp_modem_clk_en = 0; s_btdm_lp_modem_clk_en = 0;
} }