nfc_hal_target.h revision df5080d7feca9827fd0306471c54f52ecf185c22
1656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/******************************************************************************
2656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *
3656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *  Copyright (C) 2012-2013 Broadcom Corporation
4656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *
5656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *  Licensed under the Apache License, Version 2.0 (the "License");
6656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *  you may not use this file except in compliance with the License.
7656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *  You may obtain a copy of the License at:
8656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *
9656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *  http://www.apache.org/licenses/LICENSE-2.0
10656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *
11656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
12656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
13656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *  See the License for the specific language governing permissions and
15656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *  limitations under the License.
16656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *
17656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ******************************************************************************/
18656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
19656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NFC_HAL_TARGET_H
20656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_TARGET_H
21656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
22656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "gki.h"
23656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "data_types.h"
24656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
25656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/****************************************************************************
26656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project** NCI related configuration
27656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project****************************************************************************/
28656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
29656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Initial Max Control Packet Payload Size (until receiving payload size in INIT_CORE_RSP) */
30656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NFC_HAL_NCI_INIT_CTRL_PAYLOAD_SIZE
31656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_NCI_INIT_CTRL_PAYLOAD_SIZE      0xFF
32656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
33656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
34656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Number of bytes to reserve in front of NCI messages (e.g. for transport header) */
35656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NFC_HAL_NCI_MSG_OFFSET_SIZE
36656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_NCI_MSG_OFFSET_SIZE             1
37656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
38656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
39656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* NFC-WAKE */
40656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NFC_HAL_LP_NFC_WAKE_GPIO
41656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_LP_NFC_WAKE_GPIO                UPIO_GENERAL3
42656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
43656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
44656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* NFCC snooze mode idle timeout before deassert NFC_WAKE in ms */
45656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NFC_HAL_LP_IDLE_TIMEOUT
46656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_LP_IDLE_TIMEOUT                 100
47656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
48656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
49656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* NFC snooze mode */
50656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NFC_HAL_LP_SNOOZE_MODE
51656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_LP_SNOOZE_MODE                  NFC_HAL_LP_SNOOZE_MODE_UART
52656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
53656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
54656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Idle Threshold Host in 100ms unit */
55656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NFC_HAL_LP_IDLE_THRESHOLD_HOST
56656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_LP_IDLE_THRESHOLD_HOST          0
57656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
58656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
59656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Idle Threshold HC in 100ms unit */
60656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NFC_HAL_LP_IDLE_THRESHOLD_HC
61656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_LP_IDLE_THRESHOLD_HC            0
62656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
63656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
64656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
65656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Default NFCC power-up baud rate */
66656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NFC_HAL_DEFAULT_BAUD
67656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_DEFAULT_BAUD                    USERIAL_BAUD_115200
68656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
69656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
70656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* time (in ms) between power off and on NFCC */
71656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NFC_HAL_POWER_CYCLE_DELAY
72656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_POWER_CYCLE_DELAY               100
73656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
74656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
75656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* time (in ms) between power off and on NFCC */
76656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NFC_HAL_NFCC_ENABLE_TIMEOUT
77656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_NFCC_ENABLE_TIMEOUT             1000
78221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif
79656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
80656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NFC_HAL_PRM_DEBUG
81656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_PRM_DEBUG                       TRUE
82e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#endif
83e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu
84e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu/* max patch data length (Can be overridden by platform for ACL HCI command size) */
85e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#ifndef NFC_HAL_PRM_HCD_CMD_MAXLEN
86e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define NFC_HAL_PRM_HCD_CMD_MAXLEN              250
87e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#endif
88e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu
89656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Require PreI2C patch by default */
90656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NFC_HAL_PRE_I2C_PATCH_INCLUDED
91656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_PRE_I2C_PATCH_INCLUDED          TRUE
92656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
93e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu
94e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu/* Mininum payload size for SPD NCI commands (used to validate HAL_NfcPrmSetSpdNciCmdPayloadSize) */
95e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu/* Default is 32, as required by the NCI specifications; however this value may be          */
96e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu/* over-riden for platforms that have transport packet limitations                          */
97e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#ifndef NFC_HAL_PRM_MIN_NCI_CMD_PAYLOAD_SIZE
98e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define NFC_HAL_PRM_MIN_NCI_CMD_PAYLOAD_SIZE    (32)
99e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#endif
100e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu
101656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* amount of time to wait for authenticating/committing patch to NVM */
102656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NFC_HAL_PRM_COMMIT_DELAY
103656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_PRM_COMMIT_DELAY                (30000)
104656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
105656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
106656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* amount of time to wait after downloading preI2C patch before downloading LPM/FPM patch */
107656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NFC_HAL_PRM_POST_I2C_FIX_DELAY
108656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_PRM_POST_I2C_FIX_DELAY          (200)
109656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
110656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
111656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* NFCC will respond to more than one technology during listen discovery  */
112221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#ifndef NFC_HAL_DM_MULTI_TECH_RESP
113656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_DM_MULTI_TECH_RESP              TRUE
114221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif
115656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
116656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Data rate for 15693 command/response, it must be same as RW_I93_FLAG_DATA_RATE in nfc_target.h */
117656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_I93_FLAG_DATA_RATE_LOW          0x00
118656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_I93_FLAG_DATA_RATE_HIGH         0x02
119656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
120221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#ifndef NFC_HAL_I93_FLAG_DATA_RATE
12198d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom#define NFC_HAL_I93_FLAG_DATA_RATE              NFC_HAL_I93_FLAG_DATA_RATE_HIGH
12298d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom#endif
12398d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom
12498d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom/* Quick Timer */
12598d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom#ifndef QUICK_TIMER_TICKS_PER_SEC
12698d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom#define QUICK_TIMER_TICKS_PER_SEC               100       /* 10ms timer */
12798d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom#endif
12898d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom
129656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NFC_HAL_SHARED_TRANSPORT_ENABLED
130656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_SHARED_TRANSPORT_ENABLED        FALSE
131221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif
132656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
133656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Enable verbose tracing by default */
134e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#ifndef NFC_HAL_TRACE_VERBOSE
135e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define NFC_HAL_TRACE_VERBOSE                   TRUE
136e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#endif
137656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
138e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#ifndef NFC_HAL_INITIAL_TRACE_LEVEL
139656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_INITIAL_TRACE_LEVEL             5
140221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif
141221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom
142656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Map NFC serial port to USERIAL_PORT_6 by default */
143656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef USERIAL_NFC_PORT
144656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define USERIAL_NFC_PORT                        (USERIAL_PORT_6)
145656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
146656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
147656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Restore NFCC baud rate to default on shutdown if baud rate was updated */
148656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NFC_HAL_RESTORE_BAUD_ON_SHUTDOWN
149656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_RESTORE_BAUD_ON_SHUTDOWN        TRUE
150656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
151656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
152656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Enable protocol tracing by default */
153656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NFC_HAL_TRACE_PROTOCOL
154656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_TRACE_PROTOCOL                  TRUE
155656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
156656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
157656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Legacy protocol-trace-enable macro */
158656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef BT_TRACE_PROTOCOL
159656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define BT_TRACE_PROTOCOL                       (NFC_HAL_TRACE_PROTOCOL)
160656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
161656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
162656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Enable HAL tracing by default */
163656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NFC_HAL_USE_TRACES
164656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NFC_HAL_USE_TRACES                      TRUE
165656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif
166656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
167656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* HAL trace macros */
168656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if (NFC_HAL_USE_TRACES == TRUE)
169656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NCI_TRACE_0(l,t,m)                           LogMsg((TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t)),(m))
170656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NCI_TRACE_1(l,t,m,p1)                        LogMsg(TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t),(m),(UINTPTR)(p1))
171656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NCI_TRACE_2(l,t,m,p1,p2)                     LogMsg(TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t),(m),(UINTPTR)(p1),   \
172656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project                                                        (UINTPTR)(p2))
173656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NCI_TRACE_3(l,t,m,p1,p2,p3)                  LogMsg(TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t),(m),(UINTPTR)(p1),   \
174656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project                                                        (UINTPTR)(p2),(UINTPTR)(p3))
175656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NCI_TRACE_4(l,t,m,p1,p2,p3,p4)               LogMsg(TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t),(m),(UINTPTR)(p1),   \
176656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project                                                        (UINTPTR)(p2),(UINTPTR)(p3),(UINTPTR)(p4))
177656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NCI_TRACE_5(l,t,m,p1,p2,p3,p4,p5)            LogMsg(TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t),(m),(UINTPTR)(p1),   \
178656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project                                                        (UINTPTR)(p2),(UINTPTR)(p3),(UINTPTR)(p4), \
179656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project                                                        (UINTPTR)(p5))
180656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NCI_TRACE_6(l,t,m,p1,p2,p3,p4,p5,p6)         LogMsg(TRACE_CTRL_GENERAL | (l) | TRACE_ORG_STACK | (t),(m),(UINTPTR)(p1),   \
181656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project                                                        (UINTPTR)(p2),(UINTPTR)(p3),(UINTPTR)(p4), \
182656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project                                                        (UINTPTR)(p5),(UINTPTR)(p6))
183221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom
184656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_ERROR0(m)                     {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR) NCI_TRACE_0(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m);}
185656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_ERROR1(m,p1)                  {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR) NCI_TRACE_1(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m,p1);}
186656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_ERROR2(m,p1,p2)               {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR) NCI_TRACE_2(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m,p1,p2);}
187656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_ERROR3(m,p1,p2,p3)            {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR) NCI_TRACE_3(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m,p1,p2,p3);}
18898d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom#define HAL_TRACE_ERROR4(m,p1,p2,p3,p4)         {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR) NCI_TRACE_4(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m,p1,p2,p3,p4);}
18998d58bb80c64b02a33662f0ea80351d4a1535267Brian Carlstrom#define HAL_TRACE_ERROR5(m,p1,p2,p3,p4,p5)      {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR) NCI_TRACE_5(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m,p1,p2,p3,p4,p5);}
190656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_ERROR6(m,p1,p2,p3,p4,p5,p6)   {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_ERROR) NCI_TRACE_6(TRACE_LAYER_HAL, TRACE_TYPE_ERROR, m,p1,p2,p3,p4,p5,p6);}
191656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
192656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_WARNING0(m)                   {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING) NCI_TRACE_0(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m);}
193656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_WARNING1(m,p1)                {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING) NCI_TRACE_1(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m,p1);}
194656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_WARNING2(m,p1,p2)             {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING) NCI_TRACE_2(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m,p1,p2);}
195656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_WARNING3(m,p1,p2,p3)          {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING) NCI_TRACE_3(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m,p1,p2,p3);}
196656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_WARNING4(m,p1,p2,p3,p4)       {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING) NCI_TRACE_4(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m,p1,p2,p3,p4);}
197656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_WARNING5(m,p1,p2,p3,p4,p5)    {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING) NCI_TRACE_5(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m,p1,p2,p3,p4,p5);}
198656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_WARNING6(m,p1,p2,p3,p4,p5,p6) {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_WARNING) NCI_TRACE_6(TRACE_LAYER_HAL, TRACE_TYPE_WARNING, m,p1,p2,p3,p4,p5,p6);}
199221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom
200656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_API0(m)                       {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API) NCI_TRACE_0(TRACE_LAYER_HAL, TRACE_TYPE_API, m);}
201221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define HAL_TRACE_API1(m,p1)                    {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API) NCI_TRACE_1(TRACE_LAYER_HAL, TRACE_TYPE_API, m,p1);}
202656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_API2(m,p1,p2)                 {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API) NCI_TRACE_2(TRACE_LAYER_HAL, TRACE_TYPE_API, m,p1,p2);}
203221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define HAL_TRACE_API3(m,p1,p2,p3)              {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API) NCI_TRACE_3(TRACE_LAYER_HAL, TRACE_TYPE_API, m,p1,p2,p3);}
204221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define HAL_TRACE_API4(m,p1,p2,p3,p4)           {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API) NCI_TRACE_4(TRACE_LAYER_HAL, TRACE_TYPE_API, m,p1,p2,p3,p4);}
205221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define HAL_TRACE_API5(m,p1,p2,p3,p4,p5)        {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API) NCI_TRACE_5(TRACE_LAYER_HAL, TRACE_TYPE_API, m,p1,p2,p3,p4,p5);}
206656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_API6(m,p1,p2,p3,p4,p5,p6)     {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_API) NCI_TRACE_6(TRACE_LAYER_HAL, TRACE_TYPE_API, m,p1,p2,p3,p4,p5,p6);}
207656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
208221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define HAL_TRACE_EVENT0(m)                     {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT) NCI_TRACE_0(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m);}
209656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_EVENT1(m,p1)                  {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT) NCI_TRACE_1(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m, p1);}
210656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_EVENT2(m,p1,p2)               {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT) NCI_TRACE_2(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m,p1,p2);}
211656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_EVENT3(m,p1,p2,p3)            {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT) NCI_TRACE_3(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m,p1,p2,p3);}
212656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_EVENT4(m,p1,p2,p3,p4)         {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT) NCI_TRACE_4(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m,p1,p2,p3,p4);}
213e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_EVENT5(m,p1,p2,p3,p4,p5)      {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT) NCI_TRACE_5(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m,p1,p2,p3,p4,p5);}
214e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_EVENT6(m,p1,p2,p3,p4,p5,p6)   {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_EVENT) NCI_TRACE_6(TRACE_LAYER_HAL, TRACE_TYPE_EVENT, m,p1,p2,p3,p4,p5,p6);}
215e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu
216e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_DEBUG0(m)                     {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) NCI_TRACE_0(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m);}
217e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_DEBUG1(m,p1)                  {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) NCI_TRACE_1(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m,p1);}
218e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_DEBUG2(m,p1,p2)               {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) NCI_TRACE_2(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m,p1,p2);}
219e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_DEBUG3(m,p1,p2,p3)            {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) NCI_TRACE_3(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m,p1,p2,p3);}
220e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_DEBUG4(m,p1,p2,p3,p4)         {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) NCI_TRACE_4(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m,p1,p2,p3,p4);}
221e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_DEBUG5(m,p1,p2,p3,p4,p5)      {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) NCI_TRACE_5(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m,p1,p2,p3,p4,p5);}
222e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_DEBUG6(m,p1,p2,p3,p4,p5,p6)   {if (nfc_hal_cb.trace_level >= BT_TRACE_LEVEL_DEBUG) NCI_TRACE_6(TRACE_LAYER_HAL, TRACE_TYPE_DEBUG, m,p1,p2,p3,p4,p5,p6);}
223e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu
224e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#else /* Disable HAL tracing */
225e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu
226e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_0(l,t,m)
227e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_1(l,t,m,p1)
228e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_2(l,t,m,p1,p2)
229e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_3(l,t,m,p1,p2,p3)
230e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_4(l,t,m,p1,p2,p3,p4)
231e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_5(l,t,m,p1,p2,p3,p4,p5)
232e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_6(l,t,m,p1,p2,p3,p4,p5,p6)
233e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu
234e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_ERROR0(m)
235e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_ERROR1(m,p1)
236e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_ERROR2(m,p1,p2)
237e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_ERROR3(m,p1,p2,p3)
238656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_ERROR4(m,p1,p2,p3,p4)
239656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_ERROR5(m,p1,p2,p3,p4,p5)
240e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#define HAL_TRACE_ERROR6(m,p1,p2,p3,p4,p5,p6)
241656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
242656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_WARNING0(m)
243656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_WARNING1(m,p1)
244656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_WARNING2(m,p1,p2)
245656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_WARNING3(m,p1,p2,p3)
246656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_WARNING4(m,p1,p2,p3,p4)
247656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_WARNING5(m,p1,p2,p3,p4,p5)
248656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_WARNING6(m,p1,p2,p3,p4,p5,p6)
249656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
250656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_API0(m)
251656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_API1(m,p1)
252656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_API2(m,p1,p2)
253656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_API3(m,p1,p2,p3)
254656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_API4(m,p1,p2,p3,p4)
255656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_API5(m,p1,p2,p3,p4,p5)
256656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_API6(m,p1,p2,p3,p4,p5,p6)
257656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
258656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_EVENT0(m)
259656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_EVENT1(m,p1)
260656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_EVENT2(m,p1,p2)
261656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_EVENT3(m,p1,p2,p3)
262656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_EVENT4(m,p1,p2,p3,p4)
263656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_EVENT5(m,p1,p2,p3,p4,p5)
264656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_EVENT6(m,p1,p2,p3,p4,p5,p6)
265656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
266656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_DEBUG0(m)
267656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_DEBUG1(m,p1)
268656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_DEBUG2(m,p1,p2)
269656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_DEBUG3(m,p1,p2,p3)
270656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_DEBUG4(m,p1,p2,p3,p4)
271656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_DEBUG5(m,p1,p2,p3,p4,p5)
272656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HAL_TRACE_DEBUG6(m,p1,p2,p3,p4,p5,p6)
273656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif  /* Disable HAL tracing */
274656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
275656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif  /* GKI_TARGET_H */
276656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project