fix(esp_phy): check hw freq hop done before disabling common clock

This commit is contained in:
zwx
2026-03-09 14:31:27 +08:00
parent 863af334c9
commit 35ec6bc5b7
4 changed files with 15 additions and 0 deletions

View File

@@ -203,6 +203,13 @@ void phy_wakeup_from_modem_state_extra_init(void);
void esp_phy_modem_rf_flag_update(void);
#endif
/**
* @brief Wait for frequency hardware hop to complete
*
*/
void phy_wait_freq_hw_hop_done(void);
#ifdef __cplusplus
}
#endif

View File

@@ -150,3 +150,9 @@ void phy_wakeup_from_modem_state_extra_init(void)
temperature_sensor_ll_enable(true);
}
#endif
__attribute__((weak)) void phy_wait_freq_hw_hop_done(void)
{
ESP_LOGD(TAG, "phy_wait_freq_hw_hop_done is not implemented");
return;
}

View File

@@ -409,6 +409,7 @@ void esp_phy_disable(esp_phy_modem_t modem)
// Update WiFi MAC time before disable WiFi/BT common peripheral clock
phy_update_wifi_mac_time(true, esp_timer_get_time());
#endif
phy_wait_freq_hw_hop_done();
// Disable WiFi/BT common peripheral clock. Do not disable clock for hardware RNG
esp_phy_common_clock_disable();
}

View File

@@ -153,6 +153,7 @@ void esp_phy_disable(esp_phy_modem_t modem)
#endif
phy_close_rf();
phy_xpd_tsens();
phy_wait_freq_hw_hop_done();
#if SOC_MODEM_CLOCK_IS_INDEPENDENT
modem_clock_module_disable(PERIPH_PHY_MODULE);
#endif