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 #define DEFAULT_BT_LE_POWER_CONTROL_ENABLED MYNEWT_VAL(BLE_POWER_CONTROL) 43 #if defined(CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT) 44 #define DEFAULT_BT_LE_50_FEATURE_SUPPORT (1) 45 #else 46 #define DEFAULT_BT_LE_50_FEATURE_SUPPORT (0) 47 #endif 48 #else 49 50 #if CONFIG_BT_LE_LL_CFG_FEAT_LE_CODED_PHY 51 #define BLE_LL_SCAN_PHY_NUMBER_N (2) 52 #else 53 #define BLE_LL_SCAN_PHY_NUMBER_N (1) 54 #endif 55 56 #if defined(CONFIG_BT_LE_MAX_PERIODIC_ADVERTISER_LIST) 57 #define DEFAULT_BT_LE_MAX_PERIODIC_ADVERTISER_LIST (CONFIG_BT_LE_MAX_PERIODIC_ADVERTISER_LIST) 58 #else 59 #define DEFAULT_BT_LE_MAX_PERIODIC_ADVERTISER_LIST (5) 60 #endif 61 62 #if defined(CONFIG_BT_LE_MAX_PERIODIC_SYNCS) 63 #define DEFAULT_BT_LE_MAX_PERIODIC_SYNCS (CONFIG_BT_LE_MAX_PERIODIC_SYNCS) 64 #else 65 #define DEFAULT_BT_LE_MAX_PERIODIC_SYNCS (1) 66 #endif 67 68 #if defined(CONFIG_BT_LE_MAX_CONNECTIONS) 69 #define DEFAULT_BT_LE_MAX_CONNECTIONS (CONFIG_BT_LE_MAX_CONNECTIONS) 70 #else 71 #define DEFAULT_BT_LE_MAX_CONNECTIONS (2) 72 #endif 73 74 #if defined(CONFIG_BT_LE_ACL_BUF_SIZE) 75 #define DEFAULT_BT_LE_ACL_BUF_SIZE (CONFIG_BT_LE_ACL_BUF_SIZE) 76 #else 77 #define DEFAULT_BT_LE_ACL_BUF_SIZE (255) 78 #endif 79 80 #if defined(CONFIG_BT_LE_ACL_BUF_COUNT) 81 #define DEFAULT_BT_LE_ACL_BUF_COUNT (CONFIG_BT_LE_ACL_BUF_COUNT) 82 #else 83 #define DEFAULT_BT_LE_ACL_BUF_COUNT (24) 84 #endif 85 86 #if defined(CONFIG_BT_LE_HCI_EVT_BUF_SIZE) 87 #define DEFAULT_BT_LE_HCI_EVT_BUF_SIZE (CONFIG_BT_LE_HCI_EVT_BUF_SIZE) 88 #else 89 #define DEFAULT_BT_LE_HCI_EVT_BUF_SIZE (70) 90 #endif 91 92 #if defined(CONFIG_BT_LE_EXT_ADV_MAX_SIZE) 93 #define DEFAULT_BT_LE_EXT_ADV_MAX_SIZE (CONFIG_BT_LE_EXT_ADV_MAX_SIZE) 94 #else 95 #define DEFAULT_BT_LE_EXT_ADV_MAX_SIZE (31) 96 #endif 97 98 #if defined(CONFIG_BT_LE_MAX_EXT_ADV_INSTANCES) 99 #define DEFAULT_BT_LE_MAX_EXT_ADV_INSTANCES (CONFIG_BT_LE_MAX_EXT_ADV_INSTANCES) 100 #else 101 #define DEFAULT_BT_LE_MAX_EXT_ADV_INSTANCES (1) 102 #endif 103 104 #if defined(CONFIG_BT_LE_WHITELIST_SIZE) 105 #define DEFAULT_BT_NIMBLE_WHITELIST_SIZE (CONFIG_BT_LE_WHITELIST_SIZE) 106 #else 107 #define DEFAULT_BT_NIMBLE_WHITELIST_SIZE (12) 108 #endif 109 110 #if defined(CONFIG_BT_LE_HCI_EVT_HI_BUF_COUNT) 111 #define DEFAULT_BT_LE_HCI_EVT_HI_BUF_COUNT (CONFIG_BT_LE_HCI_EVT_HI_BUF_COUNT) 112 #else 113 #define DEFAULT_BT_LE_HCI_EVT_HI_BUF_COUNT (30) 114 #endif 115 116 #if defined(CONFIG_BT_LE_HCI_EVT_LO_BUF_COUNT) 117 #define DEFAULT_BT_LE_HCI_EVT_LO_BUF_COUNT (CONFIG_BT_LE_HCI_EVT_LO_BUF_COUNT) 118 #else 119 #define DEFAULT_BT_LE_HCI_EVT_LO_BUF_COUNT (8) 120 #endif 121 122 #if defined(CONFIG_BT_LE_POWER_CONTROL_ENABLED) 123 #define DEFAULT_BT_LE_POWER_CONTROL_ENABLED (CONFIG_BT_LE_POWER_CONTROL_ENABLED) 124 #else 125 #define DEFAULT_BT_LE_POWER_CONTROL_ENABLED (0) 126 #endif 127 #if defined(CONFIG_BT_LE_50_FEATURE_SUPPORT) 128 #define DEFAULT_BT_LE_50_FEATURE_SUPPORT (1) 129 #else 130 #define DEFAULT_BT_LE_50_FEATURE_SUPPORT (0) 131 #endif 132 133 #if defined (CONFIG_BT_LE_HCI_UART_FLOWCTRL) 134 #define DEFAULT_BT_LE_HCI_UART_FLOW_CTRL (CONFIG_BT_LE_HCI_UART_FLOWCTRL) 135 #if DEFAULT_BT_LE_HCI_UART_FLOW_CTRL 136 #define DEFAULT_BT_LE_HCI_UART_CTS_PIN (CONFIG_BT_LE_HCI_UART_CTS_PIN) 137 #define DEFAULT_BT_LE_HCI_UART_RTS_PIN (CONFIG_BT_LE_HCI_UART_RTS_PIN) 138 #else 139 #define DEFAULT_BT_LE_HCI_UART_CTS_PIN (-1) 140 #define DEFAULT_BT_LE_HCI_UART_RTS_PIN (-1) 141 #endif 142 #else 143 #define DEFAULT_BT_LE_HCI_UART_FLOW_CTRL (0) 144 #define DEFAULT_BT_LE_HCI_UART_CTS_PIN (-1) 145 #define DEFAULT_BT_LE_HCI_UART_RTS_PIN (-1) 146 #endif 147 #endif 148 149 #define DEFAULT_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF 150 151 #ifdef CONFIG_BT_LE_CTRL_CHECK_CONNECT_IND_ACCESS_ADDRESS 152 #define DEFAULT_BT_LE_CTRL_CHECK_CONNECT_IND_ACCESS_ADDRESS (CONFIG_BT_LE_CTRL_CHECK_CONNECT_IND_ACCESS_ADDRESS) 153 #else 154 #define DEFAULT_BT_LE_CTRL_CHECK_CONNECT_IND_ACCESS_ADDRESS (0) 155 #endif 156 157 #ifdef CONFIG_BT_LE_HCI_INTERFACE_USE_UART 158 #define HCI_UART_EN CONFIG_BT_LE_HCI_INTERFACE_USE_UART 159 #else 160 #define HCI_UART_EN 0 // hci ram mode 161 #endif 162 163 #ifdef CONFIG_BT_LE_SLEEP_ENABLE 164 #define NIMBLE_SLEEP_ENABLE CONFIG_BT_LE_SLEEP_ENABLE 165 #else 166 #define NIMBLE_SLEEP_ENABLE 0 167 #endif 168 169 170 #ifdef CONFIG_BT_LE_TX_CCA_ENABLED 171 #define DEFAULT_BT_LE_TX_CCA_ENABLED (CONFIG_BT_LE_TX_CCA_ENABLED) 172 #else 173 #define DEFAULT_BT_LE_TX_CCA_ENABLED (0) 174 #endif 175 176 #ifdef CONFIG_BT_LE_CCA_RSSI_THRESH 177 #define DEFAULT_BT_LE_CCA_RSSI_THRESH (CONFIG_BT_LE_CCA_RSSI_THRESH) 178 #else 179 #define DEFAULT_BT_LE_CCA_RSSI_THRESH (50) 180 #endif 181 182 #define DEFAULT_BT_LE_SCAN_RSP_DATA_MAX_LEN_N DEFAULT_BT_LE_EXT_ADV_MAX_SIZE 183 184 185 #if HCI_UART_EN 186 #define DEFAULT_BT_LE_HCI_UART_TX_PIN (CONFIG_BT_LE_HCI_UART_TX_PIN) 187 #define DEFAULT_BT_LE_HCI_UART_RX_PIN (CONFIG_BT_LE_HCI_UART_RX_PIN) 188 #define DEFAULT_BT_LE_HCI_UART_PORT (CONFIG_BT_LE_HCI_UART_PORT) 189 #define DEFAULT_BT_LE_HCI_UART_BAUD (CONFIG_BT_LE_HCI_UART_BAUD) 190 #define DEFAULT_BT_LE_HCI_UART_DATA_BITS (UART_DATA_8_BITS) 191 #define DEFAULT_BT_LE_HCI_UART_STOP_BITS (UART_STOP_BITS_1) 192 #define DEFAULT_BT_LE_HCI_UART_PARITY (0) 193 #else 194 #define DEFAULT_BT_LE_HCI_UART_TX_PIN (0) 195 #define DEFAULT_BT_LE_HCI_UART_RX_PIN (0) 196 #define DEFAULT_BT_LE_HCI_UART_PORT (0) 197 #define DEFAULT_BT_LE_HCI_UART_BAUD (0) 198 #define DEFAULT_BT_LE_HCI_UART_DATA_BITS (0) 199 #define DEFAULT_BT_LE_HCI_UART_STOP_BITS (0) 200 #define DEFAULT_BT_LE_HCI_UART_PARITY (0) 201 #endif 202 203 /* Unchanged configuration */ 204 205 #define BLE_LL_CTRL_PROC_TIMEOUT_MS_N (40000) /* ms */ 206 207 #define BLE_LL_CFG_NUM_HCI_CMD_PKTS_N (1) 208 209 #define BLE_LL_SCHED_ADV_MAX_USECS_N (852) 210 211 #define BLE_LL_SCHED_DIRECT_ADV_MAX_USECS_N (502) 212 213 #define BLE_LL_SCHED_MAX_ADV_PDU_USECS_N (376) 214 215 #define BLE_LL_SUB_VERS_NR_N (0x0000) 216 217 #define BLE_LL_JITTER_USECS_N (16) 218 219 #define BLE_PHY_MAX_PWR_DBM_N (10) 220 221 #define BLE_LL_CONN_DEF_AUTH_PYLD_TMO_N (3000) 222 223 #define RTC_FREQ_N (32768) /* in Hz */ 224 225 #define BLE_LL_TX_PWR_DBM_N (CONFIG_BT_LE_DFT_TX_POWER_LEVEL_DBM_EFF) 226 227 #define RUN_BQB_TEST (0) 228 #define RUN_QA_TEST (0) 229 #define NIMBLE_DISABLE_SCAN_BACKOFF (0) 230 231 #ifdef __cplusplus 232 } 233 #endif 234 235 #endif /* __ESP_BT_CFG_H__ */ 236