1 /******************************************************************************
2  *
3  *  Copyright (C) 2012-2014 Broadcom Corporation
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 
19 #ifndef NFC_HAL_TARGET_H
20 #define NFC_HAL_TARGET_H
21 
22 #include "data_types.h"
23 #include "gki.h"
24 
25 /****************************************************************************
26 ** NCI related configuration
27 ****************************************************************************/
28 
29 /* Initial Max Control Packet Payload Size (until receiving payload size in
30  * INIT_CORE_RSP) */
31 #ifndef NFC_HAL_NCI_INIT_CTRL_PAYLOAD_SIZE
32 #define NFC_HAL_NCI_INIT_CTRL_PAYLOAD_SIZE 0xFF
33 #endif
34 
35 /* Number of bytes to reserve in front of NCI messages (e.g. for transport
36  * header) */
37 #ifndef NFC_HAL_NCI_MSG_OFFSET_SIZE
38 #define NFC_HAL_NCI_MSG_OFFSET_SIZE 1
39 #endif
40 
41 /* NFC-WAKE */
42 #ifndef NFC_HAL_LP_NFC_WAKE_GPIO
43 #define NFC_HAL_LP_NFC_WAKE_GPIO UPIO_GENERAL3
44 #endif
45 
46 /* NFCC snooze mode idle timeout before deassert NFC_WAKE in ms */
47 #ifndef NFC_HAL_LP_IDLE_TIMEOUT
48 #define NFC_HAL_LP_IDLE_TIMEOUT 100
49 #endif
50 
51 /* NFC snooze mode */
52 #ifndef NFC_HAL_LP_SNOOZE_MODE
53 #define NFC_HAL_LP_SNOOZE_MODE NFC_HAL_LP_SNOOZE_MODE_UART
54 #endif
55 
56 /* Idle Threshold Host in 100ms unit */
57 #ifndef NFC_HAL_LP_IDLE_THRESHOLD_HOST
58 #define NFC_HAL_LP_IDLE_THRESHOLD_HOST 0
59 #endif
60 
61 /* Idle Threshold HC in 100ms unit */
62 #ifndef NFC_HAL_LP_IDLE_THRESHOLD_HC
63 #define NFC_HAL_LP_IDLE_THRESHOLD_HC 0
64 #endif
65 
66 /* Default NFCC power-up baud rate */
67 #ifndef NFC_HAL_DEFAULT_BAUD
68 #define NFC_HAL_DEFAULT_BAUD USERIAL_BAUD_115200
69 #endif
70 
71 /* time (in ms) between power off and on NFCC */
72 #ifndef NFC_HAL_POWER_CYCLE_DELAY
73 #define NFC_HAL_POWER_CYCLE_DELAY 100
74 #endif
75 
76 /* time (in ms) between power off and on NFCC */
77 #ifndef NFC_HAL_NFCC_ENABLE_TIMEOUT
78 #define NFC_HAL_NFCC_ENABLE_TIMEOUT 1000
79 #endif
80 
81 #ifndef NFC_HAL_PRM_DEBUG
82 #define NFC_HAL_PRM_DEBUG TRUE
83 #endif
84 
85 /* max patch data length (Can be overridden by platform for ACL HCI command
86  * size) */
87 #ifndef NFC_HAL_PRM_HCD_CMD_MAXLEN
88 #define NFC_HAL_PRM_HCD_CMD_MAXLEN 250
89 #endif
90 
91 /* Require PreI2C patch by default */
92 #ifndef NFC_HAL_PRE_I2C_PATCH_INCLUDED
93 #define NFC_HAL_PRE_I2C_PATCH_INCLUDED TRUE
94 #endif
95 
96 /* Mininum payload size for SPD NCI commands (used to validate
97  * HAL_NfcPrmSetSpdNciCmdPayloadSize) */
98 /* Default is 32, as required by the NCI specifications; however this value may
99  * be          */
100 /* over-riden for platforms that have transport packet limitations */
101 #ifndef NFC_HAL_PRM_MIN_NCI_CMD_PAYLOAD_SIZE
102 #define NFC_HAL_PRM_MIN_NCI_CMD_PAYLOAD_SIZE (32)
103 #endif
104 
105 /* amount of time to wait for authenticating/committing patch to NVM */
106 #ifndef NFC_HAL_PRM_COMMIT_DELAY
107 #define NFC_HAL_PRM_COMMIT_DELAY (30000)
108 #endif
109 
110 /* amount of time to wait after downloading preI2C patch before downloading
111  * LPM/FPM patch */
112 #ifndef NFC_HAL_PRM_POST_I2C_FIX_DELAY
113 #define NFC_HAL_PRM_POST_I2C_FIX_DELAY (200)
114 #endif
115 
116 /* NFCC will respond to more than one technology during listen discovery  */
117 #ifndef NFC_HAL_DM_MULTI_TECH_RESP
118 #define NFC_HAL_DM_MULTI_TECH_RESP TRUE
119 #endif
120 
121 /* Data rate for 15693 command/response, it must be same as
122  * RW_I93_FLAG_DATA_RATE in nfc_target.h */
123 #define NFC_HAL_I93_FLAG_DATA_RATE_LOW 0x00
124 #define NFC_HAL_I93_FLAG_DATA_RATE_HIGH 0x02
125 
126 #ifndef NFC_HAL_I93_FLAG_DATA_RATE
127 #define NFC_HAL_I93_FLAG_DATA_RATE NFC_HAL_I93_FLAG_DATA_RATE_HIGH
128 #endif
129 
130 /* NFC HAL HCI */
131 #ifndef NFC_HAL_HCI_INCLUDED
132 #define NFC_HAL_HCI_INCLUDED TRUE
133 #endif
134 
135 /* Quick Timer */
136 #ifndef QUICK_TIMER_TICKS_PER_SEC
137 #define QUICK_TIMER_TICKS_PER_SEC 100 /* 10ms timer */
138 #endif
139 
140 #ifndef NFC_HAL_SHARED_TRANSPORT_ENABLED
141 #define NFC_HAL_SHARED_TRANSPORT_ENABLED FALSE
142 #endif
143 
144 /* Enable verbose tracing by default */
145 #ifndef NFC_HAL_TRACE_VERBOSE
146 #define NFC_HAL_TRACE_VERBOSE TRUE
147 #endif
148 
149 #ifndef NFC_HAL_INITIAL_TRACE_LEVEL
150 #define NFC_HAL_INITIAL_TRACE_LEVEL 5
151 #endif
152 
153 /* Map NFC serial port to USERIAL_PORT_6 by default */
154 #ifndef USERIAL_NFC_PORT
155 #define USERIAL_NFC_PORT (USERIAL_PORT_6)
156 #endif
157 
158 /* Restore NFCC baud rate to default on shutdown if baud rate was updated */
159 #ifndef NFC_HAL_RESTORE_BAUD_ON_SHUTDOWN
160 #define NFC_HAL_RESTORE_BAUD_ON_SHUTDOWN TRUE
161 #endif
162 
163 /* Enable protocol tracing by default */
164 #ifndef NFC_HAL_TRACE_PROTOCOL
165 #define NFC_HAL_TRACE_PROTOCOL TRUE
166 #endif
167 
168 /* Legacy protocol-trace-enable macro */
169 #ifndef BT_TRACE_PROTOCOL
170 #define BT_TRACE_PROTOCOL (NFC_HAL_TRACE_PROTOCOL)
171 #endif
172 
173 /* Enable HAL tracing by default */
174 #ifndef NFC_HAL_USE_TRACES
175 #define NFC_HAL_USE_TRACES TRUE
176 #endif
177 
178 /* HAL trace macros */
179 #if (NFC_HAL_USE_TRACES == TRUE)
180 #define NCI_TRACE_0(l, t, m) \
181   LogMsg((TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t)), (m))
182 #define NCI_TRACE_1(l, t, m, p1) \
183   LogMsg(TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t), (m), (uintptr_t)(p1))
184 #define NCI_TRACE_2(l, t, m, p1, p2)                            \
185   LogMsg(TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t), (m), \
186          (uintptr_t)(p1), (uintptr_t)(p2))
187 #define NCI_TRACE_3(l, t, m, p1, p2, p3)                        \
188   LogMsg(TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t), (m), \
189          (uintptr_t)(p1), (uintptr_t)(p2), (uintptr_t)(p3))
190 #define NCI_TRACE_4(l, t, m, p1, p2, p3, p4)                    \
191   LogMsg(TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t), (m), \
192          (uintptr_t)(p1), (uintptr_t)(p2), (uintptr_t)(p3), (uintptr_t)(p4))
193 #define NCI_TRACE_5(l, t, m, p1, p2, p3, p4, p5)                             \
194   LogMsg(TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t), (m),              \
195          (uintptr_t)(p1), (uintptr_t)(p2), (uintptr_t)(p3), (uintptr_t)(p4), \
196          (uintptr_t)(p5))
197 #define NCI_TRACE_6(l, t, m, p1, p2, p3, p4, p5, p6)                         \
198   LogMsg(TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t), (m),              \
199          (uintptr_t)(p1), (uintptr_t)(p2), (uintptr_t)(p3), (uintptr_t)(p4), \
200          (uintptr_t)(p5), (uintptr_t)(p6))
201 
202 #define HAL_TRACE_ERROR0(m)                              \
203   {                                                      \
204     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR)  \
205       NCI_TRACE_0(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m); \
206   }
207 #define HAL_TRACE_ERROR1(m, p1)                              \
208   {                                                          \
209     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR)      \
210       NCI_TRACE_1(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m, p1); \
211   }
212 #define HAL_TRACE_ERROR2(m, p1, p2)                              \
213   {                                                              \
214     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR)          \
215       NCI_TRACE_2(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m, p1, p2); \
216   }
217 #define HAL_TRACE_ERROR3(m, p1, p2, p3)                              \
218   {                                                                  \
219     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR)              \
220       NCI_TRACE_3(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m, p1, p2, p3); \
221   }
222 #define HAL_TRACE_ERROR4(m, p1, p2, p3, p4)                              \
223   {                                                                      \
224     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR)                  \
225       NCI_TRACE_4(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m, p1, p2, p3, p4); \
226   }
227 #define HAL_TRACE_ERROR5(m, p1, p2, p3, p4, p5)                              \
228   {                                                                          \
229     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR)                      \
230       NCI_TRACE_5(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m, p1, p2, p3, p4, p5); \
231   }
232 #define HAL_TRACE_ERROR6(m, p1, p2, p3, p4, p5, p6)                         \
233   {                                                                         \
234     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR)                     \
235       NCI_TRACE_6(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m, p1, p2, p3, p4, p5, \
236                   p6);                                                      \
237   }
238 
239 #define HAL_TRACE_WARNING0(m)                              \
240   {                                                        \
241     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING)  \
242       NCI_TRACE_0(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m); \
243   }
244 #define HAL_TRACE_WARNING1(m, p1)                              \
245   {                                                            \
246     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING)      \
247       NCI_TRACE_1(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m, p1); \
248   }
249 #define HAL_TRACE_WARNING2(m, p1, p2)                              \
250   {                                                                \
251     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING)          \
252       NCI_TRACE_2(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m, p1, p2); \
253   }
254 #define HAL_TRACE_WARNING3(m, p1, p2, p3)                              \
255   {                                                                    \
256     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING)              \
257       NCI_TRACE_3(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m, p1, p2, p3); \
258   }
259 #define HAL_TRACE_WARNING4(m, p1, p2, p3, p4)                              \
260   {                                                                        \
261     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING)                  \
262       NCI_TRACE_4(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m, p1, p2, p3, p4); \
263   }
264 #define HAL_TRACE_WARNING5(m, p1, p2, p3, p4, p5)                              \
265   {                                                                            \
266     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING)                      \
267       NCI_TRACE_5(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m, p1, p2, p3, p4, p5); \
268   }
269 #define HAL_TRACE_WARNING6(m, p1, p2, p3, p4, p5, p6)                         \
270   {                                                                           \
271     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING)                     \
272       NCI_TRACE_6(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m, p1, p2, p3, p4, p5, \
273                   p6);                                                        \
274   }
275 
276 #define HAL_TRACE_API0(m)                              \
277   {                                                    \
278     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API)  \
279       NCI_TRACE_0(TRACE_LAYER_HAL, TRACE_TYPE_API, m); \
280   }
281 #define HAL_TRACE_API1(m, p1)                              \
282   {                                                        \
283     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API)      \
284       NCI_TRACE_1(TRACE_LAYER_HAL, TRACE_TYPE_API, m, p1); \
285   }
286 #define HAL_TRACE_API2(m, p1, p2)                              \
287   {                                                            \
288     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API)          \
289       NCI_TRACE_2(TRACE_LAYER_HAL, TRACE_TYPE_API, m, p1, p2); \
290   }
291 #define HAL_TRACE_API3(m, p1, p2, p3)                              \
292   {                                                                \
293     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API)              \
294       NCI_TRACE_3(TRACE_LAYER_HAL, TRACE_TYPE_API, m, p1, p2, p3); \
295   }
296 #define HAL_TRACE_API4(m, p1, p2, p3, p4)                              \
297   {                                                                    \
298     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API)                  \
299       NCI_TRACE_4(TRACE_LAYER_HAL, TRACE_TYPE_API, m, p1, p2, p3, p4); \
300   }
301 #define HAL_TRACE_API5(m, p1, p2, p3, p4, p5)                              \
302   {                                                                        \
303     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API)                      \
304       NCI_TRACE_5(TRACE_LAYER_HAL, TRACE_TYPE_API, m, p1, p2, p3, p4, p5); \
305   }
306 #define HAL_TRACE_API6(m, p1, p2, p3, p4, p5, p6)                              \
307   {                                                                            \
308     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API)                          \
309       NCI_TRACE_6(TRACE_LAYER_HAL, TRACE_TYPE_API, m, p1, p2, p3, p4, p5, p6); \
310   }
311 
312 #define HAL_TRACE_EVENT0(m)                              \
313   {                                                      \
314     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT)  \
315       NCI_TRACE_0(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m); \
316   }
317 #define HAL_TRACE_EVENT1(m, p1)                              \
318   {                                                          \
319     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT)      \
320       NCI_TRACE_1(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m, p1); \
321   }
322 #define HAL_TRACE_EVENT2(m, p1, p2)                              \
323   {                                                              \
324     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT)          \
325       NCI_TRACE_2(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m, p1, p2); \
326   }
327 #define HAL_TRACE_EVENT3(m, p1, p2, p3)                              \
328   {                                                                  \
329     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT)              \
330       NCI_TRACE_3(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m, p1, p2, p3); \
331   }
332 #define HAL_TRACE_EVENT4(m, p1, p2, p3, p4)                              \
333   {                                                                      \
334     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT)                  \
335       NCI_TRACE_4(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m, p1, p2, p3, p4); \
336   }
337 #define HAL_TRACE_EVENT5(m, p1, p2, p3, p4, p5)                              \
338   {                                                                          \
339     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT)                      \
340       NCI_TRACE_5(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m, p1, p2, p3, p4, p5); \
341   }
342 #define HAL_TRACE_EVENT6(m, p1, p2, p3, p4, p5, p6)                         \
343   {                                                                         \
344     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT)                     \
345       NCI_TRACE_6(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m, p1, p2, p3, p4, p5, \
346                   p6);                                                      \
347   }
348 
349 #define HAL_TRACE_DEBUG0(m)                              \
350   {                                                      \
351     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG)  \
352       NCI_TRACE_0(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m); \
353   }
354 #define HAL_TRACE_DEBUG1(m, p1)                              \
355   {                                                          \
356     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG)      \
357       NCI_TRACE_1(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m, p1); \
358   }
359 #define HAL_TRACE_DEBUG2(m, p1, p2)                              \
360   {                                                              \
361     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG)          \
362       NCI_TRACE_2(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m, p1, p2); \
363   }
364 #define HAL_TRACE_DEBUG3(m, p1, p2, p3)                              \
365   {                                                                  \
366     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG)              \
367       NCI_TRACE_3(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m, p1, p2, p3); \
368   }
369 #define HAL_TRACE_DEBUG4(m, p1, p2, p3, p4)                              \
370   {                                                                      \
371     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG)                  \
372       NCI_TRACE_4(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m, p1, p2, p3, p4); \
373   }
374 #define HAL_TRACE_DEBUG5(m, p1, p2, p3, p4, p5)                              \
375   {                                                                          \
376     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG)                      \
377       NCI_TRACE_5(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m, p1, p2, p3, p4, p5); \
378   }
379 #define HAL_TRACE_DEBUG6(m, p1, p2, p3, p4, p5, p6)                         \
380   {                                                                         \
381     if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG)                     \
382       NCI_TRACE_6(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m, p1, p2, p3, p4, p5, \
383                   p6);                                                      \
384   }
385 
386 #else /* Disable HAL tracing */
387 
388 #define HAL_TRACE_0(l, t, m)
389 #define HAL_TRACE_1(l, t, m, p1)
390 #define HAL_TRACE_2(l, t, m, p1, p2)
391 #define HAL_TRACE_3(l, t, m, p1, p2, p3)
392 #define HAL_TRACE_4(l, t, m, p1, p2, p3, p4)
393 #define HAL_TRACE_5(l, t, m, p1, p2, p3, p4, p5)
394 #define HAL_TRACE_6(l, t, m, p1, p2, p3, p4, p5, p6)
395 
396 #define HAL_TRACE_ERROR0(m)
397 #define HAL_TRACE_ERROR1(m, p1)
398 #define HAL_TRACE_ERROR2(m, p1, p2)
399 #define HAL_TRACE_ERROR3(m, p1, p2, p3)
400 #define HAL_TRACE_ERROR4(m, p1, p2, p3, p4)
401 #define HAL_TRACE_ERROR5(m, p1, p2, p3, p4, p5)
402 #define HAL_TRACE_ERROR6(m, p1, p2, p3, p4, p5, p6)
403 
404 #define HAL_TRACE_WARNING0(m)
405 #define HAL_TRACE_WARNING1(m, p1)
406 #define HAL_TRACE_WARNING2(m, p1, p2)
407 #define HAL_TRACE_WARNING3(m, p1, p2, p3)
408 #define HAL_TRACE_WARNING4(m, p1, p2, p3, p4)
409 #define HAL_TRACE_WARNING5(m, p1, p2, p3, p4, p5)
410 #define HAL_TRACE_WARNING6(m, p1, p2, p3, p4, p5, p6)
411 
412 #define HAL_TRACE_API0(m)
413 #define HAL_TRACE_API1(m, p1)
414 #define HAL_TRACE_API2(m, p1, p2)
415 #define HAL_TRACE_API3(m, p1, p2, p3)
416 #define HAL_TRACE_API4(m, p1, p2, p3, p4)
417 #define HAL_TRACE_API5(m, p1, p2, p3, p4, p5)
418 #define HAL_TRACE_API6(m, p1, p2, p3, p4, p5, p6)
419 
420 #define HAL_TRACE_EVENT0(m)
421 #define HAL_TRACE_EVENT1(m, p1)
422 #define HAL_TRACE_EVENT2(m, p1, p2)
423 #define HAL_TRACE_EVENT3(m, p1, p2, p3)
424 #define HAL_TRACE_EVENT4(m, p1, p2, p3, p4)
425 #define HAL_TRACE_EVENT5(m, p1, p2, p3, p4, p5)
426 #define HAL_TRACE_EVENT6(m, p1, p2, p3, p4, p5, p6)
427 
428 #define HAL_TRACE_DEBUG0(m)
429 #define HAL_TRACE_DEBUG1(m, p1)
430 #define HAL_TRACE_DEBUG2(m, p1, p2)
431 #define HAL_TRACE_DEBUG3(m, p1, p2, p3)
432 #define HAL_TRACE_DEBUG4(m, p1, p2, p3, p4)
433 #define HAL_TRACE_DEBUG5(m, p1, p2, p3, p4, p5)
434 #define HAL_TRACE_DEBUG6(m, p1, p2, p3, p4, p5, p6)
435 #endif /* Disable HAL tracing */
436 
437 #endif /* GKI_TARGET_H */
438