fix(esp_phy): Allow WiFi/USB interference workaround option only on supported targets

"Enable USB when phy init" Kconfig option would call esp_phy function
`phy_bbpll_en_usb()` that is not implemented for all targets.
Selecting this option for unsupported target results in linking error.

The necessity of this workaround is now defined soc_caps.h rather than
in the Kconfig.

Closes https://github.com/espressif/esp-idf/issues/12185
This commit is contained in:
Tomas Rezucha 2023-11-23 12:05:43 +01:00
parent b76123af06
commit ea086840a4
7 changed files with 27 additions and 5 deletions

View File

@ -106,13 +106,20 @@ menu "PHY"
When brownout reset occurs, reduce PHY TX power to keep the code running. When brownout reset occurs, reduce PHY TX power to keep the code running.
config ESP_PHY_ENABLE_USB config ESP_PHY_ENABLE_USB
bool "Enable USB when phy init" bool "Keep the USB PHY enabled when initializing WiFi"
depends on SOC_USB_OTG_SUPPORTED || ESP_CONSOLE_USB_SERIAL_JTAG || ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG depends on SOC_WIFI_PHY_NEEDS_USB_WORKAROUND
default y if IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3 default y if IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3 \
|| ESP_CONSOLE_USB_SERIAL_JTAG || ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG
default n default n
help help
When using USB Serial/JTAG/OTG/CDC, PHY should enable USB, otherwise USB module On some ESP targets, the USB PHY can interfere with WiFi thus lowering WiFi performance. As a result, on
can not work properly. Notice: Enabling this configuration option will slightly impact wifi performance. 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 config ESP_PHY_ENABLE_CERT_TEST
bool "Enable RF certification test functions" bool "Enable RF certification test functions"

View File

@ -711,6 +711,10 @@ config SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW
bool bool
default y default y
config SOC_WIFI_PHY_NEEDS_USB_WORKAROUND
bool
default y
config SOC_BLE_SUPPORTED config SOC_BLE_SUPPORTED
bool bool
default y default y

View File

@ -324,6 +324,7 @@
#define SOC_WIFI_HW_TSF (1) /*!< Support hardware TSF */ #define SOC_WIFI_HW_TSF (1) /*!< Support hardware TSF */
#define SOC_WIFI_FTM_SUPPORT (1) /*!< Support FTM */ #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_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 ----------------------------------*/ /*---------------------------------- Bluetooth CAPS ----------------------------------*/
#define SOC_BLE_SUPPORTED (1) /*!< Support Bluetooth Low Energy hardware */ #define SOC_BLE_SUPPORTED (1) /*!< Support Bluetooth Low Energy hardware */

View File

@ -1039,6 +1039,10 @@ config SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW
bool bool
default y default y
config SOC_WIFI_PHY_NEEDS_USB_WORKAROUND
bool
default y
config SOC_BLE_SUPPORTED config SOC_BLE_SUPPORTED
bool bool
default y default y

View File

@ -439,6 +439,7 @@
#define SOC_WIFI_CSI_SUPPORT (1) /*!< Support CSI */ #define SOC_WIFI_CSI_SUPPORT (1) /*!< Support CSI */
#define SOC_WIFI_MESH_SUPPORT (1) /*!< Support WIFI MESH */ #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_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 ----------------------------------*/ /*---------------------------------- Bluetooth CAPS ----------------------------------*/
#define SOC_BLE_SUPPORTED (1) /*!< Support Bluetooth Low Energy hardware */ #define SOC_BLE_SUPPORTED (1) /*!< Support Bluetooth Low Energy hardware */

View File

@ -1335,6 +1335,10 @@ config SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW
bool bool
default y default y
config SOC_WIFI_PHY_NEEDS_USB_WORKAROUND
bool
default y
config SOC_BLE_SUPPORTED config SOC_BLE_SUPPORTED
bool bool
default y default y

View File

@ -532,6 +532,7 @@
#define SOC_WIFI_CSI_SUPPORT (1) /*!< Support CSI */ #define SOC_WIFI_CSI_SUPPORT (1) /*!< Support CSI */
#define SOC_WIFI_MESH_SUPPORT (1) /*!< Support WIFI MESH */ #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_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 ----------------------------------*/ /*---------------------------------- Bluetooth CAPS ----------------------------------*/
#define SOC_BLE_SUPPORTED (1) /*!< Support Bluetooth Low Energy hardware */ #define SOC_BLE_SUPPORTED (1) /*!< Support Bluetooth Low Energy hardware */