1 /*$Id: //dwh/bluetooth/DWC_ble154combo/firmware/rel/1.32a-lca02/firmware/public_inc/common_types.h#3 $*/ 2 /** 3 ******************************************************************************** 4 * @file common_types.h 5 * @brief This file contains common includes for BLE FW LL. 6 ****************************************************************************** 7 * @copy 8 * This Synopsys DWC Bluetooth Low Energy Combo Link Layer/MAC software and 9 * associated documentation ( hereinafter the "Software") is an unsupported 10 * proprietary work of Synopsys, Inc. unless otherwise expressly agreed to in 11 * writing between Synopsys and you. The Software IS NOT an item of Licensed 12 * Software or a Licensed Product under any End User Software License Agreement 13 * or Agreement for Licensed Products with Synopsys or any supplement thereto. 14 * Synopsys is a registered trademark of Synopsys, Inc. Other names included in 15 * the SOFTWARE may be the trademarks of their respective owners. 16 * 17 * Synopsys MIT License: 18 * Copyright (c) 2020-Present Synopsys, Inc 19 * 20 * Permission is hereby granted, free of charge, to any person obtaining a copy of 21 * the Software), to deal in the Software without restriction, including without 22 * limitation the rights to use, copy, modify, merge, publish, distribute, 23 * sublicense, and/or sell copies of the Software, and to permit persons to whom 24 * the Software is furnished to do so, subject to the following conditions: 25 * 26 * The above copyright notice and this permission notice shall be included in all 27 * copies or substantial portions of the Software. 28 * 29 * THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 30 * IMPLIED, INCLUDING, BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 31 * FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE 32 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 33 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE ARISING FROM, 34 * OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 35 * 36 * */ 37 38 /* Define to prevent recursive inclusion -------------------------------------*/ 39 40 #ifndef COMMON_TYPES_H_ 41 #define COMMON_TYPES_H_ 42 #include "_40nm_reg_files/DWC_ble154combo.h" 43 #include "bsp.h" 44 #include "ll_fw_config.h" 45 #include "mem_intf.h" 46 #include "os_wrapper.h" 47 48 49 /********************************************************************** */ 50 /****************** BLE MAC COMBO Configurations*********************** */ 51 /********************************************************************** */ 52 #ifdef BLE 53 #define SUPPORT_BLE 1 54 #else 55 #define SUPPORT_BLE 0 56 #endif 57 58 #ifdef MAC 59 #define SUPPORT_MAC 1 60 #else 61 #define SUPPORT_MAC 0 62 #endif 63 #ifdef ANT_ROLE 64 #define SUPPORT_ANT 1 65 66 #ifdef SUPPORT_ANT_TESTING 67 #define SUPPORT_ANT_HCI_UART 1 68 #else 69 #define SUPPORT_ANT_HCI_UART 0 70 #endif /* SUPPORT_ANT_HCI_UART*/ 71 72 #else 73 #define SUPPORT_ANT 0 74 #define SUPPORT_ANT_HCI_UART 0 75 #endif 76 77 #ifdef MAC_LAYER 78 #define MAC_LAYER_BUILD 1 79 #else 80 #define MAC_LAYER_BUILD 0 81 #endif 82 83 #ifdef SUPPORT_MAC_HCI_UART 84 #define SUPPORT_MAC_HCI_UART 1 85 #else 86 #define SUPPORT_MAC_HCI_UART 0 87 #endif 88 89 #ifdef SUPPORT_AUG_MAC_HCI_UART 90 #define SUPPORT_AUG_MAC_HCI_UART 1 91 #else 92 #define SUPPORT_AUG_MAC_HCI_UART 0 93 #endif 94 95 #if((!SUPPORT_BLE)&&(SUPPORT_MAC || SUPPORT_AUG_MAC_HCI_UART)&&(RAL_NUMBER_OF_INSTANCE>1)) 96 #error "BLE controller must be enabled to support MAC multiple Instances" 97 #endif 98 99 #if((SUPPORT_MAC)&&(SUPPORT_AUG_MAC_HCI_UART)&&(RAL_NUMBER_OF_INSTANCE<2)) 100 #error "RAL_NUMBER_OF_INSTANCE must be 2 to support MAC and Augmented MAC" 101 #endif 102 103 #if((!SUPPORT_BLE)&&(SUPPORT_MAC)&&(SUPPORT_ANT)) 104 #error "BLE controller must be enabled to support MAC and ANT Coexistence" 105 #endif 106 107 #define SUPPORT_COEXISTENCE ((SUPPORT_BLE&&SUPPORT_MAC) || (SUPPORT_BLE&&SUPPORT_ANT)) 108 #define SUPPORT_ANT_COEXISTENCE (SUPPORT_BLE&&SUPPORT_ANT) 109 /****************** User configuration **********************************/ 110 #define CS_TESTING TRUE 111 112 #define SUPPORT_GNRC_SCHDLR_IF (1) 113 /********************* Macros **********************************/ 114 115 #ifndef SUCCESS 116 #define SUCCESS 0 117 #endif 118 #ifndef GENERAL_FAILURE 119 #define GENERAL_FAILURE -1 120 #endif 121 #ifndef GENERAL_ERROR_STATUS 122 #define GENERAL_ERROR_STATUS 0xFF 123 #endif 124 125 #ifndef TRUE 126 #define TRUE 1 127 #endif /* TRUE */ 128 129 #ifndef FALSE 130 #define FALSE 0 131 #endif /* FALSE */ 132 133 #ifndef NULL 134 #define NULL ((void *)0) 135 #endif /* NULL */ 136 137 #define UNUSED_VALUE 0 138 #define UNUSED_PTR NULL 139 140 #define MEMSET(ptr_memory, value, memory_size) ble_memset(ptr_memory, value, memory_size) 141 #define MEMCPY(ptr_destination, ptr_source, memory_size) ble_memcpy(ptr_destination, ptr_source, memory_size) 142 #define MEMCMP(ptr_destination, ptr_source, memory_size) ble_memcmp(ptr_destination, ptr_source, memory_size) 143 #define MEMMOV(ptr_destination, ptr_source, memory_size) ble_memmov(ptr_destination, ptr_source, memory_size) 144 #define MEMCPY_N_BYTES(ptr_dest, ptr_src,no_bytes ,keep_endian) ble_memcpy_n_bytes(ptr_dest,ptr_src ,no_bytes ,keep_endian) 145 146 147 148 extern os_mutex_id g_ll_lock; 149 #define LL_LOCK() os_rcrsv_mutex_wait(g_ll_lock,0xffffffff) 150 #define LL_UNLOCK() os_rcrsv_mutex_release(g_ll_lock) 151 152 #ifndef SUPPORT_ANT_DIV 153 #define SUPPORT_ANT_DIV 0 154 #endif 155 156 #if SUPPORT_MAC 157 #define RADIO_MAC_TX_DONE_EVENT_MAX 1 158 #define RAL_SM_DONE_EVENT_MAX RADIO_TX_RX_PACKET_BLOCK_COUNT 159 #define ED_TIMER_EVENT_MAX 1 160 #define MAX_MLME_TIMER_EVENT MAC_NUMBER_OF_INSTANCE 161 #define MAX_DIRECT_DATA_TX_EVENT MAC_NUMBER_OF_INSTANCE 162 #define MAX_INDIRECT_DATA_TIMEOUT_EVENT MAX_NUMBER_OF_INDIRECT_DATA 163 #define PRDC_CLBR_TMR_EVENT_MAX 1 164 #define CSL_RCV_TMR_EVENT_MAX 1 165 166 /* Size in octets of extended address used in security processing */ 167 #define EXT_ADDRESS_LENGTH 8 168 #endif /* SUPPORT_MAC */ 169 170 #if SUPPORT_MAC && SUPPORT_OPENTHREAD_1_2 171 /* compiler flag to control supporting of CSL transmitter , RADIO TX at specific time , 1 supported , 0 not supported */ 172 #define CONFIG_MAC_CSL_TRANSMITTER_ENABLE 1 173 /* compiler flag to control supporting of CSL receiver , RADIO RX at specific time, 1 supported , 0 not supported */ 174 #define CONFIG_MAC_CSL_RECEIVER_ENABLE 1 175 /* compiler flag to control supporting of Radio security handling */ 176 #define SUPPORT_RADIO_SECURITY_OT_1_2 1 177 /* compiler flag to control supporting of Enhanced Ack Link metrics probing */ 178 #define SUPPORT_ENH_ACK_LINK_METRICS_PROBING_OT_1_2 1 179 /* compiler flag to control supporting of Time sync experimental feature of OT 1.2 180 * (it is not a thread 1.2 shall not be added except for with OT 1.2 for testing purpose) */ 181 #define SUPPORT_TIME_SYNC_OT_1_2 1 182 #else 183 #define CONFIG_MAC_CSL_TRANSMITTER_ENABLE 0 184 #define CONFIG_MAC_CSL_RECEIVER_ENABLE 0 185 #define SUPPORT_RADIO_SECURITY_OT_1_2 0 186 #define SUPPORT_ENH_ACK_LINK_METRICS_PROBING_OT_1_2 0 187 #define SUPPORT_TIME_SYNC_OT_1_2 0 188 #endif /*SUPPORT_MAC && SUPPORT_OPENTHREAD_1_2 */ 189 190 /* end of radio activity custom command flag */ 191 #define END_OF_RADIO_ACTIVITY_REPORTING 1 /* Enable\Disable end of radio activity reporting feature. Enable:1 - Disable:0 */ 192 193 /* Supported PHYs*/ 194 typedef enum { 195 LE_NO_CHANGE = 0x00, 196 LE_1M = 0x01, 197 LE_2M = 0x02, 198 LE_CODED_S8 = 0x03, 199 LE_CODED = 0x04, 200 #if (SUPPORT_LE_POWER_CONTROL) 201 LE_PHY_UNDEFINED = 0xFC, 202 NEW_PHY_CODED_S2 = 0xFD, 203 NEW_PHY_CODED_S8 = 0xFE, 204 NEW_PHY_CODED_COMBINED = 0xFF, 205 #endif /* SUPPORT_LE_POWER_CONTROL */ 206 207 /* PHY Recommendations - Combined Values */ 208 #if ((SUPPORT_CONNECTED_ISOCHRONOUS && SUPPORT_MASTER_CONNECTION) || SUPPORT_BRD_ISOCHRONOUS) 209 RECOMMEND_1M_2M = 0x03, 210 RECOMMEND_1M_CODED = 0x05, 211 RECOMMEND_2M_CODED = 0x06, 212 RECOMMEND_1M_2M_CODED = 0x07, 213 #endif /* ((SUPPORT_CONNECTED_ISOCHRONOUS && SUPPORT_MASTER_CONNECTION) || SUPPORT_BRD_ISOCHRONOUS) */ 214 } tx_rx_phy_e; 215 216 /** 217 * @brief time stamp structure. 218 */ 219 typedef struct time_st { 220 uint32_t time_stamp_base; 221 uint16_t time_stamp_fine; 222 uint8_t overflow_flag; 223 } ble_time_t, *ble_time_p; 224 typedef enum dpslp_state { 225 DEEP_SLEEP_ENABLE = 0x01, 226 DEEP_SLEEP_DISABLE = 0x00 227 } dpslp_state_e; 228 229 /** 230 * @enum crypto_endian_enum_t 231 * @brief States the available endian formats. 232 * 233 */ 234 typedef enum { 235 CRYPTO_LITTLE_ENDIAN, 236 CRYPTO_BIG_ENDIAN 237 } crypto_endian_enum_t; 238 239 /** 240 * @enum security_mode_enum_t 241 * @brief Contains the available security modes. 242 * 243 * Note: The enum values should be the same as specified in the register 244 * address header file. 245 */ 246 typedef enum { 247 ECB_DECRYPT = 0, 248 CCM_DECRYPT = 1, 249 ECB_ENCRYPT = 2, 250 CCM_ENCRYPT = 3, 251 CTR_ENCRYPT = 4, 252 CTR_DECRYPT = 5, 253 MODES_MAX_NUM 254 } security_mode_enum_t; 255 256 #if SUPPORT_MAC 257 typedef enum ral_phy_rate_enum { 258 #if SUPPORT_A_MAC 259 RAL_RATE_125K = 0x00, 260 RAL_RATE_1M = 0x02, 261 RAL_RATE_2M = 0x03, 262 #endif 263 RAL_RATE_256K = 0x01 264 } ral_phy_rate_enum_t; 265 266 #endif /*SUPPORT_MAC*/ 267 /** 268 * @enum extrnl_evnt_priority_e 269 * @brief External Event priority 270 */ 271 typedef enum _extrnl_evnt_priority_e 272 { 273 PRIORITY_DEFAULT, 274 PRIORITY_HIGH, 275 PRIORITY_CRITICAL 276 }extrnl_evnt_priority_e; 277 278 /** 279 * @enum extrnl_evnt_state_e 280 * @brief External Event Blocked State and reason 281 */ 282 typedef enum _extrnl_evnt_state_e 283 { 284 STATE_BLOCKED_UNKNOWN, 285 STATE_BLOCKED_PRIORITY, 286 STATE_BLOCKED_CANCELLED, 287 STATE_BLOCKED_LATE, 288 STATE_BLOCKED_DEADLINE, 289 STATE_NOT_BLOCKED 290 }extrnl_evnt_state_e; 291 292 /** 293 * @brief Enumeration of the source type used to drive the sleep timer. 294 */ 295 typedef enum _slptmr_src_type_e { 296 CRYSTAL_OSCILLATOR_SLPTMR = 0x00, 297 #if (USE_NON_ACCURATE_32K_SLEEP_CLK) 298 RCO_SLPTMR = 0x01, 299 RTC_SLPTMR = 0x02 300 #endif /* USE_NON_ACCURATE_32K_SLEEP_CLK */ 301 }slptmr_src_type_e; 302 303 /** 304 * @brief Enumeration of the antenna diversity interval type. 305 */ 306 #if SUPPORT_MAC && SUPPORT_ANT_DIV 307 typedef enum ant_intrv_type_enum { 308 NO_TYPE, 309 FIXED_TIME, 310 PACKETS_NUMBER 311 } ant_intrv_type_enum_t; 312 313 /* 314 * @brief structure that hold antenna diversity parameters information. 315 */ 316 typedef struct _antenna_diversity_st{ 317 ant_intrv_type_enum_t ant_intrv_type; /* antenna interval type: FIXED_TIME(us) or PACKETS_NUMBER(n) */ 318 uint32_t ant_intrv_value; /* antenna interval value based on type; us for FIXED_TIME, n for PACKETS_NUMBER */ 319 uint16_t wntd_coord_shrt_addr; /* wanted coordinator/router short address */ 320 uint8_t wntd_coord_ext_addr[EXT_ADDRESS_LENGTH]; /* wanted coordinator/router extended address */ 321 uint8_t max_rx_ack_retries; /* max number of retries to receive ack in case of ack error reception*/ 322 } antenna_diversity_st; 323 #endif /* SUPPORT_MAC && SUPPORT_ANT_DIV */ 324 325 /* 326 * @brief structure that hold some information about the data transmitted across layers. 327 */ 328 typedef struct ble_buff_hdr_st { 329 /* pointer to buffer allocated in TX/RX buffer*/ 330 uint8_t *buff_start; 331 /* pointer to next ble_buff_hdr node */ 332 struct ble_buff_hdr_st *next_pkt; 333 /* Total buffer size */ 334 uint16_t total_len; 335 /* offset to data location from the packet start pointed to by buff_start */ 336 uint16_t data_offset; 337 /* data size for the data pointed to by buff_start + data_offset*/ 338 uint16_t data_size; 339 /* bit field flags to be used for identifying buffer type data/control buffer, 340 * for data is it a BLE/MAC/ANT, does it contain complete SDU packet of it is a fragment, 341 * if it is a fragment is it the start or continuation or last fragment. */ 342 uint8_t ble_hdr_flags; 343 } pkt_buff_hdr_t ,ble_buff_hdr_t, *ble_buff_hdr_p; 344 345 #if (SUPPORT_BRD_ISOCHRONOUS || SUPPORT_SYNC_ISOCHRONOUS || (SUPPORT_CONNECTED_ISOCHRONOUS && ( SUPPORT_MASTER_CONNECTION || SUPPORT_SLAVE_CONNECTION))) 346 /** 347 * @brief: PDU info structure 348 */ 349 typedef struct _iso_pdu_buff_hdr_st { 350 ble_buff_hdr_t pkt; /* PDU Packet */ 351 #if(SUPPORT_CONNECTED_ISOCHRONOUS && (SUPPORT_MASTER_CONNECTION || SUPPORT_SLAVE_CONNECTION)) 352 uint8_t flsh_tmout_cnt; /* flush timeout counter */ 353 uint8_t flsh_tmout_subevnt_cnt; /* flush timeout subevent number */ 354 uint8_t rx_flsh_tmout_cnt_updtd; /* flush timeout count updated or not flag */ 355 #endif //(SUPPORT_CONNECTED_ISOCHRONOUS && (SUPPORT_MASTER_CONNECTION || SUPPORT_SLAVE_CONNECTION)) 356 uint8_t status; 357 } iso_pdu_buff_hdr_st; 358 /** 359 * @brief: SDU info structure 360 */ 361 typedef struct _sdu_buf_hdr_st { 362 iso_pdu_buff_hdr_st* ptr_last_pdu_buff_hdr; /* pointer to the last pdu buffer header pointed to this sdu */ 363 struct _sdu_buf_hdr_st* ptr_nxt_sdu_buff_hdr; /* next sdu pointer */ 364 uint32_t*ptr_sdu_buffer; /* pointer to SDU buffer in system memory for rx*/ 365 uint32_t time_stamp; /* Time Stamp associated with this SDU */ 366 uint32_t time_offset; /* Time Offset used only in framed SDUs */ 367 uint16_t pkt_sqnc_num; /* Packet Sequence Number */ 368 uint16_t iso_sdu_len; /* ISO SDU data real length */ 369 uint8_t pkt_status_flag; 370 uint8_t pb_flag; /* PB_flag used in rx */ 371 /* 372 * the first one will have the value 10 complete sdu until a new sdu fragment will be received then it will be 00 first fragment 373 * the subsequent one will have the value 11 last fragment until a new sdu fragment will be received then it will be 01 continuation fragment 374 * 375 * */ 376 } iso_sdu_buf_hdr_st, *iso_sdu_buf_hdr_p; 377 #endif /* (SUPPORT_BRD_ISOCHRONOUS || SUPPORT_SYNC_ISOCHRONOUSs || (SUPPORT_CONNECTED_ISOCHRONOUS && ( SUPPORT_MASTER_CONNECTION || SUPPORT_SLAVE_CONNECTION))) */ 378 379 #if SUPPORT_LE_PAWR_ADVERTISER_ROLE 380 /** 381 * brief: PAWR host buffer struct 382 */ 383 typedef struct _pawr_host_buffer { 384 uint8_t buffer[257]; 385 uint8_t total_data_lenth; 386 uint8_t number_of_reports; 387 }pawr_host_buffer; 388 #endif /* SUPPORT_LE_PAWR_ADVERTISER_ROLE */ 389 390 391 /* 392 * @brief Transport layer event 393 */ 394 typedef enum { 395 HCI_CMD_PCKT = 0x01, 396 HCI_ACL_DATA_PCKT = 0x02, 397 HCI_EVNT_PCKT = 0x04, 398 HCI_ISO_DATA_PCKT = 0x05, 399 400 401 #if (SUPPORT_MAC && SUPPORT_MAC_HCI_UART) 402 HCI_MAC_REQ = 0x0A, 403 HCI_MAC_CFM = 0x0B, 404 HCI_MAC_KEY_TBL_CFM = 0x0E, 405 #endif /* SUPPORT_MAC && SUPPORT_MAC_HCI_UART */ 406 #if (SUPPORT_ANT_HCI_UART) 407 HCI_ANT_REQ = 0x10, 408 HCI_ANT_CFM = 0x11, 409 #endif /* SUPPORT_ANT_HCI_UART */ 410 #if (SUPPORT_AUG_MAC_HCI_UART) 411 AUG_HCI_MAC_REQ = 0x0C, 412 AUG_HCI_MAC_CFM = 0x0D, 413 #endif /* SUPPORT_AUG_MAC_HCI_UART */ 414 415 } event_t; 416 417 418 419 /*constant flags to be used with ble_buff_hdr_t:ble_hdr_flags*/ 420 #define BLE_BUFF_HDR_STRT_PKT (1<<0) 421 #define BLE_BUFF_HDR_CNTRL_PKT (1<<1) 422 #define BLE_BUFF_HDR_BUFF_FRGMNTD (1<<2) 423 #define BLE_BUFF_HDR_EVNT_CMD_PCKT (1<<3) 424 #define BLE_BUFF_HDR_ACL_DATA_PCKT (1<<4) 425 426 #if ((SUPPORT_CONNECTED_ISOCHRONOUS && (SUPPORT_MASTER_CONNECTION || SUPPORT_SLAVE_CONNECTION)) \ 427 ||(SUPPORT_BRD_ISOCHRONOUS || SUPPORT_SYNC_ISOCHRONOUS)) 428 #define BLE_BUFF_HDR_NULL_PCKT (1<<3) 429 /* 430 * BLE_BUFF_HDR_ISO_DATA_PCKT_BIT1 : BLE_BUFF_HDR_ISO_DATA_PCKT_BIT0 = Mode 431 * 1 : 1 = Unframed CIS Data PDU; end fragment of an SDU or a complete SDU. LLID (0b00) 432 * 0 : 1 = Unframed CIS Data PDU; start or continuation fragment of an SDU. 433 * 1 : 0 = Framed CIS Data PDU; one or more segments of an SDU. 434 * */ 435 #define BLE_BUFF_HDR_ISO_DATA_PCKT_BIT0 (1<<5) 436 #define BLE_BUFF_HDR_ISO_DATA_PCKT_BIT1 (1<<6) 437 #endif /* (SUPPORT_CONNECTED_ISOCHRONOUS && (SUPPORT_MASTER_CONNECTION || SUPPORT_SLAVE_CONNECTION)) */ 438 #if (SUPPORT_MAC && SUPPORT_MAC_HCI_UART) 439 #define BLE_BUFF_HDR_MAC_CMD_PCK (1<<6) 440 #define BLE_BUFF_HDR_MAC_KEY_TBL_CMD_PCK ((1<<7)|(1<<4)) 441 #endif /* (SUPPORT_MAC && SUPPORT_MAC_HCI_UART) */ 442 #if (SUPPORT_ANT_HCI_UART) 443 #define BLE_BUFF_HDR_ANT_CMD_PCK (1<<7) 444 #endif /* SUPPORT_ANT_HCI_UART */ 445 #if (SUPPORT_AUG_MAC_HCI_UART) 446 #define BLE_BUFF_HDR_AUG_MAC_CMD_PCK ((1<<7)|(1<<6)) 447 #endif 448 449 450 /** 451 * The default PHY periodic calibration period in second. this Macro can be set to any value , Zero means that phy periodic calibration is disabled 452 */ 453 #define DEFAULT_PHY_CALIBRATION_PERIOD 10 /* Time period for PHY calibration = 10s */ 454 455 #if defined(PHY_40nm_3_00_a) || defined(PHY_40nm_3_40_a) 456 #define SUPPORT_MAC_PHY_CONT_TESTING_CMDS 1 457 #else 458 #define SUPPORT_MAC_PHY_CONT_TESTING_CMDS 0 459 #if(SUPPORT_MAC_PHY_CONT_TESTING_CMDS) 460 #error "SUPPORT_MAC_PHY_CONT_TESTING_CMDS must be enabled for PHY_40nm_3_00_a or PHY_40nm_3_40_a only" 461 #endif/*end of (SUPPORT_MAC_PHY_CONT_TESTING_CMDS) */ 462 #endif /*end of defined(PHY_40nm_3_00_a) || defined(PHY_40nm_3_40_a) */ 463 464 #ifndef EXTERNAL_CUSTOM_CMDS 465 #define EXTERNAL_CUSTOM_CMDS 0 /* Indicates that an external custom HCI commands module exists */ 466 #endif /* EXTERNAL_CUSTOM_CMDS */ 467 #define SUPPORT_ZIGBEE_PHY_CERTIFICATION 0 /* 0 disable , 1 enable .. used to enable support of hci command required to implement zigbee phy Test cases*/ 468 469 470 #if (!USE_HCI_TRANSPORT) && (SUPPORT_BLE) /* SUPPORT_HCI_EVENT_ONLY cannot be supported with default HCI_transport */ 471 /* if this marco is enabled it will enable the below features 472 * -Queue events - ACL - ISO - Reports into different queues 473 -Allow host to register callback to refuse current controller event and receive it later with another callback*/ 474 #define SUPPORT_HCI_EVENT_ONLY 1 475 476 #else 477 #define SUPPORT_HCI_EVENT_ONLY 0 478 #endif/* (!USE_HCI_TRANSPORT) && (SUPPORT_BLE) */ 479 480 #ifndef SUPPORT_HCI_EVENT_ONLY_TESTING 481 #define SUPPORT_HCI_EVENT_ONLY_TESTING 0 482 #endif /* SUPPORT_HCI_EVENT_ONLY_TESTING */ 483 484 #define SUPPORT_HW_AUDIO_SYNC_SIGNAL 0 485 486 #if SUPPORT_LE_PAWR_SYNC_ROLE 487 #define SUPPORT_PAWR_CUSTOM_SYNC 1 488 #else 489 #define SUPPORT_PAWR_CUSTOM_SYNC 0 490 #endif /* SUPPORT_LE_PAWR_SYNC_ROLE */ 491 492 #define PAWR_TESTING 0 493 #ifndef SUPPORT_LE_PAWR_ADVERTISER_ROLE 494 #define SUPPORT_LE_PAWR_ADVERTISER_ROLE 0 495 #endif 496 497 498 499 #define SUPPORT_TIM_UPDT 1 500 501 #define SUPPORT_RX_DTP_CONTROL 1 /* Enable\Disable ACL Rx data throughput feature */ 502 503 #ifndef SUPPORT_CUSTOM_ADV_SCAN_TESTING 504 #define SUPPORT_CUSTOM_ADV_SCAN_TESTING 0 505 #endif /* SUPPORT_CUSTOM_ADV_SCAN_TESTING */ 506 507 #ifndef SUPPORT_CHANNEL_SOUNDING 508 #define SUPPORT_CHANNEL_SOUNDING 0 509 #endif /* SUPPORT_CHANNEL_SOUNDING */ 510 511 #ifndef SUPPORT_EXT_FEATURE_SET 512 #define SUPPORT_EXT_FEATURE_SET 0 513 #endif /* SUPPORT_EXT_FEATURE_SET */ 514 515 516 #endif /*COMMON_TYPES_H_*/ 517