feat(phy): add a config for pll track feature
This commit is contained in:
@@ -26,6 +26,7 @@ static const char* TAG = "phy_comm";
|
||||
|
||||
static volatile uint16_t s_phy_modem_flag = 0;
|
||||
|
||||
#if !CONFIG_ESP_PHY_DISABLE_PLL_TRACK
|
||||
extern void phy_param_track_tot(bool en_wifi, bool en_ble_154);
|
||||
static esp_timer_handle_t phy_track_pll_timer;
|
||||
#if CONFIG_ESP_WIFI_ENABLED
|
||||
@@ -34,8 +35,9 @@ static volatile int64_t s_wifi_prev_timestamp;
|
||||
#if CONFIG_IEEE802154_ENABLED || CONFIG_BT_ENABLED
|
||||
static volatile int64_t s_bt_154_prev_timestamp;
|
||||
#endif
|
||||
#define PHY_TRACK_PLL_PERIOD_IN_US 1000000
|
||||
#define PHY_TRACK_PLL_PERIOD_IN_US (CONFIG_ESP_PHY_PLL_TRACK_PERIOD_MS * 1000)
|
||||
static void phy_track_pll_internal(void);
|
||||
#endif
|
||||
|
||||
static esp_phy_ant_gpio_config_t s_phy_ant_gpio_config = { 0 };
|
||||
static esp_phy_ant_config_t s_phy_ant_config = { 0 };
|
||||
@@ -47,6 +49,7 @@ bool phy_enabled_modem_contains(esp_phy_modem_t modem)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !CONFIG_ESP_PHY_DISABLE_PLL_TRACK
|
||||
void phy_track_pll(void)
|
||||
{
|
||||
// Light sleep scenario: enabling and disabling PHY frequently, the timer will not get triggered.
|
||||
@@ -121,6 +124,7 @@ void phy_track_pll_deinit(void)
|
||||
ESP_ERROR_CHECK(esp_timer_stop(phy_track_pll_timer));
|
||||
ESP_ERROR_CHECK(esp_timer_delete(phy_track_pll_timer));
|
||||
}
|
||||
#endif
|
||||
|
||||
void phy_set_modem_flag(esp_phy_modem_t modem)
|
||||
{
|
||||
|
||||
@@ -329,7 +329,7 @@ void esp_phy_enable(esp_phy_modem_t modem)
|
||||
#endif
|
||||
|
||||
// ESP32 will track pll in the wifi/BT modem interrupt handler.
|
||||
#if !CONFIG_IDF_TARGET_ESP32
|
||||
#if !CONFIG_IDF_TARGET_ESP32 && !CONFIG_ESP_PHY_DISABLE_PLL_TRACK
|
||||
phy_track_pll_init();
|
||||
#endif
|
||||
|
||||
@@ -340,7 +340,7 @@ void esp_phy_enable(esp_phy_modem_t modem)
|
||||
|
||||
}
|
||||
phy_set_modem_flag(modem);
|
||||
#if !CONFIG_IDF_TARGET_ESP32
|
||||
#if !CONFIG_IDF_TARGET_ESP32 && !CONFIG_ESP_PHY_DISABLE_PLL_TRACK
|
||||
// Immediately track pll when phy enabled.
|
||||
phy_track_pll();
|
||||
#endif
|
||||
@@ -360,7 +360,7 @@ void esp_phy_disable(esp_phy_modem_t modem)
|
||||
phy_clr_modem_flag(modem);
|
||||
if (phy_get_modem_flag() == 0) {
|
||||
// ESP32 will track pll in the wifi/BT modem interrupt handler.
|
||||
#if !CONFIG_IDF_TARGET_ESP32
|
||||
#if !CONFIG_IDF_TARGET_ESP32 && !CONFIG_ESP_PHY_DISABLE_PLL_TRACK
|
||||
phy_track_pll_deinit();
|
||||
#endif
|
||||
#if SOC_PM_MODEM_RETENTION_BY_BACKUPDMA
|
||||
|
||||
@@ -113,11 +113,15 @@ void esp_phy_enable(esp_phy_modem_t modem)
|
||||
} else {
|
||||
phy_wakeup_init();
|
||||
}
|
||||
#if !CONFIG_ESP_PHY_DISABLE_PLL_TRACK
|
||||
phy_track_pll_init();
|
||||
#endif
|
||||
}
|
||||
phy_set_modem_flag(modem);
|
||||
// Immediately track pll when phy enabled.
|
||||
#if !CONFIG_ESP_PHY_DISABLE_PLL_TRACK
|
||||
phy_track_pll();
|
||||
#endif
|
||||
#if CONFIG_ESP_PHY_RECORD_USED_TIME
|
||||
phy_record_time(true, modem);
|
||||
#endif
|
||||
@@ -133,7 +137,9 @@ void esp_phy_disable(esp_phy_modem_t modem)
|
||||
phy_clr_modem_flag(modem);
|
||||
if (phy_get_modem_flag() == 0) {
|
||||
|
||||
#if !CONFIG_ESP_PHY_DISABLE_PLL_TRACK
|
||||
phy_track_pll_deinit();
|
||||
#endif
|
||||
phy_close_rf();
|
||||
phy_xpd_tsens();
|
||||
#if SOC_MODEM_CLOCK_IS_INDEPENDENT
|
||||
|
||||
Reference in New Issue
Block a user