1121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
2121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Copyright (C) 2010-2014 NXP Semiconductors
3121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *
4121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Licensed under the Apache License, Version 2.0 (the "License");
5121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * you may not use this file except in compliance with the License.
6121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * You may obtain a copy of the License at
7121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *
8121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *      http://www.apache.org/licenses/LICENSE-2.0
9121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *
10121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Unless required by applicable law or agreed to in writing, software
11121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * distributed under the License is distributed on an "AS IS" BASIS,
12121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * See the License for the specific language governing permissions and
14121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * limitations under the License.
15121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
16121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
17121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
18121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * NFC Status Values - Function Return Codes
19121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
20121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
21121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#ifndef PHNFCSTATUS_H
22121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define PHNFCSTATUS_H
23121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
24121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#include <phNfcTypes.h>
25121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
26121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* Internally required by PHNFCSTVAL. */
27121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define PHNFCSTSHL8                          (8U)
28121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* Required by PHNFCSTVAL. */
29121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define PHNFCSTBLOWER                        ((NFCSTATUS)(0x00FFU))
30121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
31121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
32121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *  NFC Status Composition Macro
33121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *
34121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *  This is the macro which must be used to compose status values.
35121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *
36121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *  phNfcCompID Component ID, as defined in phNfcCompId.h .
37121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *  phNfcStatus Status values, as defined in phNfcStatus.h .
38121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *
39121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *  The macro is not required for the NFCSTATUS_SUCCESS value.
40121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *  This is the only return value to be used directly.
41121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *  For all other values it shall be used in assignment and conditional statements, e.g.:
42121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *     NFCSTATUS status = PHNFCSTVAL(phNfcCompID, phNfcStatus); ...
43121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *     if (status == PHNFCSTVAL(phNfcCompID, phNfcStatus)) ...
44121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
45121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define PHNFCSTVAL(phNfcCompID, phNfcStatus)                                  \
46121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao            ( ((phNfcStatus) == (NFCSTATUS_SUCCESS)) ? (NFCSTATUS_SUCCESS) :  \
47121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao                ( (((NFCSTATUS)(phNfcStatus)) & (PHNFCSTBLOWER)) |            \
48121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao                    (((uint16_t)(phNfcCompID)) << (PHNFCSTSHL8)) ) )
49121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
50121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
51121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * PHNFCSTATUS
52121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Get grp_retval from Status Code
53121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
54121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define PHNFCSTATUS(phNfcStatus)  ((phNfcStatus) & 0x00FFU)
55121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define PHNFCCID(phNfcStatus)  (((phNfcStatus) & 0xFF00U)>>8)
56121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
57121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define PHNFC_I2C_FRAGMENT_SIZE       512
58121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
59121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *  Status Codes
60121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *
61121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *  Generic Status codes for the NFC components. Combined with the Component ID
62121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *  they build the value (status) returned by each function.
63121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *  Example:
64121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *      grp_comp_id "Component ID" -  e.g. 0x10, plus
65121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *      status code as listed in this file - e.g. 0x03
66121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *      result in a status value of 0x0003.
67121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
68121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
69121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
70121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * The function indicates successful completion
71121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
72121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_SUCCESS                                     (0x0000)
73121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
74121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
75121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *  The function indicates successful completion
76121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
77121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_OK                                (NFCSTATUS_SUCCESS)
78121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
79121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
80121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * At least one parameter could not be properly interpreted
81121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
82121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_INVALID_PARAMETER                           (0x0001)
83121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
84121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
85121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * The buffer provided by the caller is too small
86121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
87121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_BUFFER_TOO_SMALL                            (0x0003)
88121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
89121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
90121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Device specifier/handle value is invalid for the operation
91121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
92121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_INVALID_DEVICE                              (0x0006)
93121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
94121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
95121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * The function executed successfully but could have returned
96121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * more information than space provided by the caller
97121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
98121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_MORE_INFORMATION                            (0x0008)
99121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
100121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
101121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * No response from the remote device received: Time-out
102121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
103121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_RF_TIMEOUT                                  (0x0009)
104121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
105121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
106121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * RF Error during data transaction with the remote device
107121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
108121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_RF_ERROR                                    (0x000A)
109121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
110121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
111121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Not enough resources Memory, Timer etc(e.g. allocation failed.)
112121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
113121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_INSUFFICIENT_RESOURCES                      (0x000C)
114121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
115121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
116121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * A non-blocking function returns this immediately to indicate
117121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * that an internal operation is in progress
118121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
119121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_PENDING                                     (0x000D)
120121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
121121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
122121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * A board communication error occurred
123121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * (e.g. Configuration went wrong)
124121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
125121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_BOARD_COMMUNICATION_ERROR                   (0x000F)
126121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
127121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
128121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Invalid State of the particular state machine
129121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
130121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_INVALID_STATE                               (0x0011)
131121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
132121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
133121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
134121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * This Layer is Not initialized, hence initialization required.
135121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
136121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_NOT_INITIALISED                             (0x0031)
137121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
138121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
139121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
140121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * The Layer is already initialized, hence initialization repeated.
141121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
142121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_ALREADY_INITIALISED                         (0x0032)
143121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
144121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
145121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
146121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Feature not supported
147121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
148121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_FEATURE_NOT_SUPPORTED                       (0x0033)
149121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
150121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*  The Unregistration command has failed because the user wants to unregister on
151121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * an element for which he was not registered
152121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
153121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_NOT_REGISTERED                              (0x0034)
154121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
155121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
156121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* The Registration command has failed because the user wants to register on
157121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * an element for which he is already registered
158121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
159121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_ALREADY_REGISTERED                          (0x0035)
160121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
161121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*  Single Tag with Multiple
162121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao    Protocol support detected */
163121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_MULTIPLE_PROTOCOLS                          (0x0036)
164121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
165121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
166121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Feature not supported
167121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
168121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_MULTIPLE_TAGS                               (0x0037)
169121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
170121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
171121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * A DESELECT event has occurred
172121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
173121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_DESELECTED                                  (0x0038)
174121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
175121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
176121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * A RELEASE event has occurred
177121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
178121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_RELEASED                                    (0x0039)
179121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
180121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
181121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * The operation is currently not possible or not allowed
182121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
183121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_NOT_ALLOWED                                 (0x003A)
184121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
185121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
186c22a07fdcd13c148c0d2db7317397da2a6345f0bJizhou Liao * FW version error while performing FW download,
187c22a07fdcd13c148c0d2db7317397da2a6345f0bJizhou Liao * FW major version mismatch (cannot downgrade FW major version) or FW version already upto date
188c22a07fdcd13c148c0d2db7317397da2a6345f0bJizhou Liao * User may be trying to flash Mobile FW on top of Infra FW, which is not allowed
189c22a07fdcd13c148c0d2db7317397da2a6345f0bJizhou Liao * Download appropriate version of FW
190c22a07fdcd13c148c0d2db7317397da2a6345f0bJizhou Liao */
191c22a07fdcd13c148c0d2db7317397da2a6345f0bJizhou Liao#define NFCSTATUS_FW_VERSION_ERROR                            (0x003C)
192c22a07fdcd13c148c0d2db7317397da2a6345f0bJizhou Liao
193c22a07fdcd13c148c0d2db7317397da2a6345f0bJizhou Liao/*
194121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao *  The system is busy with the previous operation.
195121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
196121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_BUSY                                        (0x006F)
197121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
198121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
199121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* NDEF Mapping error codes */
200121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
201121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* The remote device (type) is not valid for this request. */
202121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_INVALID_REMOTE_DEVICE                       (0x001D)
203121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
204121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* Read operation failed */
205121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_READ_FAILED                                 (0x0014)
206121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
207121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
208121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Write operation failed
209121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
210121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_WRITE_FAILED                                (0x0015)
211121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
212121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* Non Ndef Compliant */
213121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_NO_NDEF_SUPPORT                             (0x0016)
214121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
215121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* Could not proceed further with the write operation: reached card EOF*/
216121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_EOF_NDEF_CONTAINER_REACHED                  (0x001A)
217121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
218121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* Incorrect number of bytes received from the card*/
219121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_INVALID_RECEIVE_LENGTH                      (0x001B)
220121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
221121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* The data format/composition is not understood/correct. */
222121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_INVALID_FORMAT                              (0x001C)
223121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
224121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
225121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* There is not sufficient storage available. */
226121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_INSUFFICIENT_STORAGE                        (0x001F)
227121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
228121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* The Ndef Format procedure has failed. */
229121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_FORMAT_ERROR                                (0x0023)
230121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
231121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* The NCI Cedit error */
232121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_CREDIT_TIMEOUT                              (0x0024)
233121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
234121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
235121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Response Time out for the control message(NFCC not responded)
236121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
237121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_RESPONSE_TIMEOUT                            (0x0025)
238121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
239121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
240121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Device is already connected
241121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
242121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_ALREADY_CONNECTED                           (0x0026)
243121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
244121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
245121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Device is already connected
246121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
247121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_ANOTHER_DEVICE_CONNECTED                    (0x0027)
248121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
249121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
250121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Single Target Detected and Activated
251121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
252121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_SINGLE_TAG_ACTIVATED                        (0x0028)
253121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
254121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
255121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Single Target Detected
256121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
257121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_SINGLE_TAG_DISCOVERED                       (0x0029)
258121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
259121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
260121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Secure element Detected and Activated
261121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
262121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_SECURE_ELEMENT_ACTIVATED                    (0x0028)
263121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
264121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
265121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Unknown error Status Codes
266121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
267121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_UNKNOWN_ERROR                               (0x00FE)
268121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
269121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
270121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Status code for failure
271121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
272121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_FAILED                                      (0x00FF)
273121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
274121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
275121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * The function/command has been aborted
276121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
277121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_CMD_ABORTED                                 (0x0002)
278121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
279121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
280121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * No target found after poll
281121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
282121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_NO_TARGET_FOUND                             (0x000A)
283121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
284121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* Attempt to disconnect a not connected remote device. */
285121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_NO_DEVICE_CONNECTED                         (0x000B)
286121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
287121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* External RF field detected. */
288121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_EXTERNAL_RF_DETECTED                        (0x000E)
289121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
290121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* Message is not allowed by the state machine
291121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * (e.g. configuration went wrong)
292121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
293121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_MSG_NOT_ALLOWED_BY_FSM                      (0x0010)
294121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
295121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
296121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * No access has been granted
297121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
298121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_ACCESS_DENIED                               (0x001E)
299121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
300121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* No registry node matches the specified input data. */
301121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_NODE_NOT_FOUND                              (0x0017)
302121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
303121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* The current module is busy ; one might retry later */
304121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_SMX_BAD_STATE                               (0x00F0)
305121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
306121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
307121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* The Abort mechanism has failed for unexpected reason: user can try again*/
308121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_ABORT_FAILED                                (0x00F2)
309121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
310121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
311121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/* The Registration command has failed because the user wants to register as target
312121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * on a operating mode not supported
313121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
314121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_REG_OPMODE_NOT_SUPPORTED                    (0x00F5)
315121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
316121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
317121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Shutdown in progress, cannot handle the request at this time.
318121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
319121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_SHUTDOWN                  (0x0091)
320121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
321121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
322121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Target is no more in RF field
323121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
324121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_TARGET_LOST               (0x0092)
325121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
326121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
327121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Request is rejected
328121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
329121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_REJECTED                  (0x0093)
330121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
331121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
332121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Target is not connected
333121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
334121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_TARGET_NOT_CONNECTED      (0x0094)
335121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
336121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
337121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Invalid handle for the operation
338121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
339121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_INVALID_HANDLE            (0x0095)
340121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
341121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
342121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Process aborted
343121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
344121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_ABORTED                   (0x0096)
345121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
346121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
347121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Requested command is not supported
348121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
349121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_COMMAND_NOT_SUPPORTED     (0x0097)
350121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
351121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
352121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Tag is not NDEF compilant
353121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
354121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_NON_NDEF_COMPLIANT        (0x0098)
355121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
356121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
357121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Not enough memory available to complete the requested operation
358121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
359121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_NOT_ENOUGH_MEMORY         (0x001F)
360121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
361121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
362121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Indicates incoming connection
363121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
364121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_INCOMING_CONNECTION        (0x0045)
365121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
366121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
367121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Indicates Connection was successful
368121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
369121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_CONNECTION_SUCCESS         (0x0046)
370121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
371121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao/*
372121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao * Indicates Connection failed
373121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao */
374121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#define NFCSTATUS_CONNECTION_FAILED          (0x0047)
375121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao
376121096a3511ea4ac559dea3ef7d39f0df00c97a6Jizhou Liao#endif /* PHNFCSTATUS_H */
377