1 /******************************************************************************
2  * Copyright (c) 2022 Telink Semiconductor (Shanghai) Co., Ltd. ("TELINK")
3  * All rights reserved.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *   http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *****************************************************************************/
18 #pragma once
19 
20 //////////////////////////////////////////////////////////////////////////////
21 /**
22  *  @brief  Definition for Device info
23  */
24 #include "drivers.h"
25 #include "tl_common.h"
26 
27 #define 	BQB_TEST_EN      										0
28 //BQB Test
29 #if BQB_TEST_EN
30 	#define BQB_TEST_PHY_EN         1
31     #define BQB_TEST_CONN_UPD_EN    1
32     #define BQB_TEST_CHN_MAP_EN     1
33 #else
34     #define BQB_TEST_PHY_EN         0
35     #define BQB_TEST_CONN_UPD_EN    0
36     #define BQB_TEST_CHN_MAP_EN     0
37 #endif
38 
39 
40 ///////////////////  Feature ////////////////////////////
41 #ifndef		LL_MULTI_SLAVE_MAC_ENABLE
42 #define		LL_MULTI_SLAVE_MAC_ENABLE				    			0
43 #endif
44 
45 //////////////////////////////////////////////////////////////////////
46 //note both the following two macro XXX_PRIVATE_XXX and XXX_NORMAL_XXX
47 //CAN NOT be set 1 at the same time.One is private,another is standard.
48 #ifndef		LL_FEATURE_PRIVATE_BIS_SYNC_RECEIVER
49 #define 	LL_FEATURE_PRIVATE_BIS_SYNC_RECEIVER					0
50 #endif
51 
52 #ifndef		LL_FEATURE_NORMAL_BIS_SYNC_RECEIVER
53 #define		LL_FEATURE_NORMAL_BIS_SYNC_RECEIVER						1
54 #endif
55 //////////////////////////////////////////////////////////////////////
56 
57 
58 #if(MCU_CORE_TYPE == MCU_CORE_825x)
59 	#define	FIX_HW_CRC24_EN											1
60 	#define HW_ECDH_EN                                     			0
61 #elif(MCU_CORE_TYPE == MCU_CORE_827x)
62 	#define	FIX_HW_CRC24_EN											0
63 	#define HW_ECDH_EN                                      		1
64 #elif(MCU_CORE_TYPE == MCU_CORE_9518)
65 	#define	FIX_HW_CRC24_EN											0
66 	#define HW_ECDH_EN                                      		1
67 #else
68 	#error "unsupported mcu type !"
69 #endif
70 
71 //conn param update/map update
72 #ifndef	BLS_PROC_MASTER_UPDATE_REQ_IN_IRQ_ENABLE
73 #define BLS_PROC_MASTER_UPDATE_REQ_IN_IRQ_ENABLE					0  //TODO:
74 #endif
75 
76 
77 #ifndef LE_AUTHENTICATED_PAYLOAD_TIMEOUT_SUPPORT_EN
78 #define LE_AUTHENTICATED_PAYLOAD_TIMEOUT_SUPPORT_EN					0
79 #endif
80 
81 
82 //Link layer feature enable flag default setting
83 #ifndef LL_FEATURE_SUPPORT_LE_DATA_LENGTH_EXTENSION
84 #define LL_FEATURE_SUPPORT_LE_DATA_LENGTH_EXTENSION					1
85 #endif
86 
87 #ifndef LL_FEATURE_SUPPORT_LL_PRIVACY
88 #define LL_FEATURE_SUPPORT_LL_PRIVACY								0 //TODO: legAdv and slave role conn support now
89 #endif
90 
91 #ifndef LL_FEATURE_SUPPORT_LE_2M_PHY
92 #define LL_FEATURE_SUPPORT_LE_2M_PHY								1
93 #endif
94 
95 #ifndef LL_FEATURE_SUPPORT_LE_CODED_PHY
96 #define LL_FEATURE_SUPPORT_LE_CODED_PHY								1
97 #endif
98 
99 #ifndef LL_FEATURE_SUPPORT_LE_AOA_AOD
100 #define LL_FEATURE_SUPPORT_LE_AOA_AOD								0
101 #endif
102 
103 #ifndef LL_FEATURE_SUPPORT_LE_EXTENDED_ADVERTISING
104 #define LL_FEATURE_SUPPORT_LE_EXTENDED_ADVERTISING					1
105 #endif
106 
107 #ifndef LL_FEATURE_SUPPORT_LE_EXTENDED_SCANNING
108 #define LL_FEATURE_SUPPORT_LE_EXTENDED_SCANNING						1
109 #endif
110 
111 #ifndef LL_FEATURE_SUPPORT_LE_EXTENDED_INITIATE
112 #define LL_FEATURE_SUPPORT_LE_EXTENDED_INITIATE						1
113 #endif
114 
115 #ifndef LL_FEATURE_SUPPORT_LE_PERIODIC_ADVERTISING
116 #define LL_FEATURE_SUPPORT_LE_PERIODIC_ADVERTISING					1
117 #endif
118 
119 #ifndef LL_FEATURE_SUPPORT_LE_PERIODIC_ADVERTISING_SYNC
120 #define LL_FEATURE_SUPPORT_LE_PERIODIC_ADVERTISING_SYNC				1
121 #endif
122 
123 #ifndef LL_FEATURE_SUPPORT_CHANNEL_SELECTION_ALGORITHM2
124 #define LL_FEATURE_SUPPORT_CHANNEL_SELECTION_ALGORITHM2				1
125 #endif
126 
127 
128 
129 
130 
131 
132 //core_5.2 feature begin
133 #ifndef LL_FEATURE_SUPPORT_CONNECTED_ISOCHRONOUS_STREAM_MASTER
134 #define LL_FEATURE_SUPPORT_CONNECTED_ISOCHRONOUS_STREAM_MASTER		1
135 #endif
136 
137 #ifndef LL_FEATURE_SUPPORT_CONNECTED_ISOCHRONOUS_STREAM_SLAVE
138 #define LL_FEATURE_SUPPORT_CONNECTED_ISOCHRONOUS_STREAM_SLAVE		1
139 #endif
140 
141 #ifndef LL_FEATURE_SUPPORT_ISOCHRONOUS_BROADCASTER
142 #define LL_FEATURE_SUPPORT_ISOCHRONOUS_BROADCASTER					1
143 #endif
144 
145 #ifndef LL_FEATURE_SUPPORT_SYNCHRONIZED_RECEIVER
146 #define LL_FEATURE_SUPPORT_SYNCHRONIZED_RECEIVER					1
147 #endif
148 
149 #ifndef LL_FEATURE_SUPPORT_ISOCHRONOUS_CHANNELS
150 #define LL_FEATURE_SUPPORT_ISOCHRONOUS_CHANNELS						1
151 #endif
152 
153 #ifndef	LL_FEATURE_SUPPORT_ISOCHRONOUS_TEST_MODE
154 #define	LL_FEATURE_SUPPORT_ISOCHRONOUS_TEST_MODE					1
155 #endif
156 //core_5.2 feature end
157 
158 
159 
160 #ifndef BQB_LOWER_TESTER_ENABLE
161 #define BQB_LOWER_TESTER_ENABLE										0
162 #endif
163 
164 
165 
166 #ifndef HCI_NEW_FIFO_FEATURE_ENABLE
167 #define HCI_NEW_FIFO_FEATURE_ENABLE									1
168 #endif
169 
170 
171 #ifndef HCI_SEND_NUM_OF_CMP_AFT_ACK
172 #define HCI_SEND_NUM_OF_CMP_AFT_ACK									0
173 #endif
174 
175 
176 #ifndef L2CAP_DATA_2_HCI_DATA_BUFFER_ENABLE
177 #define L2CAP_DATA_2_HCI_DATA_BUFFER_ENABLE							0  //just for debug
178 #endif
179 
180 #ifndef L2CAP_CREDIT_BASED_FLOW_CONTROL_MODE_EN
181 #define L2CAP_CREDIT_BASED_FLOW_CONTROL_MODE_EN     				0
182 #endif
183 
184 
185 #ifndef UPPER_TESTER_DBG_EN
186 #define UPPER_TESTER_DBG_EN											1
187 #endif
188 
189 #ifndef UPPER_TESTER_HCI_LOG_EN
190 #define UPPER_TESTER_HCI_LOG_EN										1
191 #endif
192 
193 
194 
195 
196