summaryrefslogtreecommitdiffstats
path: root/inc/phNfcConfig.h
blob: 6bc050c976d6af83c9ce49a9895043b99ce4eee7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
/*
 * Copyright (C) 2010 NXP Semiconductors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


/**
* \file phNfcConfig.h
* \brief HAL Configurations
*
*
* \note This is the configuration header file of the HAL 4.0.All configurable parameters of the HAL 4.0
*       are provided in this file
*
* Project: NFC-FRI-1.1 / HAL4.0
*
* $Date: Thu Sep  9 14:56:35 2010 $
* $Author: ing04880 $
* $Revision: 1.39 $
* $Aliases:  $
*
*/


/*@{*/
#ifndef PHNFC_CONFIG_H
#define PHNFC_CONFIG_H
/*@}*/


/**
*  \name Hal
*
* File: \ref phNfcConfig.h
*
*/

/*@{*/
#define PH_NFC_CONFIG_FILEREVISION "$Revision: 1.39 $" /**< \ingroup grp_file_attributes */
#define PH_NFC_CONFIG_FILEALIASES  "$Aliases:  $"     /**< \ingroup grp_file_attributes */
/*@}*/


/* -----------------Include files ---------------------------------------*/

#ifdef NFC_CUSTOM_CONFIG_INCLUDE
#include<nfc_custom_config.h>
#endif

/* ---------------- Macros ----------------------------------------------*/



/*
 *****************************************************************
 **********************  DEFAULT MACROS **************************
 *****************************************************************
 */


/**<  External Clock Request Configuration for the NFC Device,
      0x00U     No Clock Request,
      0x01U     Clock Request through CLKREQ pin (GPIO pin 2),
      0x02U     Clock Request through NXP_EVT_CLK_REQUEST Event,
      */
#ifndef NXP_DEFAULT_CLK_REQUEST
#define NXP_DEFAULT_CLK_REQUEST         0x00U
#endif

/**<  External Input Clock Setting for the NFC Device,
      0x00U     No Input Clock Required (Use the Xtal),
      0x01U     13 MHZ,
      0x02U     19.2 MHZ,
      0x03U     26 MHZ,
      0x04U     38.4 MHZ,
      0x05U     Custom (Set the Custome Clock Registry),
      */

#ifndef NXP_DEFAULT_INPUT_CLK
#define NXP_DEFAULT_INPUT_CLK           0x00U
#endif

/**<  UICC Power Request configuration for the NFC Device,
      0x00U     No Power Request,
      0x01U     Power Request through CLKREQ pin (GPIO pin 2),
      0x02U     Power Request through PWR_REQUEST (GPIO Pin 3),
      */

#ifndef NXP_UICC_PWR_REQUEST
#define NXP_UICC_PWR_REQUEST            0x00U
#endif

/**<  TX LDO Configuration
       0x00     00b     3.0 V,
       0x01     01b     3.0 V,
       0x02     10b     2.7 V,
       0x03     11b     3.3 V,
      */

#ifndef NXP_DEFAULT_TX_LDO
#define NXP_DEFAULT_TX_LDO              0x00U
#endif

/**<  UICC Bit Rate Configuration
       0x02     212Kbits/Sec
       0x04     424Kbits/Sec
       0x08     828Kbits/Sec
 */

#ifndef NXP_UICC_BIT_RATE
#define NXP_UICC_BIT_RATE               0x08U
#endif


/**<  Indicates PN544 Power Modes Configuration for the NFC Device,
      0x00U -> PN544 stays in active bat mode 
               (except when generating RF field)
      0x01U -> PN544 goes in standby when possible otherwise 
               stays in active bat mode
      0x02U -> PN544 goes in idle mode as soon as it can 
               (otherwise it is in active bat except when generating RF field)
      0x03U -> PN544 goes in standby when possible otherwise goes in idle mode 
               as soon as it can (otherwise it is in active bat except when 
               generating RF field)
      */

#ifndef NXP_SYSTEM_PWR_STATUS
#define NXP_SYSTEM_PWR_STATUS           0x01U
#endif

