esp-idf/components/esp_coex/Kconfig
2024-09-10 10:40:15 +08:00

241 lines
9.3 KiB
Plaintext

menu "Wireless Coexistence"
config ESP_COEX_ENABLED
bool
default y if (!SOC_WIRELESS_HOST_SUPPORTED)
if(ESP_COEX_ENABLED)
config ESP_COEX_SW_COEXIST_ENABLE
bool "Software controls WiFi/Bluetooth coexistence"
depends on (ESP_WIFI_ENABLED && BT_ENABLED) || \
(ESP_WIFI_ENABLED && IEEE802154_ENABLED) || \
(IEEE802154_ENABLED && BT_ENABLED)
default y
select ESP_WIFI_STA_DISCONNECTED_PM_ENABLE if (ESP_WIFI_ENABLED)
help
If enabled, WiFi & Bluetooth coexistence is controlled by software rather than hardware.
Recommended for heavy traffic scenarios. Both coexistence configuration options are
automatically managed, no user intervention is required.
If only Bluetooth is used, it is recommended to disable this option to reduce binary file
size.
config ESP_COEX_EXTERNAL_COEXIST_ENABLE
bool "External Coexistence"
default n
depends on (!(BT_ENABLED||NIMBLE_ENABLED)&&(!IDF_TARGET_ESP32))
help
If enabled, HW External coexistence arbitration is managed by GPIO pins.
It can support three types of wired combinations so far which are 1-wired/2-wired/3-wired.
User can select GPIO pins in application code with configure interfaces.
This function depends on BT-off
because currently we do not support external coex and internal coex simultaneously.
config ESP_COEX_POWER_MANAGEMENT
bool "Support power management under coexistence"
default n
depends on (ESP_COEX_SW_COEXIST_ENABLE)
help
If enabled, coexist power management will be enabled.
endif
config ESP_COEX_GPIO_DEBUG
bool "GPIO debugging for coexistence"
default n
depends on !PM_SLP_DISABLE_GPIO && !PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP
help
Support coexistence GPIO debugging
if (ESP_COEX_GPIO_DEBUG)
choice ESP_COEX_GPIO_DEBUG_DIAG
prompt "Debugging Diagram"
default ESP_COEX_GPIO_DEBUG_DIAG_GENERAL
help
Select type of debugging diagram
config ESP_COEX_GPIO_DEBUG_DIAG_GENERAL
bool "General"
config ESP_COEX_GPIO_DEBUG_DIAG_WIFI
bool "Wi-Fi"
endchoice
config ESP_COEX_GPIO_DEBUG_IO_COUNT
int "Max number of debugging GPIOs"
range 0 12
default 12
config ESP_COEX_GPIO_DEBUG_IO_IDX0
depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 0)
int "Actual IO num for Debug IO ID0"
range 0 SOC_GPIO_OUT_RANGE_MAX
default 15 if IDF_TARGET_ESP32
default 4 if IDF_TARGET_ESP32S2
default 19 if IDF_TARGET_ESP32C3
default 4 if IDF_TARGET_ESP32S3
default 18 if IDF_TARGET_ESP32C2
default 4 if IDF_TARGET_ESP32C6
default 2 if IDF_TARGET_ESP32C5
default 4 if IDF_TARGET_ESP32C61
default 1
config ESP_COEX_GPIO_DEBUG_IO_IDX1
depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 1)
int "Actual IO num for Debug IO ID1"
range 0 SOC_GPIO_OUT_RANGE_MAX
default 2 if IDF_TARGET_ESP32
default 5 if IDF_TARGET_ESP32S2
default 18 if IDF_TARGET_ESP32C3
default 5 if IDF_TARGET_ESP32S3
default 4 if IDF_TARGET_ESP32C2
default 5 if IDF_TARGET_ESP32C6
default 3 if IDF_TARGET_ESP32C5
default 5 if IDF_TARGET_ESP32C61
default 2
config ESP_COEX_GPIO_DEBUG_IO_IDX2
depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 2)
int "Actual IO num for Debug IO ID2"
range 0 SOC_GPIO_OUT_RANGE_MAX
default 0 if IDF_TARGET_ESP32
default 6 if IDF_TARGET_ESP32S2
default 4 if IDF_TARGET_ESP32C3
default 6 if IDF_TARGET_ESP32S3
default 5 if IDF_TARGET_ESP32C2
default 6 if IDF_TARGET_ESP32C6
default 4 if IDF_TARGET_ESP32C5
default 6 if IDF_TARGET_ESP32C61
default 3
config ESP_COEX_GPIO_DEBUG_IO_IDX3
depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 3)
int "Actual IO num for Debug IO ID3"
range 0 SOC_GPIO_OUT_RANGE_MAX
default 4 if IDF_TARGET_ESP32
default 7 if IDF_TARGET_ESP32S2
default 5 if IDF_TARGET_ESP32C3
default 7 if IDF_TARGET_ESP32S3
default 6 if IDF_TARGET_ESP32C2
default 7 if IDF_TARGET_ESP32C6
default 5 if IDF_TARGET_ESP32C5
default 7 if IDF_TARGET_ESP32C61
default 4
config ESP_COEX_GPIO_DEBUG_IO_IDX4
depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 4)
int "Actual IO num for Debug IO ID4"
range 0 SOC_GPIO_OUT_RANGE_MAX
default 5 if IDF_TARGET_ESP32
default 8 if IDF_TARGET_ESP32S2
default 6 if IDF_TARGET_ESP32C3
default 15 if IDF_TARGET_ESP32S3
default 7 if IDF_TARGET_ESP32C2
default 8 if IDF_TARGET_ESP32C6
default 27 if IDF_TARGET_ESP32C5
default 0 if IDF_TARGET_ESP32C61
default 5
config ESP_COEX_GPIO_DEBUG_IO_IDX5
depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 5)
int "Actual IO num for Debug IO ID5"
range 0 SOC_GPIO_OUT_RANGE_MAX
default 18 if IDF_TARGET_ESP32
default 9 if IDF_TARGET_ESP32S2
default 7 if IDF_TARGET_ESP32C3
default 16 if IDF_TARGET_ESP32S3
default 8 if IDF_TARGET_ESP32C2
default 10 if IDF_TARGET_ESP32C6
default 6 if IDF_TARGET_ESP32C5
default 1 if IDF_TARGET_ESP32C61
default 6
config ESP_COEX_GPIO_DEBUG_IO_IDX6
depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 6)
int "Actual IO num for Debug IO ID6"
range 0 SOC_GPIO_OUT_RANGE_MAX
default 19 if IDF_TARGET_ESP32
default 10 if IDF_TARGET_ESP32S2
default 8 if IDF_TARGET_ESP32C3
default 17 if IDF_TARGET_ESP32S3
default 9 if IDF_TARGET_ESP32C2
default 11 if IDF_TARGET_ESP32C6
default 7 if IDF_TARGET_ESP32C5
default 8 if IDF_TARGET_ESP32C61
default 7
config ESP_COEX_GPIO_DEBUG_IO_IDX7
depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 7)
int "Actual IO num for Debug IO ID7"
range 0 SOC_GPIO_OUT_RANGE_MAX
default 22 if IDF_TARGET_ESP32
default 11 if IDF_TARGET_ESP32S2
default 9 if IDF_TARGET_ESP32C3
default 18 if IDF_TARGET_ESP32S3
default 10 if IDF_TARGET_ESP32C2
default 2 if IDF_TARGET_ESP32C6
default 26 if IDF_TARGET_ESP32C5
default 2 if IDF_TARGET_ESP32C61
default 8
config ESP_COEX_GPIO_DEBUG_IO_IDX8
depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 8)
int "Actual IO num for Debug IO ID8"
range 0 SOC_GPIO_OUT_RANGE_MAX
default 13 if IDF_TARGET_ESP32
default 12 if IDF_TARGET_ESP32S2
default 10 if IDF_TARGET_ESP32C3
default 10 if IDF_TARGET_ESP32S3
default 1 if IDF_TARGET_ESP32C2
default 15 if IDF_TARGET_ESP32C6
default 24 if IDF_TARGET_ESP32C5
default 3 if IDF_TARGET_ESP32C61
default 9
config ESP_COEX_GPIO_DEBUG_IO_IDX9
depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 9)
int "Actual IO num for Debug IO ID9"
range 0 SOC_GPIO_OUT_RANGE_MAX
default 12 if IDF_TARGET_ESP32
default 13 if IDF_TARGET_ESP32S2
default 0 if IDF_TARGET_ESP32C3
default 11 if IDF_TARGET_ESP32S3
default 0 if IDF_TARGET_ESP32C2
default 23 if IDF_TARGET_ESP32C6
default 23 if IDF_TARGET_ESP32C5
default 9 if IDF_TARGET_ESP32C61
default 10
config ESP_COEX_GPIO_DEBUG_IO_IDX10
depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 10)
int "Actual IO num for Debug IO ID10"
range 0 SOC_GPIO_OUT_RANGE_MAX
default 14 if IDF_TARGET_ESP32
default 14 if IDF_TARGET_ESP32S2
default 3 if IDF_TARGET_ESP32C3
default 12 if IDF_TARGET_ESP32S3
default 3 if IDF_TARGET_ESP32C2
default 22 if IDF_TARGET_ESP32C6
default 16 if IDF_TARGET_ESP32C5
default 13 if IDF_TARGET_ESP32C61
default 11
config ESP_COEX_GPIO_DEBUG_IO_IDX11
depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 11)
int "Actual IO num for Debug IO ID11"
range 0 SOC_GPIO_OUT_RANGE_MAX
default 27 if IDF_TARGET_ESP32
default 15 if IDF_TARGET_ESP32S2
default 2 if IDF_TARGET_ESP32C3
default 13 if IDF_TARGET_ESP32S3
default 2 if IDF_TARGET_ESP32C2
default 21 if IDF_TARGET_ESP32C6
default 0 if IDF_TARGET_ESP32C5
default 12 if IDF_TARGET_ESP32C61
default 12
endif
endmenu # Wireless Coexistence