1 2menu "Wireless Coexistence" 3 config ESP_COEX_SW_COEXIST_ENABLE 4 bool "Software controls WiFi/Bluetooth coexistence" 5 depends on (ESP_WIFI_ENABLED && BT_ENABLED) || \ 6 (ESP_WIFI_ENABLED && IEEE802154_ENABLED) || \ 7 (IEEE802154_ENABLED && BT_ENABLED) 8 default y 9 select ESP_WIFI_STA_DISCONNECTED_PM_ENABLE if (ESP_WIFI_ENABLED) 10 help 11 If enabled, WiFi & Bluetooth coexistence is controlled by software rather than hardware. 12 Recommended for heavy traffic scenarios. Both coexistence configuration options are 13 automatically managed, no user intervention is required. 14 If only Bluetooth is used, it is recommended to disable this option to reduce binary file 15 size. 16 17 config ESP_COEX_EXTERNAL_COEXIST_ENABLE 18 bool "External Coexistence" 19 default n 20 depends on (!(BT_ENABLED||NIMBLE_ENABLED)&&(!IDF_TARGET_ESP32)) 21 help 22 If enabled, HW External coexistence arbitration is managed by GPIO pins. 23 It can support three types of wired combinations so far which are 1-wired/2-wired/3-wired. 24 User can select GPIO pins in application code with configure interfaces. 25 26 This function depends on BT-off 27 because currently we do not support external coex and internal coex simultaneously. 28 29 config ESP_COEX_POWER_MANAGEMENT 30 bool "Support power management under coexistence" 31 default n 32 depends on (ESP_COEX_SW_COEXIST_ENABLE) 33 help 34 If enabled, coexist power management will be enabled. 35 36 config ESP_COEX_GPIO_DEBUG 37 bool "GPIO debugging for coexistence" 38 default n 39 depends on !PM_SLP_DISABLE_GPIO && !PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP 40 help 41 Support coexistence GPIO debugging 42 43 if (ESP_COEX_GPIO_DEBUG) 44 45 choice ESP_COEX_GPIO_DEBUG_DIAG 46 prompt "Debugging Diagram" 47 default ESP_COEX_GPIO_DEBUG_DIAG_GENERAL 48 help 49 Select type of debugging diagram 50 51 config ESP_COEX_GPIO_DEBUG_DIAG_GENERAL 52 bool "General" 53 config ESP_COEX_GPIO_DEBUG_DIAG_WIFI 54 bool "Wi-Fi" 55 56 endchoice 57 58 config ESP_COEX_GPIO_DEBUG_IO_COUNT 59 int "Max number of debugging GPIOs" 60 range 0 12 61 default 12 62 63 config ESP_COEX_GPIO_DEBUG_IO_IDX0 64 depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 0) 65 int "Actual IO num for Debug IO ID0" 66 range 0 SOC_GPIO_OUT_RANGE_MAX 67 default 15 if IDF_TARGET_ESP32 68 default 4 if IDF_TARGET_ESP32S2 69 default 19 if IDF_TARGET_ESP32C3 70 default 4 if IDF_TARGET_ESP32S3 71 default 18 if IDF_TARGET_ESP32C2 72 default 4 if IDF_TARGET_ESP32C6 73 default 2 if IDF_TARGET_ESP32C5 74 default 4 if IDF_TARGET_ESP32C61 75 default 1 76 77 config ESP_COEX_GPIO_DEBUG_IO_IDX1 78 depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 1) 79 int "Actual IO num for Debug IO ID1" 80 range 0 SOC_GPIO_OUT_RANGE_MAX 81 default 2 if IDF_TARGET_ESP32 82 default 5 if IDF_TARGET_ESP32S2 83 default 18 if IDF_TARGET_ESP32C3 84 default 5 if IDF_TARGET_ESP32S3 85 default 4 if IDF_TARGET_ESP32C2 86 default 5 if IDF_TARGET_ESP32C6 87 default 3 if IDF_TARGET_ESP32C5 88 default 5 if IDF_TARGET_ESP32C61 89 default 2 90 91 config ESP_COEX_GPIO_DEBUG_IO_IDX2 92 depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 2) 93 int "Actual IO num for Debug IO ID2" 94 range 0 SOC_GPIO_OUT_RANGE_MAX 95 default 0 if IDF_TARGET_ESP32 96 default 6 if IDF_TARGET_ESP32S2 97 default 4 if IDF_TARGET_ESP32C3 98 default 6 if IDF_TARGET_ESP32S3 99 default 5 if IDF_TARGET_ESP32C2 100 default 6 if IDF_TARGET_ESP32C6 101 default 4 if IDF_TARGET_ESP32C5 102 default 6 if IDF_TARGET_ESP32C61 103 default 3 104 105 config ESP_COEX_GPIO_DEBUG_IO_IDX3 106 depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 3) 107 int "Actual IO num for Debug IO ID3" 108 range 0 SOC_GPIO_OUT_RANGE_MAX 109 default 4 if IDF_TARGET_ESP32 110 default 7 if IDF_TARGET_ESP32S2 111 default 5 if IDF_TARGET_ESP32C3 112 default 7 if IDF_TARGET_ESP32S3 113 default 6 if IDF_TARGET_ESP32C2 114 default 7 if IDF_TARGET_ESP32C6 115 default 5 if IDF_TARGET_ESP32C5 116 default 7 if IDF_TARGET_ESP32C61 117 default 4 118 119 config ESP_COEX_GPIO_DEBUG_IO_IDX4 120 depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 4) 121 int "Actual IO num for Debug IO ID4" 122 range 0 SOC_GPIO_OUT_RANGE_MAX 123 default 5 if IDF_TARGET_ESP32 124 default 8 if IDF_TARGET_ESP32S2 125 default 6 if IDF_TARGET_ESP32C3 126 default 15 if IDF_TARGET_ESP32S3 127 default 7 if IDF_TARGET_ESP32C2 128 default 8 if IDF_TARGET_ESP32C6 129 default 27 if IDF_TARGET_ESP32C5 130 default 0 if IDF_TARGET_ESP32C61 131 default 5 132 133 config ESP_COEX_GPIO_DEBUG_IO_IDX5 134 depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 5) 135 int "Actual IO num for Debug IO ID5" 136 range 0 SOC_GPIO_OUT_RANGE_MAX 137 default 18 if IDF_TARGET_ESP32 138 default 9 if IDF_TARGET_ESP32S2 139 default 7 if IDF_TARGET_ESP32C3 140 default 16 if IDF_TARGET_ESP32S3 141 default 8 if IDF_TARGET_ESP32C2 142 default 10 if IDF_TARGET_ESP32C6 143 default 6 if IDF_TARGET_ESP32C5 144 default 1 if IDF_TARGET_ESP32C61 145 default 6 146 147 config ESP_COEX_GPIO_DEBUG_IO_IDX6 148 depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 6) 149 int "Actual IO num for Debug IO ID6" 150 range 0 SOC_GPIO_OUT_RANGE_MAX 151 default 19 if IDF_TARGET_ESP32 152 default 10 if IDF_TARGET_ESP32S2 153 default 8 if IDF_TARGET_ESP32C3 154 default 17 if IDF_TARGET_ESP32S3 155 default 9 if IDF_TARGET_ESP32C2 156 default 11 if IDF_TARGET_ESP32C6 157 default 7 if IDF_TARGET_ESP32C5 158 default 8 if IDF_TARGET_ESP32C61 159 default 7 160 161 config ESP_COEX_GPIO_DEBUG_IO_IDX7 162 depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 7) 163 int "Actual IO num for Debug IO ID7" 164 range 0 SOC_GPIO_OUT_RANGE_MAX 165 default 22 if IDF_TARGET_ESP32 166 default 11 if IDF_TARGET_ESP32S2 167 default 9 if IDF_TARGET_ESP32C3 168 default 18 if IDF_TARGET_ESP32S3 169 default 10 if IDF_TARGET_ESP32C2 170 default 2 if IDF_TARGET_ESP32C6 171 default 26 if IDF_TARGET_ESP32C5 172 default 2 if IDF_TARGET_ESP32C61 173 default 8 174 175 config ESP_COEX_GPIO_DEBUG_IO_IDX8 176 depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 8) 177 int "Actual IO num for Debug IO ID8" 178 range 0 SOC_GPIO_OUT_RANGE_MAX 179 default 13 if IDF_TARGET_ESP32 180 default 12 if IDF_TARGET_ESP32S2 181 default 10 if IDF_TARGET_ESP32C3 182 default 10 if IDF_TARGET_ESP32S3 183 default 1 if IDF_TARGET_ESP32C2 184 default 15 if IDF_TARGET_ESP32C6 185 default 24 if IDF_TARGET_ESP32C5 186 default 3 if IDF_TARGET_ESP32C61 187 default 9 188 189 config ESP_COEX_GPIO_DEBUG_IO_IDX9 190 depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 9) 191 int "Actual IO num for Debug IO ID9" 192 range 0 SOC_GPIO_OUT_RANGE_MAX 193 default 12 if IDF_TARGET_ESP32 194 default 13 if IDF_TARGET_ESP32S2 195 default 0 if IDF_TARGET_ESP32C3 196 default 11 if IDF_TARGET_ESP32S3 197 default 0 if IDF_TARGET_ESP32C2 198 default 23 if IDF_TARGET_ESP32C6 199 default 23 if IDF_TARGET_ESP32C5 200 default 9 if IDF_TARGET_ESP32C61 201 default 10 202 203 config ESP_COEX_GPIO_DEBUG_IO_IDX10 204 depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 10) 205 int "Actual IO num for Debug IO ID10" 206 range 0 SOC_GPIO_OUT_RANGE_MAX 207 default 14 if IDF_TARGET_ESP32 208 default 14 if IDF_TARGET_ESP32S2 209 default 3 if IDF_TARGET_ESP32C3 210 default 12 if IDF_TARGET_ESP32S3 211 default 3 if IDF_TARGET_ESP32C2 212 default 22 if IDF_TARGET_ESP32C6 213 default 10 if IDF_TARGET_ESP32C5 214 default 13 if IDF_TARGET_ESP32C61 215 default 11 216 217 config ESP_COEX_GPIO_DEBUG_IO_IDX11 218 depends on (ESP_COEX_GPIO_DEBUG_IO_COUNT > 11) 219 int "Actual IO num for Debug IO ID11" 220 range 0 SOC_GPIO_OUT_RANGE_MAX 221 default 27 if IDF_TARGET_ESP32 222 default 15 if IDF_TARGET_ESP32S2 223 default 2 if IDF_TARGET_ESP32C3 224 default 13 if IDF_TARGET_ESP32S3 225 default 2 if IDF_TARGET_ESP32C2 226 default 21 if IDF_TARGET_ESP32C6 227 default 9 if IDF_TARGET_ESP32C5 228 default 12 if IDF_TARGET_ESP32C61 229 default 12 230 231 endif 232 233endmenu # Wireless Coexistence 234