/**< Default Session ID for Initialisation */
#ifndef DEFAULT_SESSION
#define DEFAULT_SESSION           "android8"
#endif


/* The Other Integration Configuration Values */

/**< Max number of remote devices supported */

#ifndef MAX_REMOTE_DEVICES
#define MAX_REMOTE_DEVICES        0x0A 
#endif

/**<  System Event Notification
       0x01     Overcurrent
       0x02     PMUVCC Switch
       0x04     External RF Field
       0x08     Memory Violation
       0x10     Temperature Overheat
 */

#ifndef NXP_SYSTEM_EVT_INFO
#define NXP_SYSTEM_EVT_INFO             0x3DU
#endif


#ifndef NFC_DEV_HWCONF_DEFAULT
#define NFC_DEV_HWCONF_DEFAULT          0xBCU
#endif


#ifndef NXP_ISO_XCHG_TIMEOUT
#define NXP_ISO_XCHG_TIMEOUT            0x1AU
#endif

#ifndef NXP_MIFARE_XCHG_TIMEOUT
#define NXP_MIFARE_XCHG_TIMEOUT         0x0BU
#endif

#ifndef NXP_FELICA_XCHG_TIMEOUT
#define NXP_FELICA_XCHG_TIMEOUT         0xFFU
#endif


#ifndef NXP_NFCIP_PSL_BRS_DEFAULT
#define NXP_NFCIP_PSL_BRS_DEFAULT       0x00U
#endif



/**< ID For Invalid Timer */
#ifndef NXP_INVALID_TIMER_ID
#define NXP_INVALID_TIMER_ID              0xFFFFFFFFU
#endif

/**< Presence check interval in milliseconds */
#ifndef PRESENCE_CHECK_INTERVAL
#define PRESENCE_CHECK_INTERVAL   500U
#endif 

/** Resolution value for the timer, here the 
    timer resolution is 500 milliseconds */
#ifndef TIMER_RESOLUTION
#define TIMER_RESOLUTION                500U
#endif 

/* Kindly note that the below Timeout values should be
 * in Multiples of the value provided to TIMER_RESOLUTION
 */

/**< Defines guard time out value for LLC timer, 
    1000 is in milliseconds */
#ifndef LINK_GUARD_TIMEOUT
#define LINK_GUARD_TIMEOUT              1000U
#endif 


/**< Defines connection time out value for LLC timer, 
    1000 is in milliseconds */
#ifndef LINK_CONNECTION_TIMEOUT
#define LINK_CONNECTION_TIMEOUT         1000U
#endif 

/**< Defines ACK time out value for LLC timer,
    150 is in milliseconds */
#ifndef LINK_ACK_TIMEOUT
#define LINK_ACK_TIMEOUT                1U
#endif


/**< Defines Firmware Download Completion Timeout value ,
    120000 is in milliseconds */


#ifndef NXP_DNLD_COMPLETE_TIMEOUT
#define NXP_DNLD_COMPLETE_TIMEOUT         60000U
#endif


/**< Define to configure the Active Mode Polling Guard Time-out 
  */

#ifndef DEV_MGMT_ACT_GRD_TO_DEFAULT
#define DEV_MGMT_ACT_GRD_TO_DEFAULT       0x20U
#endif

/**<  NFCIP Active Mode Default Configuration (when acting as Target)
       0x01     106 kbps
       0x02     212 kbps
       0x04     424 kbps
 */

#ifndef NXP_NFCIP_ACTIVE_DEFAULT
#define NXP_NFCIP_ACTIVE_DEFAULT        0x01U
#endif




#ifndef NXP_NFC_HCI_TIMER
#define NXP_NFC_HCI_TIMER       1
#define NXP_NFC_HCI_TIMEOUT     6000
#endif


/*
 *****************************************************************
  DO NOT MODIFY THE BELOW MACROS UNLESS OTHERWISE MENTIONED
 *****************************************************************
 */



#ifndef HOST_CE_A_SAK_DEFAULT
#define HOST_CE_A_SAK_DEFAULT           0x20U
#endif 

