blob: 955c26b84444da0082ab8314c32ddd3f1bc9146d [file] [log] [blame]
Nick Pelly5d9927b2010-09-23 12:47:58 -07001/*
2 * Copyright (C) 2010 NXP Semiconductors
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17
18/**
19* \file phNfcConfig.h
20* \brief HAL Configurations
21*
22*
23* \note This is the configuration header file of the HAL 4.0.All configurable parameters of the HAL 4.0
24* are provided in this file
25*
26* Project: NFC-FRI-1.1 / HAL4.0
27*
Daniel Tomasb70c3012010-11-04 03:59:10 +010028* $Date: Thu Sep 9 14:56:35 2010 $
Nick Pelly5d9927b2010-09-23 12:47:58 -070029* $Author: ing04880 $
Daniel Tomasb70c3012010-11-04 03:59:10 +010030* $Revision: 1.39 $
31* $Aliases: $
Nick Pelly5d9927b2010-09-23 12:47:58 -070032*
33*/
34
35
36/*@{*/
37#ifndef PHNFC_CONFIG_H
38#define PHNFC_CONFIG_H
39/*@}*/
40
41
42/**
43* \name Hal
44*
45* File: \ref phNfcConfig.h
46*
47*/
48
49/*@{*/
Daniel Tomasb70c3012010-11-04 03:59:10 +010050#define PH_NFC_CONFIG_FILEREVISION "$Revision: 1.39 $" /**< \ingroup grp_file_attributes */
51#define PH_NFC_CONFIG_FILEALIASES "$Aliases: $" /**< \ingroup grp_file_attributes */
Nick Pelly5d9927b2010-09-23 12:47:58 -070052/*@}*/
53
54
55/* -----------------Include files ---------------------------------------*/
56
57#ifdef NFC_CUSTOM_CONFIG_INCLUDE
58#include<nfc_custom_config.h>
59#endif
60
61/* ---------------- Macros ----------------------------------------------*/
62
63
64
65/*
66 *****************************************************************
67 ********************** DEFAULT MACROS **************************
68 *****************************************************************
69 */
70
71
72/**< External Clock Request Configuration for the NFC Device,
73 0x00U No Clock Request,
74 0x01U Clock Request through CLKREQ pin (GPIO pin 2),
75 0x02U Clock Request through NXP_EVT_CLK_REQUEST Event,
76 */
77#ifndef NXP_DEFAULT_CLK_REQUEST
78#define NXP_DEFAULT_CLK_REQUEST 0x00U
79#endif
80
81/**< External Input Clock Setting for the NFC Device,
82 0x00U No Input Clock Required (Use the Xtal),
83 0x01U 13 MHZ,
84 0x02U 19.2 MHZ,
85 0x03U 26 MHZ,
86 0x04U 38.4 MHZ,
87 0x05U Custom (Set the Custome Clock Registry),
88 */
89
90#ifndef NXP_DEFAULT_INPUT_CLK
91#define NXP_DEFAULT_INPUT_CLK 0x00U
92#endif
93
94/**< UICC Power Request configuration for the NFC Device,
95 0x00U No Power Request,
96 0x01U Power Request through CLKREQ pin (GPIO pin 2),
97 0x02U Power Request through PWR_REQUEST (GPIO Pin 3),
98 */
99
100#ifndef NXP_UICC_PWR_REQUEST
101#define NXP_UICC_PWR_REQUEST 0x00U
102#endif
103
104/**< TX LDO Configuration
105 0x00 00b 3.0 V,
106 0x01 01b 3.0 V,
107 0x02 10b 2.7 V,
108 0x03 11b 3.3 V,
109 */
110
111#ifndef NXP_DEFAULT_TX_LDO
112#define NXP_DEFAULT_TX_LDO 0x00U
113#endif
114
115/**< UICC Bit Rate Configuration
116 0x02 212Kbits/Sec
117 0x04 424Kbits/Sec
118 0x08 828Kbits/Sec
119 */
120
121#ifndef NXP_UICC_BIT_RATE
122#define NXP_UICC_BIT_RATE 0x08U
123#endif
124
125
126/**< Indicates PN544 Power Modes Configuration for the NFC Device,
127 0x00U -> PN544 stays in active bat mode
128 (except when generating RF field)
129 0x01U -> PN544 goes in standby when possible otherwise
130 stays in active bat mode
131 0x02U -> PN544 goes in idle mode as soon as it can
132 (otherwise it is in active bat except when generating RF field)
133 0x03U -> PN544 goes in standby when possible otherwise goes in idle mode
134 as soon as it can (otherwise it is in active bat except when
135 generating RF field)
136 */
137
138#ifndef NXP_SYSTEM_PWR_STATUS
goodsc.lee0fb8aa82010-10-10 14:43:53 -0700139#define NXP_SYSTEM_PWR_STATUS 0x01U
Nick Pelly5d9927b2010-09-23 12:47:58 -0700140#endif
141
142/**< Default Session ID for Initialisation */
143#ifndef DEFAULT_SESSION
Nick Pelly4be773c2011-05-23 15:49:47 -0700144#define DEFAULT_SESSION "android8"
Nick Pelly5d9927b2010-09-23 12:47:58 -0700145#endif
146
147
148/* The Other Integration Configuration Values */
149
150/**< Max number of remote devices supported */
151
152#ifndef MAX_REMOTE_DEVICES
153#define MAX_REMOTE_DEVICES 0x0A
154#endif
155
156/**< System Event Notification
157 0x01 Overcurrent
158 0x02 PMUVCC Switch
159 0x04 External RF Field
160 0x08 Memory Violation
161 0x10 Temperature Overheat
162 */
163
164#ifndef NXP_SYSTEM_EVT_INFO
165#define NXP_SYSTEM_EVT_INFO 0x3DU
166#endif
167
168
169#ifndef NFC_DEV_HWCONF_DEFAULT
170#define NFC_DEV_HWCONF_DEFAULT 0xBCU
171#endif
172
173
174#ifndef NXP_ISO_XCHG_TIMEOUT
Martijn Coenen31cfc512012-11-27 17:30:16 -0800175#define NXP_ISO_XCHG_TIMEOUT 0x1BU
Nick Pelly5d9927b2010-09-23 12:47:58 -0700176#endif
177
178#ifndef NXP_MIFARE_XCHG_TIMEOUT
Martijn Coenen01a91ea2011-06-09 15:55:19 +0200179#define NXP_MIFARE_XCHG_TIMEOUT 0x0BU
Nick Pelly5d9927b2010-09-23 12:47:58 -0700180#endif
181
182#ifndef NXP_FELICA_XCHG_TIMEOUT
183#define NXP_FELICA_XCHG_TIMEOUT 0xFFU
184#endif
185
186
187#ifndef NXP_NFCIP_PSL_BRS_DEFAULT
188#define NXP_NFCIP_PSL_BRS_DEFAULT 0x00U
189#endif
190
191
192
193/**< ID For Invalid Timer */
194#ifndef NXP_INVALID_TIMER_ID
195#define NXP_INVALID_TIMER_ID 0xFFFFFFFFU
196#endif
197
198/**< Presence check interval in milliseconds */
199#ifndef PRESENCE_CHECK_INTERVAL
200#define PRESENCE_CHECK_INTERVAL 500U
201#endif
202
203/** Resolution value for the timer, here the
204 timer resolution is 500 milliseconds */
205#ifndef TIMER_RESOLUTION
206#define TIMER_RESOLUTION 500U
207#endif
208
209/* Kindly note that the below Timeout values should be
210 * in Multiples of the value provided to TIMER_RESOLUTION
211 */
212
213/**< Defines guard time out value for LLC timer,
214 1000 is in milliseconds */
215#ifndef LINK_GUARD_TIMEOUT
216#define LINK_GUARD_TIMEOUT 1000U
217#endif
218
219
220/**< Defines connection time out value for LLC timer,
221 1000 is in milliseconds */
222#ifndef LINK_CONNECTION_TIMEOUT
223#define LINK_CONNECTION_TIMEOUT 1000U
224#endif
225
Daniel Tomasb313c3d2011-05-26 15:52:17 +0200226/**< Defines ACK time out value for LLC timer,
227 150 is in milliseconds */
228#ifndef LINK_ACK_TIMEOUT
229#define LINK_ACK_TIMEOUT 1U
230#endif
231
Nick Pelly5d9927b2010-09-23 12:47:58 -0700232
233/**< Defines Firmware Download Completion Timeout value ,
234 120000 is in milliseconds */
235
236
237#ifndef NXP_DNLD_COMPLETE_TIMEOUT
Nick Pellyb13b27a2011-10-25 10:05:20 -0700238#define NXP_DNLD_COMPLETE_TIMEOUT 60000U
Nick Pelly5d9927b2010-09-23 12:47:58 -0700239#endif
240
241
242/**< Define to configure the Active Mode Polling Guard Time-out
243 */
244
245#ifndef DEV_MGMT_ACT_GRD_TO_DEFAULT
246#define DEV_MGMT_ACT_GRD_TO_DEFAULT 0x20U
247#endif
248
Nick Pelly4be773c2011-05-23 15:49:47 -0700249/**< NFCIP Active Mode Default Configuration (when acting as Target)
Nick Pelly5d9927b2010-09-23 12:47:58 -0700250 0x01 106 kbps
251 0x02 212 kbps
252 0x04 424 kbps
253 */
254
255#ifndef NXP_NFCIP_ACTIVE_DEFAULT
256#define NXP_NFCIP_ACTIVE_DEFAULT 0x01U
257#endif
258
259
260
261
262#ifndef NXP_NFC_HCI_TIMER
Nick Pelly34ff48f2011-06-27 09:01:51 -0700263#define NXP_NFC_HCI_TIMER 1
Daniel Tomasbad5c192010-11-03 20:23:31 +0100264#define NXP_NFC_HCI_TIMEOUT 6000
Nick Pelly5d9927b2010-09-23 12:47:58 -0700265#endif
266
267
268/*
269 *****************************************************************
270 DO NOT MODIFY THE BELOW MACROS UNLESS OTHERWISE MENTIONED
271 *****************************************************************
272 */
273
274
275
276#ifndef HOST_CE_A_SAK_DEFAULT
277#define HOST_CE_A_SAK_DEFAULT 0x20U
278#endif
279
280#ifndef NXP_CE_A_ATQA_HIGH
281#define NXP_CE_A_ATQA_HIGH 0x00U
282#endif
283
284#ifndef NXP_CE_A_ATQA_LOW
285#define NXP_CE_A_ATQA_LOW 0x04U
286#endif
287
288
289#ifndef NXP_UICC_CE_RIGHTS
290#define NXP_UICC_CE_RIGHTS 0x0FU
291#endif
292
293#ifndef NXP_UICC_RD_RIGHTS
294#define NXP_UICC_RD_RIGHTS 0x00U
295#endif
296
297
298/*
299 *****************************************************************
300 DO NOT DISABLE/ENABLE BELOW MACROS UNLESS OTHERWISE MENTIONED
301 *****************************************************************
302 */
303
304#define ES_HW_VER 32
305
306/*
307 *****************************************************************
308 *************** FEATURE SPECIFIC MACROS *************************
309 *****************************************************************
310 */
311
312
313
314/**< Macro to Enable SMX Feature During
315 * Initialisation */
316
317#if !defined(NXP_SMX)
Daniel Tomas75b04732010-11-17 10:04:19 +0100318#define NXP_SMX 1
Nick Pelly5d9927b2010-09-23 12:47:58 -0700319#endif
320
321#if (NXP_SMX == 1)
322#define NXP_HAL_ENABLE_SMX
323#endif
324
325/**< Macro to Enable the Host Session
326 * Initialisation */
327#define ESTABLISH_SESSION
328
329/**< Macro to Enable the Peer to Peer Feature */
330#define ENABLE_P2P
331
Nick Pelly4be773c2011-05-23 15:49:47 -0700332#define DEFAULT_NFCIP_INITIATOR_MODE_SUPPORT 0x3FU
Nick Pelly277db7c2011-04-15 20:12:29 -0700333#define DEFAULT_NFCIP_TARGET_MODE_SUPPORT 0x0FU
Nick Pelly5d9927b2010-09-23 12:47:58 -0700334
335/**< Macro to Enable the ISO14443-B Feature */
336#define TYPE_B
337
338/**< Macro to Enable the Felica Feature */
339#define TYPE_FELICA
340
341/**< Macro to Enable the JEWEL Feature */
342#define TYPE_JEWEL
343
344/**< Macro to Enable the ISO15693 Feature */
345#define TYPE_ISO15693
346
347/*< Macro to Verify the Poll Parameters Set */
348/* #define ENABLE_VERIFY_PARAM */
349
350/**< Macro to Enable ISO 18092 Protocol compliancy
351 * SAK to be merged with the TYPE A Card RF Feature :3.1*/
352#define TGT_MERGE_SAK
353
354
355/**< Macro to Configure the default power status
356 * to allow the PN544 to enter into the Standby */
357#define CFG_PWR_STATUS
358
359
360/**< Macro to Enable the SWP Protocol
361 * to detect UICC During Initialisation */
362#define ENABLE_UICC
363
364/**< Macro to Enable the RAW Mode of Transaction
365 * for the ISO-14443-3A Compliant Targets */
366#define ENABLE_MIFARE_RAW
367
368/**< Macro to Enable the HOST List
369 * to allow the UICC Communication */
370#define HOST_WHITELIST
371
Martijn Coenend75796b2010-12-16 16:54:00 +0100372/**< Support reconnecting to a different handle on the same tag */
373#define RECONNECT_SUPPORT
Nick Pelly5d9927b2010-09-23 12:47:58 -0700374
375/**< Macro to Enable the Card Emulation Feature */
376/* #define HOST_EMULATION */
377
Rob von Behren6dd94832011-09-16 15:05:25 -0700378#define NXP_HAL_VERIFY_EEPROM_CRC 0x01U
379
Nick Pelly5d9927b2010-09-23 12:47:58 -0700380/**< Macro to Enable the Download Mode Feature */
daniel_Tomas5e976052010-12-09 10:46:12 -0800381#define FW_DOWNLOAD
Nick Pelly5d9927b2010-09-23 12:47:58 -0700382
383/**< Macro to Enable the Firmware Download Timer */
Rob von Behren6dd94832011-09-16 15:05:25 -0700384/* 0x01U to use overall timeout */
385/* 0x02U to use per frame timeout */
386#define FW_DOWNLOAD_TIMER 0x02U
Nick Pelly5d9927b2010-09-23 12:47:58 -0700387
388/**< Macro to Verify the Firmware Download */
389/* #define FW_DOWNLOAD_VERIFY */
390
391#ifndef FW_DOWNLOAD_VERIFY
daniel_Tomas5e976052010-12-09 10:46:12 -0800392#define NXP_FW_INTEGRITY_CHK 1
Nick Pelly5d9927b2010-09-23 12:47:58 -0700393#endif
394
Rob von Behren6dd94832011-09-16 15:05:25 -0700395/* To specify the Maximum TX/RX Len */
396#define NXP_FW_MAX_TX_RX_LEN 0x200
397
Nick Pelly5d9927b2010-09-23 12:47:58 -0700398#define UICC_CONNECTIVITY_PATCH
399
400/* Work around to Delay the initiator activation */
401/* #define NXP_NFCIP_ACTIVATE_DELAY */
402
403/* Work around to Release the Discovered Target */
404#define SW_RELEASE_TARGET
405
406/* Macro to Allow the HCI Release in any state */
407#define NXP_HCI_SHUTDOWN_OVERRIDE
408
409
410/* Macro to Enable The P2P Transaction Timers */
411#define P2P_TGT_TRANSACT_TIMER
412
413#if (ES_HW_VER == 32)
414/* Macro to Configure the Target Disable Register */
415#define NFCIP_TGT_DISABLE_CFG
416
417#endif
418
419/*< Macro to Disable the Felica Mapping */
420/* #define DISABLE_FELICA_MAPPING */
421
422/*< Macro to Disable the Felica Mapping */
423/* #define DISABLE_JEWEL_MAPPING */
424
425/**< Macro to enable LLC timer */
426#define LLC_TIMER_ENABLE
427
428/**< Macro to enable HCI Response timer */
Daniel Tomasbad5c192010-11-03 20:23:31 +0100429#define NXP_NFC_HCI_TIMER 1
Nick Pelly5d9927b2010-09-23 12:47:58 -0700430
431/* A Workaround to Delay and obtain the UICC Status Information */
432/* #define UICC_STATUS_DELAY */
433
434#ifdef UICC_STATUS_DELAY
435#define UICC_STATUS_DELAY_COUNT 0x00100000
436#endif
437
Daniel Tomasb70c3012010-11-04 03:59:10 +0100438/**< Macro to delay the LLC RESET response callback,
Nick Pelly5d9927b2010-09-23 12:47:58 -0700439 Value is in milli-seconds */
440#define LLC_RESET_DELAY 10
441
Daniel Tomasb70c3012010-11-04 03:59:10 +0100442/* Macro to Enable the workaround for Tuning of
Nick Pelly5d9927b2010-09-23 12:47:58 -0700443 * RF for TYPE B and F
444 */
445/* #define SW_TYPE_RF_TUNING_BF */
446
447/* Workaround to update the Active Guard Timeout */
448/* #define MAX_ACTIVATE_TIMEOUT */
449
450/* #define ONE_BYTE_LEN */
451
Daniel Tomasb70c3012010-11-04 03:59:10 +0100452#define NFC_RF_NOISE_SW
Nick Pelly5d9927b2010-09-23 12:47:58 -0700453
454/**< Define to configure the PMOS Modulation Index value
455 */
456
457#ifndef NFC_DEV_PMOS_MOD_DEFAULT
458/* 0x3F -> 6%, 0x3A -> 10%, 0x3C -> 10%, 0x35 -> 15.8%, 0x28 -> 25.8% */
Daniel Tomasb70c3012010-11-04 03:59:10 +0100459#define NFC_DEV_PMOS_MOD_DEFAULT 0x3CU
Nick Pelly5d9927b2010-09-23 12:47:58 -0700460#endif
461
462
463#ifndef SW_TYPE_RF_TUNING_BF
464#define SW_TYPE_RF_TUNING_BF 0x80U
465#endif
466
467
468/* Reset the Default values of Host Link Timers */
Daniel Tomasb70c3012010-11-04 03:59:10 +0100469/* Macro to Enable the Host Side Link Timeout Configuration
Nick Pelly5d9927b2010-09-23 12:47:58 -0700470 * 0x00 ----> Default Pre-defined Configuration;
471 * 0x01 ----> Update only the Host Link Guard Timeout Configuration;
Daniel Tomasb70c3012010-11-04 03:59:10 +0100472 * 0x03 ----> Update Both the Host Link Guard Timeout
Nick Pelly5d9927b2010-09-23 12:47:58 -0700473 and ACK Timeout Configuration;
474 */
Daniel Tomasb70c3012010-11-04 03:59:10 +0100475
Nick Pelly5d9927b2010-09-23 12:47:58 -0700476#ifndef HOST_LINK_TIMEOUT
477#define HOST_LINK_TIMEOUT 0x00U
478#endif
479
480
481#ifndef NXP_NFC_LINK_GRD_CFG_DEFAULT
482#define NXP_NFC_LINK_GRD_CFG_DEFAULT 0x0032U
483#endif
484
485#ifndef NXP_NFC_LINK_ACK_CFG_DEFAULT
486#define NXP_NFC_LINK_ACK_CFG_DEFAULT 0x0005U
487#endif
488
Daniel Tomasb70c3012010-11-04 03:59:10 +0100489/* Macro to Enable the Interface Character Timeout Configuration
Nick Pelly5d9927b2010-09-23 12:47:58 -0700490 * 0x00 ----> Default Pre-defined Configuration;
491 * 0x01 ----> Update the IFC Timeout Default Configuration;
492 */
493
494#ifndef NXP_NFC_IFC_TIMEOUT
495#define NXP_NFC_IFC_TIMEOUT 0x00
496#endif
497
498
499#ifndef NXP_NFC_IFC_CONFIG_DEFAULT
500#define NXP_NFC_IFC_CONFIG_DEFAULT 0x203AU
501#endif
502
Daniel Tomasb70c3012010-11-04 03:59:10 +0100503#ifndef NFC_ISO_15693_MULTIPLE_TAGS_SUPPORT
504#define NFC_ISO_15693_MULTIPLE_TAGS_SUPPORT 0x00
505#endif
Nick Pelly5d9927b2010-09-23 12:47:58 -0700506
507/*
508 *****************************************************************
509 *********** MACROS ENABLE EEPROM REGISTER WRITE ****************
510 *****************************************************************
511 */
512
513
514/* Enable this to Disable the WI Notification */
515/* #define DISABLE_WI_NOTIFICATION */
516
517/* Macro to Enable the Configuration of Initiator
518 * speed during Discovery configuration
519 */
520#define INITIATOR_SPEED
Martijn Coenen20b7bd52012-01-31 22:13:33 -0800521#define TARGET_SPEED
Nick Pelly5d9927b2010-09-23 12:47:58 -0700522
523
524/**/
525/* #define UICC_SESSION_RESET */
526
527/* Macro to Enable the Configuration of UICC
528 * Timer and Bitrate during Initialisation
529 */
530
531
532
533
534/* -----------------Structures and Enumerations -------------------------*/
535
536
537
538
539/* -----------------Exported Functions----------------------------------*/
540
541
542#endif /*PHNFC_CONFIG_H*/
543