feat(wifi): support disable 11ac and 11ax in efuse

This commit is contained in:
yinqingzhao
2026-05-12 19:22:54 +08:00
committed by BOT
parent e000bfd1b7
commit 85b85b2aed
5 changed files with 27 additions and 4 deletions
+1 -1
View File
@@ -76,7 +76,7 @@ idf_component_register(SRCS "${srcs}"
INCLUDE_DIRS "include" "include/local" "wifi_apps/include" "wifi_apps/nan_app/include"
REQUIRES esp_event esp_phy esp_netif
PRIV_REQUIRES esp_pm esp_timer nvs_flash
PRIV_REQUIRES esp_pm esp_timer nvs_flash efuse
wpa_supplicant hal lwip esp_coex
PRIV_INCLUDE_DIRS ../wpa_supplicant/src/ ../wpa_supplicant/esp_supplicant/src/
wifi_apps/roaming_app/include wifi_apps/roaming_app/src
+7 -1
View File
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2022-2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -641,6 +641,11 @@ static void esp_phy_disable_wrapper(void)
esp_phy_disable(PHY_MODEM_WIFI);
}
static bool esp_wifi_disable_ac_ax_wrapper(void)
{
return false; // disable 11ac and 11ax is not supported on esp32c5.
}
wifi_osi_funcs_t g_wifi_osi_funcs = {
._version = ESP_WIFI_OS_ADAPTER_VERSION,
._env_is_chip = esp_coex_common_env_is_chip_wrapper,
@@ -764,5 +769,6 @@ wifi_osi_funcs_t g_wifi_osi_funcs = {
._coex_schm_flexible_period_set = coex_schm_flexible_period_set_wrapper,
._coex_schm_flexible_period_get = coex_schm_flexible_period_get_wrapper,
._coex_schm_get_phase_by_idx = coex_schm_get_phase_by_idx_wrapper,
._wifi_disable_ac_ax = esp_wifi_disable_ac_ax_wrapper,
._magic = ESP_WIFI_OS_ADAPTER_MAGIC,
};
+7 -1
View File
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2022-2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -579,6 +579,11 @@ static void *sleep_retention_find_link_by_id_wrapper(int id)
}
#endif
static bool esp_wifi_disable_ac_ax_wrapper(void)
{
return false; // disable 11ac and 11ax is not supported on esp32c6.
}
wifi_osi_funcs_t g_wifi_osi_funcs = {
._version = ESP_WIFI_OS_ADAPTER_VERSION,
._env_is_chip = esp_coex_common_env_is_chip_wrapper,
@@ -702,5 +707,6 @@ wifi_osi_funcs_t g_wifi_osi_funcs = {
._coex_schm_flexible_period_set = coex_schm_flexible_period_set_wrapper,
._coex_schm_flexible_period_get = coex_schm_flexible_period_get_wrapper,
._coex_schm_get_phase_by_idx = coex_schm_get_phase_by_idx_wrapper,
._wifi_disable_ac_ax = esp_wifi_disable_ac_ax_wrapper,
._magic = ESP_WIFI_OS_ADAPTER_MAGIC,
};
+9 -1
View File
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2022-2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -40,6 +40,8 @@
#include "esp_private/periph_ctrl.h"
#include "esp_private/esp_clk.h"
#include "nvs.h"
#include "esp_efuse.h"
#include "esp_efuse_table.h"
#include "os.h"
#include "esp_smartconfig.h"
#ifdef CONFIG_ESP_COEX_ENABLED
@@ -641,6 +643,11 @@ static void esp_phy_disable_wrapper(void)
esp_phy_disable(PHY_MODEM_WIFI);
}
static bool esp_wifi_disable_ac_ax_wrapper(void)
{
return esp_efuse_read_field_bit(ESP_EFUSE_DIS_WIFI6);
}
wifi_osi_funcs_t g_wifi_osi_funcs = {
._version = ESP_WIFI_OS_ADAPTER_VERSION,
._env_is_chip = esp_coex_common_env_is_chip_wrapper,
@@ -764,5 +771,6 @@ wifi_osi_funcs_t g_wifi_osi_funcs = {
._coex_schm_flexible_period_set = coex_schm_flexible_period_set_wrapper,
._coex_schm_flexible_period_get = coex_schm_flexible_period_get_wrapper,
._coex_schm_get_phase_by_idx = coex_schm_get_phase_by_idx_wrapper,
._wifi_disable_ac_ax = esp_wifi_disable_ac_ax_wrapper,
._magic = ESP_WIFI_OS_ADAPTER_MAGIC,
};
@@ -156,6 +156,9 @@ typedef struct wifi_osi_funcs_t {
int (*_coex_schm_flexible_period_set)(uint8_t);
uint8_t (*_coex_schm_flexible_period_get)(void);
void * (*_coex_schm_get_phase_by_idx)(int);
#if CONFIG_SOC_WIFI_HE_SUPPORT
bool (*_wifi_disable_ac_ax)(void);
#endif
int32_t _magic;
} wifi_osi_funcs_t;