Home | History | Annotate | Download | only in inc
      1 /*
      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 *
     28 * $Date: Thu Sep  9 14:56:35 2010 $
     29 * $Author: ing04880 $
     30 * $Revision: 1.39 $
     31 * $Aliases:  $
     32 *
     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 /*@{*/
     50 #define PH_NFC_CONFIG_FILEREVISION "$Revision: 1.39 $" /**< \ingroup grp_file_attributes */
     51 #define PH_NFC_CONFIG_FILEALIASES  "$Aliases:  $"     /**< \ingroup grp_file_attributes */
     52 /*@}*/
     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
    139 #define NXP_SYSTEM_PWR_STATUS           0x01U
    140 #endif
    141 
    142 /**< Default Session ID for Initialisation */
    143 #ifndef DEFAULT_SESSION
    144 #define DEFAULT_SESSION           "android8"
    145 #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
    175 #define NXP_ISO_XCHG_TIMEOUT            0x1BU
    176 #endif
    177 
    178 #ifndef NXP_MIFARE_XCHG_TIMEOUT
    179 #define NXP_MIFARE_XCHG_TIMEOUT         0x0BU
    180 #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 
    226 /**< 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 
    232 
    233 /**< Defines Firmware Download Completion Timeout value ,
    234     120000 is in milliseconds */
    235 
    236 
    237 #ifndef NXP_DNLD_COMPLETE_TIMEOUT
    238 #define NXP_DNLD_COMPLETE_TIMEOUT         60000U
    239 #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 
    249 /**<  NFCIP Active Mode Default Configuration (when acting as Target)
    250        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
    263 #define NXP_NFC_HCI_TIMER       1
    264 #define NXP_NFC_HCI_TIMEOUT     6000
    265 #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)
    318 #define NXP_SMX 1
    319 #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 
    332 #define DEFAULT_NFCIP_INITIATOR_MODE_SUPPORT   0x3FU
    333 #define DEFAULT_NFCIP_TARGET_MODE_SUPPORT      0x0FU
    334 
    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 
    372 /**< Support reconnecting to a different handle on the same tag */
    373 #define RECONNECT_SUPPORT
    374 
    375 /**< Macro to Enable the Card Emulation Feature */
    376 /* #define HOST_EMULATION */
    377 
    378 #define NXP_HAL_VERIFY_EEPROM_CRC  0x01U
    379 
    380 /**< Macro to Enable the Download Mode Feature */
    381 #define FW_DOWNLOAD
    382 
    383 /**< Macro to Enable the Firmware Download Timer */
    384 /* 0x01U to use overall timeout */
    385 /* 0x02U to use per frame timeout */
    386 #define FW_DOWNLOAD_TIMER   0x02U
    387 
    388 /**< Macro to Verify the Firmware Download */
    389 /* #define FW_DOWNLOAD_VERIFY */
    390 
    391 #ifndef FW_DOWNLOAD_VERIFY
    392 #define NXP_FW_INTEGRITY_CHK    1
    393 #endif
    394 
    395 /* To specify the Maximum TX/RX Len */
    396 #define NXP_FW_MAX_TX_RX_LEN   0x200
    397 
    398 #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 */
    429 #define NXP_NFC_HCI_TIMER 1
    430 
    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 
    438 /**< Macro to delay the LLC RESET response callback,
    439     Value is in milli-seconds */
    440 #define LLC_RESET_DELAY                 10
    441 
    442 /* Macro to Enable the workaround for Tuning of
    443  * 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 
    452 #define NFC_RF_NOISE_SW
    453 
    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% */
    459 #define NFC_DEV_PMOS_MOD_DEFAULT          0x3CU
    460 #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 */
    469 /* Macro to Enable the Host Side Link Timeout Configuration
    470  * 0x00 ----> Default Pre-defined Configuration;
    471  * 0x01 ----> Update only the Host Link Guard Timeout Configuration;
    472  * 0x03 ----> Update Both the Host Link Guard Timeout
    473               and ACK Timeout Configuration;
    474  */
    475 
    476 #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 
    489 /* Macro to Enable the Interface Character Timeout Configuration
    490  * 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 
    503 #ifndef NFC_ISO_15693_MULTIPLE_TAGS_SUPPORT
    504 #define NFC_ISO_15693_MULTIPLE_TAGS_SUPPORT 0x00
    505 #endif
    506 
    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
    521 #define TARGET_SPEED
    522 
    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 
    544