[wifi] Add explicit AUTO option to phy_mode

This commit is contained in:
J. Nick Koston
2026-04-27 07:49:29 -05:00
parent e232325a33
commit 4f4ad64f19
3 changed files with 7 additions and 2 deletions
+1
View File
@@ -116,6 +116,7 @@ VALIDATE_WIFI_MIN_AUTH_MODE = cv.enum(WIFI_MIN_AUTH_MODES, upper=True)
WiFi8266PhyMode = wifi_ns.enum("WiFi8266PhyMode")
WIFI_8266_PHY_MODES = {
"AUTO": WiFi8266PhyMode.WIFI_8266_PHY_MODE_AUTO,
"11B": WiFi8266PhyMode.WIFI_8266_PHY_MODE_11B,
"11G": WiFi8266PhyMode.WIFI_8266_PHY_MODE_11G,
"11N": WiFi8266PhyMode.WIFI_8266_PHY_MODE_11N,
+4 -2
View File
@@ -346,8 +346,10 @@ enum WifiMinAuthMode : uint8_t {
};
#ifdef USE_WIFI_PHY_MODE
// Values match ESP8266 SDK phy_mode_t (PHY_MODE_11B=1, PHY_MODE_11G=2, PHY_MODE_11N=3).
// Values 1-3 match ESP8266 SDK phy_mode_t (PHY_MODE_11B=1, PHY_MODE_11G=2, PHY_MODE_11N=3).
// AUTO leaves the SDK at its default (no wifi_set_phy_mode() call).
enum WiFi8266PhyMode : uint8_t {
WIFI_8266_PHY_MODE_AUTO = 0,
WIFI_8266_PHY_MODE_11B = 1,
WIFI_8266_PHY_MODE_11G = 2,
WIFI_8266_PHY_MODE_11N = 3,
@@ -827,7 +829,7 @@ class WiFiComponent final : public Component {
wifi_band_mode_t band_mode_{WIFI_BAND_MODE_AUTO};
#endif
#ifdef USE_WIFI_PHY_MODE
WiFi8266PhyMode phy_mode_{WIFI_8266_PHY_MODE_11N};
WiFi8266PhyMode phy_mode_{WIFI_8266_PHY_MODE_AUTO};
#endif
WifiMinAuthMode min_auth_mode_{WIFI_MIN_AUTH_MODE_WPA2};
WiFiRetryPhase retry_phase_{WiFiRetryPhase::INITIAL_CONNECT};
@@ -633,6 +633,8 @@ bool WiFiComponent::wifi_sta_pre_setup_() {
#ifdef USE_WIFI_PHY_MODE
bool WiFiComponent::wifi_apply_phy_mode_() {
if (this->phy_mode_ == WIFI_8266_PHY_MODE_AUTO)
return true;
// Values of WiFi8266PhyMode are aligned with the SDK's phy_mode_t enum.
return wifi_set_phy_mode(static_cast<phy_mode_t>(this->phy_mode_));
}