Home | History | Annotate | Download | only in common
      1 /*
      2  * Copyright (C) 2010-2014 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  * NFC Status Values - Function Return Codes
     19  */
     20 
     21 #ifndef PHNFCSTATUS_H
     22 #define PHNFCSTATUS_H
     23 
     24 #include <phNfcTypes.h>
     25 
     26 /* Internally required by PHNFCSTVAL. */
     27 #define PHNFCSTSHL8                          (8U)
     28 /* Required by PHNFCSTVAL. */
     29 #define PHNFCSTBLOWER                        ((NFCSTATUS)(0x00FFU))
     30 
     31 /*
     32  *  NFC Status Composition Macro
     33  *
     34  *  This is the macro which must be used to compose status values.
     35  *
     36  *  phNfcCompID Component ID, as defined in phNfcCompId.h .
     37  *  phNfcStatus Status values, as defined in phNfcStatus.h .
     38  *
     39  *  The macro is not required for the NFCSTATUS_SUCCESS value.
     40  *  This is the only return value to be used directly.
     41  *  For all other values it shall be used in assignment and conditional statements, e.g.:
     42  *     NFCSTATUS status = PHNFCSTVAL(phNfcCompID, phNfcStatus); ...
     43  *     if (status == PHNFCSTVAL(phNfcCompID, phNfcStatus)) ...
     44  */
     45 #define PHNFCSTVAL(phNfcCompID, phNfcStatus)                                  \
     46             ( ((phNfcStatus) == (NFCSTATUS_SUCCESS)) ? (NFCSTATUS_SUCCESS) :  \
     47                 ( (((NFCSTATUS)(phNfcStatus)) & (PHNFCSTBLOWER)) |            \
     48                     (((uint16_t)(phNfcCompID)) << (PHNFCSTSHL8)) ) )
     49 
     50 /*
     51  * PHNFCSTATUS
     52  * Get grp_retval from Status Code
     53  */
     54 #define PHNFCSTATUS(phNfcStatus)  ((phNfcStatus) & 0x00FFU)
     55 #define PHNFCCID(phNfcStatus)  (((phNfcStatus) & 0xFF00U)>>8)
     56 
     57 #define PHNFC_I2C_FRAGMENT_SIZE       512
     58 /*
     59  *  Status Codes
     60  *
     61  *  Generic Status codes for the NFC components. Combined with the Component ID
     62  *  they build the value (status) returned by each function.
     63  *  Example:
     64  *      grp_comp_id "Component ID" -  e.g. 0x10, plus
     65  *      status code as listed in this file - e.g. 0x03
     66  *      result in a status value of 0x0003.
     67  */
     68 
     69 /*
     70  * The function indicates successful completion
     71  */
     72 #define NFCSTATUS_SUCCESS                                     (0x0000)
     73 
     74 /*
     75  *  The function indicates successful completion
     76  */
     77 #define NFCSTATUS_OK                                (NFCSTATUS_SUCCESS)
     78 
     79 /*
     80  * At least one parameter could not be properly interpreted
     81  */
     82 #define NFCSTATUS_INVALID_PARAMETER                           (0x0001)
     83 
     84 /*
     85  * The buffer provided by the caller is too small
     86  */
     87 #define NFCSTATUS_BUFFER_TOO_SMALL                            (0x0003)
     88 
     89 /*
     90  * Device specifier/handle value is invalid for the operation
     91  */
     92 #define NFCSTATUS_INVALID_DEVICE                              (0x0006)
     93 
     94 /*
     95  * The function executed successfully but could have returned
     96  * more information than space provided by the caller
     97  */
     98 #define NFCSTATUS_MORE_INFORMATION                            (0x0008)
     99 
    100 /*
    101  * No response from the remote device received: Time-out
    102  */
    103 #define NFCSTATUS_RF_TIMEOUT                                  (0x0009)
    104 
    105 /*
    106  * RF Error during data transaction with the remote device
    107  */
    108 #define NFCSTATUS_RF_ERROR                                    (0x000A)
    109 
    110 /*
    111  * Not enough resources Memory, Timer etc(e.g. allocation failed.)
    112  */
    113 #define NFCSTATUS_INSUFFICIENT_RESOURCES                      (0x000C)
    114 
    115 /*
    116  * A non-blocking function returns this immediately to indicate
    117  * that an internal operation is in progress
    118  */
    119 #define NFCSTATUS_PENDING                                     (0x000D)
    120 
    121 /*
    122  * A board communication error occurred
    123  * (e.g. Configuration went wrong)
    124  */
    125 #define NFCSTATUS_BOARD_COMMUNICATION_ERROR                   (0x000F)
    126 
    127 /*
    128  * Invalid State of the particular state machine
    129  */
    130 #define NFCSTATUS_INVALID_STATE                               (0x0011)
    131 
    132 
    133 /*
    134  * This Layer is Not initialized, hence initialization required.
    135  */
    136 #define NFCSTATUS_NOT_INITIALISED                             (0x0031)
    137 
    138 
    139 /*
    140  * The Layer is already initialized, hence initialization repeated.
    141  */
    142 #define NFCSTATUS_ALREADY_INITIALISED                         (0x0032)
    143 
    144 
    145 /*
    146  * Feature not supported
    147  */
    148 #define NFCSTATUS_FEATURE_NOT_SUPPORTED                       (0x0033)
    149 
    150 /*  The Unregistration command has failed because the user wants to unregister on
    151  * an element for which he was not registered
    152  */
    153 #define NFCSTATUS_NOT_REGISTERED                              (0x0034)
    154 
    155 
    156 /* The Registration command has failed because the user wants to register on
    157  * an element for which he is already registered
    158  */
    159 #define NFCSTATUS_ALREADY_REGISTERED                          (0x0035)
    160 
    161 /*  Single Tag with Multiple
    162     Protocol support detected */
    163 #define NFCSTATUS_MULTIPLE_PROTOCOLS                          (0x0036)
    164 
    165 /*
    166  * Feature not supported
    167  */
    168 #define NFCSTATUS_MULTIPLE_TAGS                               (0x0037)
    169 
    170 /*
    171  * A DESELECT event has occurred
    172  */
    173 #define NFCSTATUS_DESELECTED                                  (0x0038)
    174 
    175 /*
    176  * A RELEASE event has occurred
    177  */
    178 #define NFCSTATUS_RELEASED                                    (0x0039)
    179 
    180 /*
    181  * The operation is currently not possible or not allowed
    182  */
    183 #define NFCSTATUS_NOT_ALLOWED                                 (0x003A)
    184 
    185 /*
    186  * FW version error while performing FW download,
    187  * FW major version mismatch (cannot downgrade FW major version) or FW version already upto date
    188  * User may be trying to flash Mobile FW on top of Infra FW, which is not allowed
    189  * Download appropriate version of FW
    190  */
    191 #define NFCSTATUS_FW_VERSION_ERROR                            (0x003C)
    192 
    193 /*
    194  *  The system is busy with the previous operation.
    195  */
    196 #define NFCSTATUS_BUSY                                        (0x006F)
    197 
    198 
    199 /* NDEF Mapping error codes */
    200 
    201 /* The remote device (type) is not valid for this request. */
    202 #define NFCSTATUS_INVALID_REMOTE_DEVICE                       (0x001D)
    203 
    204 /* Read operation failed */
    205 #define NFCSTATUS_READ_FAILED                                 (0x0014)
    206 
    207 /*
    208  * Write operation failed
    209  */
    210 #define NFCSTATUS_WRITE_FAILED                                (0x0015)
    211 
    212 /* Non Ndef Compliant */
    213 #define NFCSTATUS_NO_NDEF_SUPPORT                             (0x0016)
    214 
    215 /* Could not proceed further with the write operation: reached card EOF*/
    216 #define NFCSTATUS_EOF_NDEF_CONTAINER_REACHED                  (0x001A)
    217 
    218 /* Incorrect number of bytes received from the card*/
    219 #define NFCSTATUS_INVALID_RECEIVE_LENGTH                      (0x001B)
    220 
    221 /* The data format/composition is not understood/correct. */
    222 #define NFCSTATUS_INVALID_FORMAT                              (0x001C)
    223 
    224 
    225 /* There is not sufficient storage available. */
    226 #define NFCSTATUS_INSUFFICIENT_STORAGE                        (0x001F)
    227 
    228 /* The Ndef Format procedure has failed. */
    229 #define NFCSTATUS_FORMAT_ERROR                                (0x0023)
    230 
    231 /* The NCI Cedit error */
    232 #define NFCSTATUS_CREDIT_TIMEOUT                              (0x0024)
    233 
    234 /*
    235  * Response Time out for the control message(NFCC not responded)
    236  */
    237 #define NFCSTATUS_RESPONSE_TIMEOUT                            (0x0025)
    238 
    239 /*
    240  * Device is already connected
    241  */
    242 #define NFCSTATUS_ALREADY_CONNECTED                           (0x0026)
    243 
    244 /*
    245  * Device is already connected
    246  */
    247 #define NFCSTATUS_ANOTHER_DEVICE_CONNECTED                    (0x0027)
    248 
    249 /*
    250  * Single Target Detected and Activated
    251  */
    252 #define NFCSTATUS_SINGLE_TAG_ACTIVATED                        (0x0028)
    253 
    254 /*
    255  * Single Target Detected
    256  */
    257 #define NFCSTATUS_SINGLE_TAG_DISCOVERED                       (0x0029)
    258 
    259 /*
    260  * Secure element Detected and Activated
    261  */
    262 #define NFCSTATUS_SECURE_ELEMENT_ACTIVATED                    (0x0028)
    263 
    264 /*
    265  * Unknown error Status Codes
    266  */
    267 #define NFCSTATUS_UNKNOWN_ERROR                               (0x00FE)
    268 
    269 /*
    270  * Status code for failure
    271  */
    272 #define NFCSTATUS_FAILED                                      (0x00FF)
    273 
    274 /*
    275  * The function/command has been aborted
    276  */
    277 #define NFCSTATUS_CMD_ABORTED                                 (0x0002)
    278 
    279 /*
    280  * No target found after poll
    281  */
    282 #define NFCSTATUS_NO_TARGET_FOUND                             (0x000A)
    283 
    284 /* Attempt to disconnect a not connected remote device. */
    285 #define NFCSTATUS_NO_DEVICE_CONNECTED                         (0x000B)
    286 
    287 /* External RF field detected. */
    288 #define NFCSTATUS_EXTERNAL_RF_DETECTED                        (0x000E)
    289 
    290 /* Message is not allowed by the state machine
    291  * (e.g. configuration went wrong)
    292  */
    293 #define NFCSTATUS_MSG_NOT_ALLOWED_BY_FSM                      (0x0010)
    294 
    295 /*
    296  * No access has been granted
    297  */
    298 #define NFCSTATUS_ACCESS_DENIED                               (0x001E)
    299 
    300 /* No registry node matches the specified input data. */
    301 #define NFCSTATUS_NODE_NOT_FOUND                              (0x0017)
    302 
    303 /* The current module is busy ; one might retry later */
    304 #define NFCSTATUS_SMX_BAD_STATE                               (0x00F0)
    305 
    306 
    307 /* The Abort mechanism has failed for unexpected reason: user can try again*/
    308 #define NFCSTATUS_ABORT_FAILED                                (0x00F2)
    309 
    310 
    311 /* The Registration command has failed because the user wants to register as target
    312  * on a operating mode not supported
    313  */
    314 #define NFCSTATUS_REG_OPMODE_NOT_SUPPORTED                    (0x00F5)
    315 
    316 /*
    317  * Shutdown in progress, cannot handle the request at this time.
    318  */
    319 #define NFCSTATUS_SHUTDOWN                  (0x0091)
    320 
    321 /*
    322  * Target is no more in RF field
    323  */
    324 #define NFCSTATUS_TARGET_LOST               (0x0092)
    325 
    326 /*
    327  * Request is rejected
    328  */
    329 #define NFCSTATUS_REJECTED                  (0x0093)
    330 
    331 /*
    332  * Target is not connected
    333  */
    334 #define NFCSTATUS_TARGET_NOT_CONNECTED      (0x0094)
    335 
    336 /*
    337  * Invalid handle for the operation
    338  */
    339 #define NFCSTATUS_INVALID_HANDLE            (0x0095)
    340 
    341 /*
    342  * Process aborted
    343  */
    344 #define NFCSTATUS_ABORTED                   (0x0096)
    345 
    346 /*
    347  * Requested command is not supported
    348  */
    349 #define NFCSTATUS_COMMAND_NOT_SUPPORTED     (0x0097)
    350 
    351 /*
    352  * Tag is not NDEF compilant
    353  */
    354 #define NFCSTATUS_NON_NDEF_COMPLIANT        (0x0098)
    355 
    356 /*
    357  * Not enough memory available to complete the requested operation
    358  */
    359 #define NFCSTATUS_NOT_ENOUGH_MEMORY         (0x001F)
    360 
    361 /*
    362  * Indicates incoming connection
    363  */
    364 #define NFCSTATUS_INCOMING_CONNECTION        (0x0045)
    365 
    366 /*
    367  * Indicates Connection was successful
    368  */
    369 #define NFCSTATUS_CONNECTION_SUCCESS         (0x0046)
    370 
    371 /*
    372  * Indicates Connection failed
    373  */
    374 #define NFCSTATUS_CONNECTION_FAILED          (0x0047)
    375 
    376 #endif /* PHNFCSTATUS_H */
    377