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