1 /* 2 * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef __ESP_BT_CFG_H__ 8 #define __ESP_BT_CFG_H__ 9 10 #include <stdint.h> 11 #include <stdbool.h> 12 #include "esp_err.h" 13 14 #ifdef __cplusplus 15 extern "C" { 16 #endif 17 18 #if CONFIG_BT_NIMBLE_ENABLED 19 #include "syscfg/syscfg.h" 20 #endif 21 22 #define NIMBLE_LL_STACK_SIZE CONFIG_BT_LE_CONTROLLER_TASK_STACK_SIZE 23 24 #if CONFIG_BT_NIMBLE_ENABLED 25 26 #if CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_CODED_PHY 27 #define BLE_LL_SCAN_PHY_NUMBER_N (2) 28 #else 29 #define BLE_LL_SCAN_PHY_NUMBER_N (1) 30 #endif 31 #define DEFAULT_BT_LE_MAX_PERIODIC_ADVERTISER_LIST MYNEWT_VAL(BLE_MAX_PERIODIC_ADVERTISER_LIST) 32 #define DEFAULT_BT_LE_MAX_PERIODIC_SYNCS MYNEWT_VAL(BLE_MAX_PERIODIC_SYNCS) 33 #define DEFAULT_BT_LE_MAX_CONNECTIONS MYNEWT_VAL(BLE_MAX_CONNECTIONS) 34 #define DEFAULT_BT_LE_ACL_BUF_SIZE MYNEWT_VAL(BLE_TRANSPORT_ACL_SIZE) 35 #define DEFAULT_BT_LE_ACL_BUF_COUNT MYNEWT_VAL(BLE_TRANSPORT_ACL_FROM_LL_COUNT) 36 #define DEFAULT_BT_LE_HCI_EVT_BUF_SIZE MYNEWT_VAL(BLE_TRANSPORT_EVT_SIZE) 37 #define DEFAULT_BT_LE_EXT_ADV_MAX_SIZE MYNEWT_VAL(BLE_EXT_ADV_MAX_SIZE) 38 #define DEFAULT_BT_LE_MAX_EXT_ADV_INSTANCES MYNEWT_VAL(BLE_MULTI_ADV_INSTANCES) 39 #define DEFAULT_BT_NIMBLE_WHITELIST_SIZE MYNEWT_VAL(BLE_LL_WHITELIST_SIZE) 40 #define DEFAULT_BT_LE_HCI_EVT_HI_BUF_COUNT MYNEWT_VAL(BLE_TRANSPORT_EVT_COUNT) 41 #define DEFAULT_BT_LE_HCI_EVT_LO_BUF_COUNT MYNEWT_VAL(BLE_TRANSPORT_EVT_DISCARDABLE_COUNT) 42 #if defined(CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT) 43 #define DEFAULT_BT_LE_50_FEATURE_SUPPORT (1) 44 #else 45 #define DEFAULT_BT_LE_50_FEATURE_SUPPORT (0) 46 #endif 47 48 #define DEGAULT_BT_LE_2M_PHY (CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_2M_PHY) 49 #define DEGAULT_BT_LE_CODED_PHY (CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_CODED_PHY) 50 #define DEFAULT_BT_LE_EXT_ADV (CONFIG_BT_NIMBLE_EXT_ADV) 51 #define DEFAULT_BT_LE_PERIODIC_ADV (CONFIG_BT_NIMBLE_ENABLE_PERIODIC_ADV) 52 #define DEFAULT_BT_LE_EXT_SCAN (CONFIG_BT_NIMBLE_EXT_SCAN) 53 #define DEFAULT_BT_LE_PERIODIC_SYNC (CONFIG_BT_NIMBLE_ENABLE_PERIODIC_SYNC) 54 #define DEFAULT_BT_LE_PAST (CONFIG_BT_NIMBLE_PERIODIC_ADV_SYNC_TRANSFER) 55 56 #define DEFAULT_BT_LE_ROLE_OBSERVER MYNEWT_VAL(BLE_ROLE_OBSERVER) 57 #define DEFAULT_BT_LE_ROLE_CENTROL MYNEWT_VAL(BLE_ROLE_CENTRAL) 58 #define DEFAULT_BT_LE_ROLE_PERIPHERAL MYNEWT_VAL(BLE_ROLE_PERIPHERAL) 59 #define DEFAULT_BT_LE_ROLE_BROADCASTER MYNEWT_VAL(BLE_ROLE_BROADCASTER) 60 #else 61 62 #if CONFIG_BT_LE_LL_CFG_FEAT_LE_CODED_PHY 63 #define BLE_LL_SCAN_PHY_NUMBER_N (2) 64 #else 65 #define BLE_LL_SCAN_PHY_NUMBER_N (1) 66 #endif 67 68 #if defined(CONFIG_BT_LE_MAX_PERIODIC_ADVERTISER_LIST) 69 #define DEFAULT_BT_LE_MAX_PERIODIC_ADVERTISER_LIST (CONFIG_BT_LE_MAX_PERIODIC_ADVERTISER_LIST) 70 #else 71 #define DEFAULT_BT_LE_MAX_PERIODIC_ADVERTISER_LIST (0) 72 #endif 73 74 #if defined(CONFIG_BT_LE_MAX_PERIODIC_SYNCS) 75 #define DEFAULT_BT_LE_MAX_PERIODIC_SYNCS (CONFIG_BT_LE_MAX_PERIODIC_SYNCS) 76 #else 77 #define DEFAULT_BT_LE_MAX_PERIODIC_SYNCS (0) 78 #endif 79 80 #if defined(CONFIG_BT_LE_MAX_CONNECTIONS) 81 #define DEFAULT_BT_LE_MAX_CONNECTIONS (CONFIG_BT_LE_MAX_CONNECTIONS) 82 #else 83 #define DEFAULT_BT_LE_MAX_CONNECTIONS (2) 84 #endif 85 86 #if defined(CONFIG_BT_LE_ACL_BUF_SIZE) 87 #define DEFAULT_BT_LE_ACL_BUF_SIZE (CONFIG_BT_LE_ACL_BUF_SIZE) 88 #else 89 #define DEFAULT_BT_LE_ACL_BUF_SIZE (255) 90 #endif 91 92 #if defined(CONFIG_BT_LE_ACL_BUF_COUNT) 93 #define DEFAULT_BT_LE_ACL_BUF_COUNT (CONFIG_BT_LE_ACL_BUF_COUNT) 94 #else 95 #define DEFAULT_BT_LE_ACL_BUF_COUNT (24) 96 #endif 97 98 #if defined(CONFIG_BT_LE_HCI_EVT_BUF_SIZE) 99 #define DEFAULT_BT_LE_HCI_EVT_BUF_SIZE (CONFIG_BT_LE_HCI_EVT_BUF_SIZE) 100 #else 101 #define DEFAULT_BT_LE_HCI_EVT_BUF_SIZE (70) 102 #endif 103 104 #if defined(CONFIG_BT_LE_EXT_ADV_MAX_SIZE) 105 #define DEFAULT_BT_LE_EXT_ADV_MAX_SIZE (CONFIG_BT_LE_EXT_ADV_MAX_SIZE) 106 #else 107 #define DEFAULT_BT_LE_EXT_ADV_MAX_SIZE (31) 108 #endif 109 110 #if defined(CONFIG_BT_LE_MAX_EXT_ADV_INSTANCES) 111 #define DEFAULT_BT_LE_MAX_EXT_ADV_INSTANCES (CONFIG_BT_LE_MAX_EXT_ADV_INSTANCES) 112 #else 113 #define DEFAULT_BT_LE_MAX_EXT_ADV_INSTANCES (1) 114 #endif 115 116 #if defined(CONFIG_BT_LE_WHITELIST_SIZE) 117 #define DEFAULT_BT_NIMBLE_WHITELIST_SIZE (CONFIG_BT_LE_WHITELIST_SIZE) 118 #else 119 #define DEFAULT_BT_NIMBLE_WHITELIST_SIZE (12) 120 #endif 121 122 #if defined(CONFIG_BT_LE_HCI_EVT_HI_BUF_COUNT) 123 #define DEFAULT_BT_LE_HCI_EVT_HI_BUF_COUNT (CONFIG_BT_LE_HCI_EVT_HI_BUF_COUNT) 124 #else 125 #define DEFAULT_BT_LE_HCI_EVT_HI_BUF_COUNT (30) 126 #endif 127 128 #if defined(CONFIG_BT_LE_HCI_EVT_LO_BUF_COUNT) 129 #define DEFAULT_BT_LE_HCI_EVT_LO_BUF_COUNT (CONFIG_BT_LE_HCI_EVT_LO_BUF_COUNT) 130 #else 131 #define DEFAULT_BT_LE_HCI_EVT_LO_BUF_COUNT (8) 132 #endif 133 134 #if defined(CONFIG_BT_LE_50_FEATURE_SUPPORT) 135 #define DEFAULT_BT_LE_50_FEATURE_SUPPORT (1) 136 #else 137 #define DEFAULT_BT_LE_50_FEATURE_SUPPORT (0) 138 #endif 139 140 #if defined(CONFIG_BT_LE_LL_CFG_FEAT_LE_2M_PHY) 141 #define DEGAULT_BT_LE_2M_PHY (CONFIG_BT_LE_LL_CFG_FEAT_LE_2M_PHY) 142 #else 143 #define DEGAULT_BT_LE_2M_PHY (0) 144 #endif 145 146 #if defined(CONFIG_BT_LE_LL_CFG_FEAT_LE_CODED_PHY) 147 #define DEGAULT_BT_LE_CODED_PHY (CONFIG_BT_LE_LL_CFG_FEAT_LE_CODED_PHY) 148 #else 149 #define DEGAULT_BT_LE_CODED_PHY (0) 150 #endif 151 152 #if defined(CONFIG_BT_LE_EXT_ADV) 153 #define DEFAULT_BT_LE_EXT_ADV (CONFIG_BT_LE_EXT_ADV) 154 #else 155 #define DEFAULT_BT_LE_EXT_ADV (0) 156 #endif 157 158 #if defined(CONFIG_BT_LE_ENABLE_PERIODIC_ADV) 159 #define DEFAULT_BT_LE_PERIODIC_ADV (CONFIG_BT_LE_ENABLE_PERIODIC_ADV) 160 #else 161 #define DEFAULT_BT_LE_PERIODIC_ADV (0) 162 #endif 163 164 #if defined(CONFIG_BT_LE_EXT_SCAN) 165 #define DEFAULT_BT_LE_EXT_SCAN (CONFIG_BT_LE_EXT_SCAN) 166 #else 167 #define DEFAULT_BT_LE_EXT_SCAN (0) 168 #endif 169 170 #if defined(CONFIG_BT_LE_ENABLE_PERIODIC_SYNC) 171 #define DEFAULT_BT_LE_PERIODIC_SYNC (CONFIG_BT_LE_ENABLE_PERIODIC_SYNC) 172 #else 173 #define DEFAULT_BT_LE_PERIODIC_SYNC (0) 174 #endif 175 176 #if defined(BT_LE_PERIODIC_ADV_SYNC_TRANSFER) 177 #define DEFAULT_BT_LE_PAST (BT_LE_PERIODIC_ADV_SYNC_TRANSFER) 178 #else 179 #define DEFAULT_BT_LE_PAST (0) 180 #endif 181 182 #if defined(CONFIG_BT_LE_ROLE_CENTROL_ENABLE) 183 #define DEFAULT_BT_LE_ROLE_CENTROL (1) 184 #else 185 #define DEFAULT_BT_LE_ROLE_CENTROL (0) 186 #endif 187 188 #if defined(CONFIG_BT_LE_ROLE_PERIPHERAL_ENABLE) 189 #define DEFAULT_BT_LE_ROLE_PERIPHERAL (1) 190 #else 191 #define DEFAULT_BT_LE_ROLE_PERIPHERAL (0) 192 #endif 193 194 #if defined(CONFIG_BT_LE_ROLE_BROADCASTER_ENABLE) 195 #define DEFAULT_BT_LE_ROLE_BROADCASTER (1) 196 #else 197 #define DEFAULT_BT_LE_ROLE_BROADCASTER (0) 198 #endif 199 200 #if defined(CONFIG_BT_LE_ROLE_OBSERVER_ENABLE) 201 #define DEFAULT_BT_LE_ROLE_OBSERVER (1) 202 #else 203 #define DEFAULT_BT_LE_ROLE_OBSERVER (0) 204 #endif 205 #if defined (CONFIG_BT_LE_HCI_UART_FLOWCTRL) 206 #define DEFAULT_BT_LE_HCI_UART_FLOW_CTRL (CONFIG_BT_LE_HCI_UART_FLOWCTRL) 207 #if DEFAULT_BT_LE_HCI_UART_FLOW_CTRL 208 #define DEFAULT_BT_LE_HCI_UART_CTS_PIN (CONFIG_BT_LE_HCI_UART_CTS_PIN) 209 #define DEFAULT_BT_LE_HCI_UART_RTS_PIN (CONFIG_BT_LE_HCI_UART_RTS_PIN) 210 #else 211 #define DEFAULT_BT_LE_HCI_UART_CTS_PIN (-1) 212 #define DEFAULT_BT_LE_HCI_UART_RTS_PIN (-1) 213 #endif 214 #else 215 #define DEFAULT_BT_LE_HCI_UART_FLOW_CTRL (0) 216 #define DEFAULT_BT_LE_HCI_UART_CTS_PIN (-1) 217 #define DEFAULT_BT_LE_HCI_UART_RTS_PIN (-1) 218 #endif 219 #endif 220 221 #define DEFAULT_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF 222 223 #ifdef CONFIG_BT_LE_CTRL_CHECK_CONNECT_IND_ACCESS_ADDRESS 224 #define DEFAULT_BT_LE_CTRL_CHECK_CONNECT_IND_ACCESS_ADDRESS (CONFIG_BT_LE_CTRL_CHECK_CONNECT_IND_ACCESS_ADDRESS) 225 #else 226 #define DEFAULT_BT_LE_CTRL_CHECK_CONNECT_IND_ACCESS_ADDRESS (0) 227 #endif 228 229 #ifdef CONFIG_BT_LE_HCI_INTERFACE_USE_UART 230 #define HCI_UART_EN CONFIG_BT_LE_HCI_INTERFACE_USE_UART 231 #else 232 #define HCI_UART_EN 0 // hci ram mode 233 #endif 234 235 #ifdef CONFIG_BT_LE_SLEEP_ENABLE 236 #define NIMBLE_SLEEP_ENABLE CONFIG_BT_LE_SLEEP_ENABLE 237 #else 238 #define NIMBLE_SLEEP_ENABLE 0 239 #endif 240 241 242 #ifdef CONFIG_BT_LE_TX_CCA_ENABLED 243 #define DEFAULT_BT_LE_TX_CCA_ENABLED (CONFIG_BT_LE_TX_CCA_ENABLED) 244 #else 245 #define DEFAULT_BT_LE_TX_CCA_ENABLED (0) 246 #endif 247 248 #ifdef CONFIG_BT_LE_CCA_RSSI_THRESH 249 #define DEFAULT_BT_LE_CCA_RSSI_THRESH (CONFIG_BT_LE_CCA_RSSI_THRESH) 250 #else 251 #define DEFAULT_BT_LE_CCA_RSSI_THRESH (50) 252 #endif 253 254 #define DEFAULT_BT_LE_SCAN_RSP_DATA_MAX_LEN_N DEFAULT_BT_LE_EXT_ADV_MAX_SIZE 255 256 257 #if HCI_UART_EN 258 #define DEFAULT_BT_LE_HCI_UART_TX_PIN (CONFIG_BT_LE_HCI_UART_TX_PIN) 259 #define DEFAULT_BT_LE_HCI_UART_RX_PIN (CONFIG_BT_LE_HCI_UART_RX_PIN) 260 #define DEFAULT_BT_LE_HCI_UART_PORT (CONFIG_BT_LE_HCI_UART_PORT) 261 #define DEFAULT_BT_LE_HCI_UART_BAUD (CONFIG_BT_LE_HCI_UART_BAUD) 262 #define DEFAULT_BT_LE_HCI_UART_DATA_BITS (UART_DATA_8_BITS) 263 #define DEFAULT_BT_LE_HCI_UART_STOP_BITS (UART_STOP_BITS_1) 264 #define DEFAULT_BT_LE_HCI_UART_PARITY (0) 265 #else 266 #define DEFAULT_BT_LE_HCI_UART_TX_PIN (0) 267 #define DEFAULT_BT_LE_HCI_UART_RX_PIN (0) 268 #define DEFAULT_BT_LE_HCI_UART_PORT (0) 269 #define DEFAULT_BT_LE_HCI_UART_BAUD (0) 270 #define DEFAULT_BT_LE_HCI_UART_DATA_BITS (0) 271 #define DEFAULT_BT_LE_HCI_UART_STOP_BITS (0) 272 #define DEFAULT_BT_LE_HCI_UART_PARITY (0) 273 #endif 274 275 /* Unchanged configuration */ 276 277 #define BLE_LL_CTRL_PROC_TIMEOUT_MS_N (40000) /* ms */ 278 279 #define BLE_LL_CFG_NUM_HCI_CMD_PKTS_N (1) 280 281 #define BLE_LL_SCHED_ADV_MAX_USECS_N (852) 282 283 #define BLE_LL_SCHED_DIRECT_ADV_MAX_USECS_N (502) 284 285 #define BLE_LL_SCHED_MAX_ADV_PDU_USECS_N (376) 286 287 #define BLE_LL_SUB_VERS_NR_N (0x0000) 288 289 #define BLE_LL_JITTER_USECS_N (16) 290 291 #define BLE_PHY_MAX_PWR_DBM_N (10) 292 293 #define BLE_LL_CONN_DEF_AUTH_PYLD_TMO_N (3000) 294 295 #ifdef CONFIG_XTAL_FREQ_26 296 #define RTC_FREQ_N (40000) /* in Hz */ 297 #else 298 #define RTC_FREQ_N (32000) /* in Hz */ 299 #endif // CONFIG_XTAL_FREQ_26 300 301 #define BLE_LL_TX_PWR_DBM_N (CONFIG_BT_LE_DFT_TX_POWER_LEVEL_DBM_EFF) 302 303 304 #define RUN_BQB_TEST (0) 305 #define RUN_QA_TEST (0) 306 #define NIMBLE_DISABLE_SCAN_BACKOFF (0) 307 308 309 #ifdef __cplusplus 310 } 311 #endif 312 313 #endif /* __ESP_BT_CFG_H__ */ 314