#ifndef NXP_CE_A_ATQA_HIGH
#define NXP_CE_A_ATQA_HIGH              0x00U
#endif

#ifndef NXP_CE_A_ATQA_LOW
#define NXP_CE_A_ATQA_LOW               0x04U
#endif


#ifndef NXP_UICC_CE_RIGHTS
#define NXP_UICC_CE_RIGHTS              0x0FU
#endif 

#ifndef NXP_UICC_RD_RIGHTS
#define NXP_UICC_RD_RIGHTS              0x00U
#endif 


/*
 *****************************************************************
  DO NOT DISABLE/ENABLE BELOW MACROS UNLESS OTHERWISE MENTIONED
 *****************************************************************
 */

#define ES_HW_VER   32
 
/*
 *****************************************************************
 *************** FEATURE SPECIFIC MACROS *************************
 *****************************************************************
 */



/**< Macro to Enable SMX Feature During
 * Initialisation */

#if !defined(NXP_SMX)
#define NXP_SMX 1
#endif

#if (NXP_SMX == 1)
#define NXP_HAL_ENABLE_SMX 
#endif

/**< Macro to Enable the Host Session
 * Initialisation */
#define ESTABLISH_SESSION

/**< Macro to Enable the Peer to Peer Feature */
#define ENABLE_P2P

#define DEFAULT_NFCIP_INITIATOR_MODE_SUPPORT   0x3FU
#define DEFAULT_NFCIP_TARGET_MODE_SUPPORT      0x0FU

/**< Macro to Enable the ISO14443-B Feature */
#define TYPE_B

/**< Macro to Enable the Felica Feature */
#define TYPE_FELICA

/**< Macro to Enable the JEWEL Feature */
#define TYPE_JEWEL

/**< Macro to Enable the ISO15693 Feature */
#define TYPE_ISO15693

/*< Macro to Verify the Poll Parameters Set */
/* #define ENABLE_VERIFY_PARAM */

/**< Macro to Enable ISO 18092 Protocol compliancy
 *  SAK to be merged with the TYPE A Card RF Feature :3.1*/
#define TGT_MERGE_SAK


/**< Macro to Configure the default power status
 * to allow the PN544 to enter into the Standby */
#define CFG_PWR_STATUS


/**< Macro to Enable the SWP Protocol
 * to detect UICC During Initialisation */
#define ENABLE_UICC

/**< Macro to Enable the RAW Mode of Transaction
 * for the ISO-14443-3A Compliant Targets */
#define ENABLE_MIFARE_RAW

/**< Macro to Enable the HOST List
 * to allow the UICC Communication */
#define HOST_WHITELIST

/**< Support reconnecting to a different handle on the same tag */
#define RECONNECT_SUPPORT

/**< Macro to Enable the Card Emulation Feature */
/* #define HOST_EMULATION */

#define NXP_HAL_VERIFY_EEPROM_CRC  0x01U

/**< Macro to Enable the Download Mode Feature */
#define FW_DOWNLOAD

/**< Macro to Enable the Firmware Download Timer */
/* 0x01U to use overall timeout */
/* 0x02U to use per frame timeout */
#define FW_DOWNLOAD_TIMER   0x02U

/**< Macro to Verify the Firmware Download */
/* #define FW_DOWNLOAD_VERIFY */

#ifndef FW_DOWNLOAD_VERIFY
#define NXP_FW_INTEGRITY_CHK    1
#endif

/* To specify the Maximum TX/RX Len */
#define NXP_FW_MAX_TX_RX_LEN   0x200

#define UICC_CONNECTIVITY_PATCH

/* Work around to Delay the initiator activation */
/* #define NXP_NFCIP_ACTIVATE_DELAY */

/* Work around to Release the Discovered Target */
#define SW_RELEASE_TARGET

/* Macro to Allow the HCI Release in any state */
#define NXP_HCI_SHUTDOWN_OVERRIDE


/* Macro to Enable The P2P Transaction Timers */
#define P2P_TGT_TRANSACT_TIMER

