mirror of
https://github.com/espressif/esp-idf.git
synced 2025-10-03 18:40:59 +02:00
feat(ble): add clk source freq change of ble slow clock on ESP32-H2
(cherry picked from commit cb60528f23
)
Co-authored-by: cjin <jinchen@espressif.com>
This commit is contained in:
@@ -846,8 +846,20 @@ static void ble_rtc_clk_init(esp_bt_controller_config_t *cfg)
|
|||||||
#if CONFIG_RTC_CLK_SRC_INT_RC
|
#if CONFIG_RTC_CLK_SRC_INT_RC
|
||||||
s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_RC_SLOW;
|
s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_RC_SLOW;
|
||||||
#elif CONFIG_RTC_CLK_SRC_EXT_CRYS
|
#elif CONFIG_RTC_CLK_SRC_EXT_CRYS
|
||||||
|
uint32_t clk_freq = 0;
|
||||||
|
|
||||||
if (rtc_clk_slow_src_get() == SOC_RTC_SLOW_CLK_SRC_XTAL32K) {
|
if (rtc_clk_slow_src_get() == SOC_RTC_SLOW_CLK_SRC_XTAL32K) {
|
||||||
|
if (!esp_clk_tree_src_get_freq_hz(SOC_MOD_CLK_XTAL32K, ESP_CLK_TREE_SRC_FREQ_PRECISION_EXACT, &clk_freq)) {
|
||||||
|
if (clk_freq > 32700 && clk_freq < 33800) {
|
||||||
s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_XTAL32K;
|
s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_XTAL32K;
|
||||||
|
} else {
|
||||||
|
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "32.768kHz XTAL detection error, switch to main XTAL as Bluetooth sleep clock");
|
||||||
|
s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_MAIN_XTAL;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "32.768kHz XTAL detection error, switch to main XTAL as Bluetooth sleep clock");
|
||||||
|
s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_MAIN_XTAL;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "32.768kHz XTAL not detected, fall back to main XTAL as Bluetooth sleep clock");
|
ESP_LOGW(NIMBLE_PORT_LOG_TAG, "32.768kHz XTAL not detected, fall back to main XTAL as Bluetooth sleep clock");
|
||||||
s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_MAIN_XTAL;
|
s_bt_lpclk_src = MODEM_CLOCK_LPCLK_SRC_MAIN_XTAL;
|
||||||
|
Reference in New Issue
Block a user