diff --git a/components/esp_phy/Kconfig b/components/esp_phy/Kconfig index 7a2b7a811f..b6b4e4923e 100644 --- a/components/esp_phy/Kconfig +++ b/components/esp_phy/Kconfig @@ -106,13 +106,20 @@ menu "PHY" When brownout reset occurs, reduce PHY TX power to keep the code running. config ESP_PHY_ENABLE_USB - bool "Enable USB when phy init" - depends on SOC_USB_OTG_SUPPORTED || ESP_CONSOLE_USB_SERIAL_JTAG || ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG - default y if IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3 + bool "Keep the USB PHY enabled when initializing WiFi" + depends on SOC_WIFI_PHY_NEEDS_USB_WORKAROUND + default y if IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3 \ + || ESP_CONSOLE_USB_SERIAL_JTAG || ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG default n help - When using USB Serial/JTAG/OTG/CDC, PHY should enable USB, otherwise USB module - can not work properly. Notice: Enabling this configuration option will slightly impact wifi performance. + On some ESP targets, the USB PHY can interfere with WiFi thus lowering WiFi performance. As a result, on + those affected ESP targets, the ESP PHY library's initialization will automatically disable the USB PHY to + get best WiFi performance. This option controls whether or not the ESP PHY library will keep the USB PHY + enabled on initialization. + + Note: This option can be disabled to increase WiFi performance. However, disabling this option will also + mean that the USB PHY cannot be used while WiFi is enabled. + config ESP_PHY_ENABLE_CERT_TEST bool "Enable RF certification test functions" diff --git a/components/soc/esp32c2/include/soc/Kconfig.soc_caps.in b/components/soc/esp32c2/include/soc/Kconfig.soc_caps.in index ef10645ba4..9f6b8b12f0 100644 --- a/components/soc/esp32c2/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32c2/include/soc/Kconfig.soc_caps.in @@ -719,6 +719,10 @@ config SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW bool default y +config SOC_WIFI_PHY_NEEDS_USB_WORKAROUND + bool + default y + config SOC_BLE_SUPPORTED bool default y diff --git a/components/soc/esp32c2/include/soc/soc_caps.h b/components/soc/esp32c2/include/soc/soc_caps.h index a747103a6d..54ae8ca832 100644 --- a/components/soc/esp32c2/include/soc/soc_caps.h +++ b/components/soc/esp32c2/include/soc/soc_caps.h @@ -326,6 +326,7 @@ #define SOC_WIFI_HW_TSF (1) /*!< Support hardware TSF */ #define SOC_WIFI_FTM_SUPPORT (1) /*!< Support FTM */ #define SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW (1) /*!< Support delta early time for rf phy on/off */ +#define SOC_WIFI_PHY_NEEDS_USB_WORKAROUND (1) /*!< SoC has WiFi and USB PHYs interference, needs a workaround */ /*---------------------------------- Bluetooth CAPS ----------------------------------*/ #define SOC_BLE_SUPPORTED (1) /*!< Support Bluetooth Low Energy hardware */ diff --git a/components/soc/esp32c3/include/soc/Kconfig.soc_caps.in b/components/soc/esp32c3/include/soc/Kconfig.soc_caps.in index e1748306ae..8adf0d59d6 100644 --- a/components/soc/esp32c3/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32c3/include/soc/Kconfig.soc_caps.in @@ -1047,6 +1047,10 @@ config SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW bool default y +config SOC_WIFI_PHY_NEEDS_USB_WORKAROUND + bool + default y + config SOC_BLE_SUPPORTED bool default y diff --git a/components/soc/esp32c3/include/soc/soc_caps.h b/components/soc/esp32c3/include/soc/soc_caps.h index eac769cf65..7955f562fc 100644 --- a/components/soc/esp32c3/include/soc/soc_caps.h +++ b/components/soc/esp32c3/include/soc/soc_caps.h @@ -441,6 +441,7 @@ #define SOC_WIFI_CSI_SUPPORT (1) /*!< Support CSI */ #define SOC_WIFI_MESH_SUPPORT (1) /*!< Support WIFI MESH */ #define SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW (1) /*!< Support delta early time for rf phy on/off */ +#define SOC_WIFI_PHY_NEEDS_USB_WORKAROUND (1) /*!< SoC has WiFi and USB PHYs interference, needs a workaround */ /*---------------------------------- Bluetooth CAPS ----------------------------------*/ #define SOC_BLE_SUPPORTED (1) /*!< Support Bluetooth Low Energy hardware */ diff --git a/components/soc/esp32s3/include/soc/Kconfig.soc_caps.in b/components/soc/esp32s3/include/soc/Kconfig.soc_caps.in index 577409091f..8018742ed5 100644 --- a/components/soc/esp32s3/include/soc/Kconfig.soc_caps.in +++ b/components/soc/esp32s3/include/soc/Kconfig.soc_caps.in @@ -1343,6 +1343,10 @@ config SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW bool default y +config SOC_WIFI_PHY_NEEDS_USB_WORKAROUND + bool + default y + config SOC_BLE_SUPPORTED bool default y diff --git a/components/soc/esp32s3/include/soc/soc_caps.h b/components/soc/esp32s3/include/soc/soc_caps.h index dd3b5d9254..261e8d5139 100644 --- a/components/soc/esp32s3/include/soc/soc_caps.h +++ b/components/soc/esp32s3/include/soc/soc_caps.h @@ -534,6 +534,7 @@ #define SOC_WIFI_CSI_SUPPORT (1) /*!< Support CSI */ #define SOC_WIFI_MESH_SUPPORT (1) /*!< Support WIFI MESH */ #define SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW (1) /*!< Support delta early time for rf phy on/off */ +#define SOC_WIFI_PHY_NEEDS_USB_WORKAROUND (1) /*!< SoC has WiFi and USB PHYs interference, needs a workaround */ /*---------------------------------- Bluetooth CAPS ----------------------------------*/ #define SOC_BLE_SUPPORTED (1) /*!< Support Bluetooth Low Energy hardware */