#if (ES_HW_VER == 32)
/* Macro to Configure the Target Disable Register */
#define NFCIP_TGT_DISABLE_CFG

#endif

/*< Macro to Disable the Felica Mapping */
/* #define DISABLE_FELICA_MAPPING */

/*< Macro to Disable the Felica Mapping */
/* #define DISABLE_JEWEL_MAPPING */

/**< Macro to enable LLC timer */
#define LLC_TIMER_ENABLE

/**< Macro to enable HCI Response timer */
#define NXP_NFC_HCI_TIMER 1

/* A Workaround to Delay and obtain the UICC Status Information */
/* #define UICC_STATUS_DELAY */

#ifdef UICC_STATUS_DELAY
#define UICC_STATUS_DELAY_COUNT 0x00100000
#endif

/**< Macro to delay the LLC RESET response callback,
    Value is in milli-seconds */
#define LLC_RESET_DELAY                 10

/* Macro to Enable the workaround for Tuning of
 * RF for TYPE B and F
 */
/* #define SW_TYPE_RF_TUNING_BF */

/* Workaround to update the Active Guard Timeout */
/* #define MAX_ACTIVATE_TIMEOUT */

/* #define ONE_BYTE_LEN */

#define NFC_RF_NOISE_SW

/**< Define to configure the PMOS Modulation Index value
  */

#ifndef NFC_DEV_PMOS_MOD_DEFAULT
/* 0x3F -> 6%, 0x3A -> 10%, 0x3C -> 10%, 0x35 -> 15.8%,  0x28 -> 25.8% */
#define NFC_DEV_PMOS_MOD_DEFAULT          0x3CU
#endif


#ifndef SW_TYPE_RF_TUNING_BF
#define SW_TYPE_RF_TUNING_BF              0x80U
#endif


/* Reset the Default values of Host Link Timers */
/* Macro to Enable the Host Side Link Timeout Configuration
 * 0x00 ----> Default Pre-defined Configuration;
 * 0x01 ----> Update only the Host Link Guard Timeout Configuration;
 * 0x03 ----> Update Both the Host Link Guard Timeout
              and ACK Timeout Configuration;
 */

#ifndef HOST_LINK_TIMEOUT
#define HOST_LINK_TIMEOUT              0x00U
#endif


#ifndef NXP_NFC_LINK_GRD_CFG_DEFAULT
#define NXP_NFC_LINK_GRD_CFG_DEFAULT   0x0032U
#endif

#ifndef NXP_NFC_LINK_ACK_CFG_DEFAULT
#define NXP_NFC_LINK_ACK_CFG_DEFAULT   0x0005U
#endif

/* Macro to Enable the Interface Character Timeout Configuration
 * 0x00 ----> Default Pre-defined Configuration;
 * 0x01 ----> Update the IFC Timeout Default Configuration;
 */

#ifndef NXP_NFC_IFC_TIMEOUT
#define NXP_NFC_IFC_TIMEOUT            0x00
#endif


#ifndef NXP_NFC_IFC_CONFIG_DEFAULT
#define NXP_NFC_IFC_CONFIG_DEFAULT     0x203AU
#endif

#ifndef NFC_ISO_15693_MULTIPLE_TAGS_SUPPORT
#define NFC_ISO_15693_MULTIPLE_TAGS_SUPPORT 0x00
#endif

/*
 *****************************************************************
 ***********  MACROS ENABLE EEPROM REGISTER WRITE ****************
 *****************************************************************
 */


/* Enable this to Disable the WI Notification */
/* #define DISABLE_WI_NOTIFICATION */

/* Macro to Enable the Configuration of Initiator
 * speed during Discovery configuration
 */
#define INITIATOR_SPEED
#define TARGET_SPEED


/**/
/* #define UICC_SESSION_RESET */

/* Macro to Enable the Configuration of UICC
 * Timer and Bitrate during Initialisation
 */




/* -----------------Structures and Enumerations -------------------------*/




/* -----------------Exported Functions----------------------------------*/


#endif /*PHNFC_CONFIG_H*/