• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /******************************************************************************
2  *
3  *  Copyright (C) 2010-2013 Broadcom Corporation
4  *
5  *  Licensed under the Apache License, Version 2.0 (the "License");
6  *  you may not use this file except in compliance with the License.
7  *  You may obtain a copy of the License at:
8  *
9  *  http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  *
17  ******************************************************************************/
18 
19 
20 /******************************************************************************
21  *
22  *  NFA reader/writer API functions
23  *
24  ******************************************************************************/
25 #ifndef NFA_RW_API_H
26 #define NFA_RW_API_H
27 
28 #include "nfc_target.h"
29 #include "nfa_api.h"
30 
31 /*****************************************************************************
32 **  Constants and data types
33 *****************************************************************************/
34 
35 /*****************************************************************************
36 **  NFA T3T Constants and definitions
37 *****************************************************************************/
38 
39 /* Block descriptor. (For non-NDEF read/write */
40 typedef struct
41 {
42     UINT16  service_code;       /* Service code for the block   */
43     UINT16  block_number;       /* Block number.                */
44 } tNFA_T3T_BLOCK_DESC;
45 
46 
47 
48 /*****************************************************************************
49 **  External Function Declarations
50 *****************************************************************************/
51 #ifdef __cplusplus
52 extern "C"
53 {
54 #endif
55 
56 /*******************************************************************************
57 **
58 ** Function         NFA_RwDetectNDef
59 **
60 ** Description      Perform the NDEF detection procedure  using the appropriate
61 **                  method for the currently activated tag.
62 **
63 **                  Upon successful completion of NDEF detection, a
64 **                  NFA_NDEF_DETECT_EVT will be sent, to notify the application
65 **                  of the NDEF attributes (NDEF total memory size, current
66 **                  size, etc.).
67 **
68 **                  It is not mandatory to call this function -  NFA_RwReadNDef
69 **                  and NFA_RwWriteNDef will perform NDEF detection internally if
70 **                  not performed already. This API may be called to get a
71 **                  tag's NDEF size before issuing a write-request.
72 **
73 ** Returns:
74 **                  NFA_STATUS_OK if successfully initiated
75 **                  NFC_STATUS_REFUSED if tag does not support NDEF
76 **                  NFA_STATUS_FAILED otherwise
77 **
78 *******************************************************************************/
79 NFC_API extern tNFA_STATUS NFA_RwDetectNDef (void);
80 
81 /*******************************************************************************
82 **
83 ** Function         NFA_RwReadNDef
84 **
85 ** Description      Read NDEF message from tag. This function will internally
86 **                  perform the NDEF detection procedure (if not performed
87 **                  previously), and read the NDEF tag data using the
88 **                  appropriate method for the currently activated tag.
89 **
90 **                  Upon successful completion of NDEF detection (if performed),
91 **                  a NFA_NDEF_DETECT_EVT will be sent, to notify the application
92 **                  of the NDEF attributes (NDEF total memory size, current size,
93 **                  etc.).
94 **
95 **                  Upon receiving the NDEF message, the message will be sent to
96 **                  the handler registered with NFA_RegisterNDefTypeHandler or
97 **                  NFA_RequestExclusiveRfControl (if exclusive RF mode is active)
98 **
99 **
100 ** Returns:
101 **                  NFA_STATUS_OK if successfully initiated
102 **                  NFC_STATUS_REFUSED if tag does not support NDEF
103 **                  NFC_STATUS_NOT_INITIALIZED if NULL NDEF was detected on the tag
104 **                  NFA_STATUS_FAILED otherwise
105 **
106 *******************************************************************************/
107 NFC_API extern tNFA_STATUS NFA_RwReadNDef (void);
108 
109 /*******************************************************************************
110 **
111 ** Function         NFA_RwWriteNDef
112 **
113 ** Description      Write NDEF data to the activated tag. This function will
114 **                  internally perform NDEF detection if necessary, and write
115 **                  the NDEF tag data using the appropriate method for the
116 **                  currently activated tag.
117 **
118 **                  When the entire message has been written, or if an error
119 **                  occurs, the app will be notified with NFA_RW_WRITE_CPLT_EVT.
120 **
121 **                  p_data needs to be persistent until NFA_RW_WRITE_CPLT_EVT
122 **
123 **
124 ** Returns:
125 **                  NFA_STATUS_OK if successfully initiated
126 **                  NFC_STATUS_REFUSED if tag does not support NDEF/locked
127 **                  NFA_STATUS_FAILED otherwise
128 **
129 *******************************************************************************/
130 NFC_API extern tNFA_STATUS NFA_RwWriteNDef (UINT8 *p_data, UINT32 len);
131 
132 
133 /*****************************************************************************
134 **
135 ** Function         NFA_RwPresenceCheck
136 **
137 ** Description      Check if the tag is still in the field.
138 **
139 **                  The NFA_RW_PRESENCE_CHECK_EVT w/ status is used to
140 **                  indicate presence or non-presence.
141 **
142 ** Returns
143 **                  NFA_STATUS_OK if successfully initiated
144 **                  NFA_STATUS_FAILED otherwise
145 **
146 *****************************************************************************/
147 NFC_API extern tNFA_STATUS NFA_RwPresenceCheck (void);
148 
149 /*****************************************************************************
150 **
151 ** Function         NFA_RwFormatTag
152 **
153 ** Description      Check if the tag is NDEF Formatable. If yes Format the
154 **                  tag
155 **
156 **                  The NFA_RW_FORMAT_CPLT_EVT w/ status is used to
157 **                  indicate if tag is formated or not.
158 **
159 ** Returns
160 **                  NFA_STATUS_OK if successfully initiated
161 **                  NFA_STATUS_FAILED otherwise
162 **
163 *****************************************************************************/
164 NFC_API extern tNFA_STATUS NFA_RwFormatTag (void);
165 
166 /*******************************************************************************
167 ** LEGACY / PROPRIETARY TAG READ AND WRITE APIs
168 *******************************************************************************/
169 
170 
171 /*******************************************************************************
172 **
173 ** Function         NFA_RwLocateTlv
174 **
175 ** Description:
176 **      Search for the Lock/Memory contril TLV on the activated Type1/Type2 tag
177 **
178 **      Data is returned to the application using the NFA_TLV_DETECT_EVT. When
179 **      search operation has completed, or if an error occurs, the app will be
180 **      notified with NFA_TLV_DETECT_EVT.
181 **
182 ** Description      Perform the TLV detection procedure  using the appropriate
183 **                  method for the currently activated tag.
184 **
185 **                  Upon successful completion of TLV detection in T1/T2 tag, a
186 **                  NFA_TLV_DETECT_EVT will be sent, to notify the application
187 **                  of the TLV attributes (total lock/reserved bytes etc.).
188 **                  However if the TLV type specified is NDEF then it is same as
189 **                  calling NFA_RwDetectNDef and should expect to receive
190 **                  NFA_NDEF_DETECT_EVT instead of NFA_TLV_DETECT_EVT
191 **
192 **                  It is not mandatory to call this function -  NFA_RwDetectNDef,
193 **                  NFA_RwReadNDef and NFA_RwWriteNDef will perform TLV detection
194 **                  internally if not performed already. An application may call
195 **                  this API to check the a tag/card-emulator's total Reserved/
196 **                  Lock bytes before issuing a write-request.
197 **
198 ** Returns:
199 **                  NFA_STATUS_OK if successfully initiated
200 **                  NFC_STATUS_REFUSED if tlv_type is NDEF & tag won't support NDEF
201 **                  NFA_STATUS_FAILED otherwise
202 **
203 *******************************************************************************/
204 NFC_API extern tNFA_STATUS NFA_RwLocateTlv (UINT8 tlv_type);
205 
206 /*******************************************************************************
207 **
208 ** Function         NFA_RwSetTagReadOnly
209 **
210 ** Description:
211 **      Sets tag as read only.
212 **
213 **      When tag is set as read only, or if an error occurs, the app will be
214 **      notified with NFA_SET_TAG_RO_EVT.
215 **
216 ** Returns:
217 **      NFA_STATUS_OK if successfully initiated
218 **      NFA_STATUS_REJECTED if protocol is not T1/T2/ISO15693
219 **                 (or) if hard lock is not requested for protocol ISO15693
220 **      NFA_STATUS_FAILED otherwise
221 **
222 *******************************************************************************/
223 NFC_API extern tNFA_STATUS NFA_RwSetTagReadOnly (BOOLEAN b_hard_lock);
224 
225 /*******************************************************************************
226 **
227 ** Function         NFA_RwT1tRid
228 **
229 ** Description:
230 **      Send a RID command to the activated Type 1 tag.
231 **
232 **      Data is returned to the application using the NFA_DATA_EVT. When the read
233 **      operation has completed, or if an error occurs, the app will be notified with
234 **      NFA_READ_CPLT_EVT.
235 **
236 ** Returns:
237 **      NFA_STATUS_OK if successfully initiated
238 **      NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated
239 **      NFA_STATUS_FAILED otherwise
240 **
241 *******************************************************************************/
242 NFC_API extern tNFA_STATUS NFA_RwT1tRid (void);
243 
244 /*******************************************************************************
245 **
246 ** Function         NFA_RwT1tReadAll
247 **
248 ** Description:
249 **      Send a RALL command to the activated Type 1 tag.
250 **
251 **      Data is returned to the application using the NFA_DATA_EVT. When the read
252 **      operation has completed, or if an error occurs, the app will be notified with
253 **      NFA_READ_CPLT_EVT.
254 **
255 ** Returns:
256 **      NFA_STATUS_OK if successfully initiated
257 **      NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated
258 **      NFA_STATUS_FAILED otherwise
259 **
260 *******************************************************************************/
261 NFC_API extern tNFA_STATUS NFA_RwT1tReadAll (void);
262 
263 /*******************************************************************************
264 **
265 ** Function         NFA_RwT1tRead
266 **
267 ** Description:
268 **      Send a READ command to the activated Type 1 tag.
269 **
270 **      Data is returned to the application using the NFA_DATA_EVT. When the read
271 **      operation has completed, or if an error occurs, the app will be notified with
272 **      NFA_READ_CPLT_EVT.
273 **
274 ** Returns:
275 **      NFA_STATUS_OK if successfully initiated
276 **      NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated
277 **      NFA_STATUS_FAILED otherwise
278 **
279 *******************************************************************************/
280 NFC_API extern tNFA_STATUS NFA_RwT1tRead (UINT8 block_number, UINT8 index);
281 
282 /*******************************************************************************
283 **
284 ** Function         NFA_RwT1tWrite
285 **
286 ** Description:
287 **      Send a WRITE command to the activated Type 1 tag.
288 **
289 **      Data is returned to the application using the NFA_DATA_EVT. When the write
290 **      operation has completed, or if an error occurs, the app will be notified with
291 **      NFA_WRITE_CPLT_EVT.
292 **
293 ** Returns:
294 **      NFA_STATUS_OK if successfully initiated
295 **      NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated
296 **      NFA_STATUS_FAILED otherwise
297 **
298 *******************************************************************************/
299 NFC_API extern tNFA_STATUS NFA_RwT1tWrite (UINT8    block_number,
300                                            UINT8    index,
301                                            UINT8    data,
302                                            BOOLEAN  b_erase);
303 
304 /*******************************************************************************
305 **
306 ** Function         NFA_RwT1tReadSeg
307 **
308 ** Description:
309 **      Send a RSEG command to the activated Type 1 tag.
310 **
311 **      Data is returned to the application using the NFA_DATA_EVT. When the read
312 **      operation has completed, or if an error occurs, the app will be notified with
313 **      NFA_READ_CPLT_EVT.
314 **
315 ** Returns:
316 **      NFA_STATUS_OK if successfully initiated
317 **      NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated
318 **      NFA_STATUS_FAILED otherwise
319 **
320 *******************************************************************************/
321 NFC_API extern tNFA_STATUS NFA_RwT1tReadSeg (UINT8 segment_number);
322 
323 /*******************************************************************************
324 **
325 ** Function         NFA_RwT1tRead8
326 **
327 ** Description:
328 **      Send a READ8 command to the activated Type 1 tag.
329 **
330 **      Data is returned to the application using the NFA_DATA_EVT. When the read
331 **      operation has completed, or if an error occurs, the app will be notified with
332 **      NFA_READ_CPLT_EVT.
333 **
334 ** Returns:
335 **      NFA_STATUS_OK if successfully initiated
336 **      NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated
337 **      NFA_STATUS_FAILED otherwise
338 **
339 *******************************************************************************/
340 NFC_API extern tNFA_STATUS NFA_RwT1tRead8 (UINT8 block_number);
341 
342 /*******************************************************************************
343 **
344 ** Function         NFA_RwT1tWrite8
345 **
346 ** Description:
347 **      Send a WRITE8_E / WRITE8_NE command to the activated Type 1 tag.
348 **
349 **      Data is returned to the application using the NFA_DATA_EVT. When the read
350 **      operation has completed, or if an error occurs, the app will be notified with
351 **      NFA_READ_CPLT_EVT.
352 **
353 ** Returns:
354 **      NFA_STATUS_OK if successfully initiated
355 **      NFA_STATUS_NOT_INITIALIZED: type 1 tag not activated
356 **      NFA_STATUS_FAILED otherwise
357 **
358 *******************************************************************************/
359 NFC_API extern tNFA_STATUS NFA_RwT1tWrite8 (UINT8   block_number,
360                                             UINT8  *p_data,
361                                             BOOLEAN b_erase);
362 
363 /*******************************************************************************
364 **
365 ** Function         NFA_RwT2tRead
366 **
367 ** Description:
368 **      Send a READ command to the activated Type 2 tag.
369 **
370 **      Data is returned to the application using the NFA_DATA_EVT. When the read
371 **      operation has completed, or if an error occurs, the app will be notified with
372 **      NFA_READ_CPLT_EVT.
373 **
374 ** Returns:
375 **      NFA_STATUS_OK if successfully initiated
376 **      NFA_STATUS_NOT_INITIALIZED: type 2 tag not activated
377 **      NFA_STATUS_FAILED otherwise
378 **
379 *******************************************************************************/
380 NFC_API extern tNFA_STATUS NFA_RwT2tRead (UINT8 block_number);
381 
382 /*******************************************************************************
383 **
384 ** Function         NFA_RwT2tWrite
385 **
386 ** Description:
387 **      Send an WRITE command to the activated Type 2 tag.
388 **
389 **      When the write operation has completed (or if an error occurs), the
390 **      app will be notified with NFA_WRITE_CPLT_EVT.
391 **
392 ** Returns:
393 **      NFA_STATUS_OK if successfully initiated
394 **      NFA_STATUS_NOT_INITIALIZED: type 2 tag not activated
395 **      NFA_STATUS_FAILED otherwise
396 **
397 *******************************************************************************/
398 NFC_API extern tNFA_STATUS NFA_RwT2tWrite (UINT8 block_number,  UINT8 *p_data);
399 
400 /*******************************************************************************
401 **
402 ** Function         NFA_RwT2tSectorSelect
403 **
404 ** Description:
405 **      Send SECTOR SELECT command to the activated Type 2 tag.
406 **
407 **      When the sector select operation has completed (or if an error occurs), the
408 **      app will be notified with NFA_SECTOR_SELECT_CPLT_EVT.
409 **
410 ** Returns:
411 **      NFA_STATUS_OK if successfully initiated
412 **      NFA_STATUS_NOT_INITIALIZED: type 2 tag not activated
413 **      NFA_STATUS_FAILED otherwise
414 **
415 *******************************************************************************/
416 NFC_API extern tNFA_STATUS NFA_RwT2tSectorSelect (UINT8 sector_number);
417 
418 /*******************************************************************************
419 **
420 ** Function         NFA_RwT3tRead
421 **
422 ** Description:
423 **      Send a CHECK (read) command to the activated Type 3 tag.
424 **
425 **      Data is returned to the application using the NFA_RW_DATA_EVT. When the read
426 **      operation has completed, or if an error occurs, the app will be notified with
427 **      NFA_READ_CPLT_EVT.
428 **
429 ** Returns:
430 **      NFA_STATUS_OK if successfully initiated
431 **      NFA_STATUS_NOT_INITIALIZED: type 3 tag not activated
432 **      NFA_STATUS_FAILED otherwise
433 **
434 *******************************************************************************/
435 NFC_API extern tNFA_STATUS NFA_RwT3tRead (UINT8                num_blocks,
436                                           tNFA_T3T_BLOCK_DESC *t3t_blocks);
437 
438 /*******************************************************************************
439 **
440 ** Function         NFA_RwT3tWrite
441 **
442 ** Description:
443 **      Send an UPDATE (write) command to the activated Type 3 tag.
444 **
445 **      When the write operation has completed (or if an error occurs), the
446 **      app will be notified with NFA_WRITE_CPLT_EVT.
447 **
448 ** Returns:
449 **      NFA_STATUS_OK if successfully initiated
450 **      NFA_STATUS_NOT_INITIALIZED: type 3 tag not activated
451 **      NFA_STATUS_FAILED otherwise
452 **
453 *******************************************************************************/
454 NFC_API extern tNFA_STATUS NFA_RwT3tWrite (UINT8                num_blocks,
455                                            tNFA_T3T_BLOCK_DESC *t3t_blocks,
456                                            UINT8               *p_data);
457 
458 /*******************************************************************************
459 **
460 ** Function         NFA_RwI93Inventory
461 **
462 ** Description:
463 **      Send Inventory command to the activated ISO 15693 tag with/without AFI..
464 **      If UID is provided then set UID[0]:MSB, ... UID[7]:LSB
465 **
466 **      When the write operation has completed (or if an error occurs), the
467 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
468 **
469 ** Returns:
470 **      NFA_STATUS_OK if successfully initiated
471 **      NFA_STATUS_NOT_INITIALIZED: ISO 15693 tag not activated
472 **      NFA_STATUS_FAILED otherwise
473 **
474 *******************************************************************************/
475 NFC_API extern tNFA_STATUS NFA_RwI93Inventory (BOOLEAN afi_present, UINT8 afi, UINT8 *p_uid);
476 
477 /*******************************************************************************
478 **
479 ** Function         NFA_RwI93StayQuiet
480 **
481 ** Description:
482 **      Send Stay Quiet command to the activated ISO 15693 tag.
483 **
484 **      When the operation has completed (or if an error occurs), the
485 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
486 **
487 ** Returns:
488 **      NFA_STATUS_OK if successfully initiated
489 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
490 **      NFA_STATUS_FAILED otherwise
491 **
492 *******************************************************************************/
493 NFC_API extern tNFA_STATUS NFA_RwI93StayQuiet (void);
494 
495 /*******************************************************************************
496 **
497 ** Function         NFA_RwI93ReadSingleBlock
498 **
499 ** Description:
500 **      Send Read Single Block command to the activated ISO 15693 tag.
501 **
502 **      Data is returned to the application using the NFA_DATA_EVT. When the read
503 **      operation has completed, or if an error occurs, the app will be notified with
504 **      NFA_I93_CMD_CPLT_EVT.
505 **
506 ** Returns:
507 **      NFA_STATUS_OK if successfully initiated
508 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
509 **      NFA_STATUS_FAILED otherwise
510 **
511 *******************************************************************************/
512 NFC_API extern tNFA_STATUS NFA_RwI93ReadSingleBlock (UINT8 block_number);
513 
514 /*******************************************************************************
515 **
516 ** Function         NFA_RwI93WriteSingleBlock
517 **
518 ** Description:
519 **      Send Write Single Block command to the activated ISO 15693 tag.
520 **
521 **      When the write operation has completed (or if an error occurs), the
522 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
523 **
524 ** Returns:
525 **      NFA_STATUS_OK if successfully initiated
526 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
527 **      NFA_STATUS_FAILED otherwise
528 **
529 *******************************************************************************/
530 NFC_API extern tNFA_STATUS NFA_RwI93WriteSingleBlock (UINT8 block_number,
531                                                       UINT8 *p_data);
532 
533 /*******************************************************************************
534 **
535 ** Function         NFA_RwI93LockBlock
536 **
537 ** Description:
538 **      Send Lock block command to the activated ISO 15693 tag.
539 **
540 **      When the operation has completed (or if an error occurs), the
541 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
542 **
543 ** Returns:
544 **      NFA_STATUS_OK if successfully initiated
545 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
546 **      NFA_STATUS_FAILED otherwise
547 **
548 *******************************************************************************/
549 NFC_API extern tNFA_STATUS NFA_RwI93LockBlock (UINT8 block_number);
550 
551 /*******************************************************************************
552 **
553 ** Function         NFA_RwI93ReadMultipleBlocks
554 **
555 ** Description:
556 **      Send Read Multiple Block command to the activated ISO 15693 tag.
557 **
558 **      Data is returned to the application using the NFA_DATA_EVT. When the read
559 **      operation has completed, or if an error occurs, the app will be notified with
560 **      NFA_I93_CMD_CPLT_EVT.
561 **
562 ** Returns:
563 **      NFA_STATUS_OK if successfully initiated
564 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
565 **      NFA_STATUS_FAILED otherwise
566 **
567 *******************************************************************************/
568 NFC_API extern tNFA_STATUS NFA_RwI93ReadMultipleBlocks (UINT8  first_block_number,
569                                                         UINT16 number_blocks);
570 
571 /*******************************************************************************
572 **
573 ** Function         NFA_RwI93WriteMultipleBlocks
574 **
575 ** Description:
576 **      Send Write Multiple Block command to the activated ISO 15693 tag.
577 **
578 **      When the write operation has completed (or if an error occurs), the
579 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
580 **
581 ** Returns:
582 **      NFA_STATUS_OK if successfully initiated
583 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
584 **      NFA_STATUS_FAILED otherwise
585 **
586 *******************************************************************************/
587 NFC_API extern tNFA_STATUS NFA_RwI93WriteMultipleBlocks (UINT8  first_block_number,
588                                                          UINT16 number_blocks,
589                                                          UINT8  *p_data);
590 
591 /*******************************************************************************
592 **
593 ** Function         NFA_RwI93Select
594 **
595 ** Description:
596 **      Send Select command to the activated ISO 15693 tag.
597 **
598 **      UID[0]: 0xE0, MSB
599 **      UID[1]: IC Mfg Code
600 **      ...
601 **      UID[7]: LSB
602 **
603 **      When the operation has completed (or if an error occurs), the
604 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
605 **
606 ** Returns:
607 **      NFA_STATUS_OK if successfully initiated
608 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
609 **      NFA_STATUS_FAILED otherwise
610 **
611 *******************************************************************************/
612 NFC_API extern tNFA_STATUS NFA_RwI93Select (UINT8 *p_uid);
613 
614 /*******************************************************************************
615 **
616 ** Function         NFA_RwI93ResetToReady
617 **
618 ** Description:
619 **      Send Reset to ready command to the activated ISO 15693 tag.
620 **
621 **      When the operation has completed (or if an error occurs), the
622 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
623 **
624 ** Returns:
625 **      NFA_STATUS_OK if successfully initiated
626 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
627 **      NFA_STATUS_FAILED otherwise
628 **
629 *******************************************************************************/
630 NFC_API extern tNFA_STATUS NFA_RwI93ResetToReady (void);
631 
632 /*******************************************************************************
633 **
634 ** Function         NFA_RwI93WriteAFI
635 **
636 ** Description:
637 **      Send Write AFI command to the activated ISO 15693 tag.
638 **
639 **      When the operation has completed (or if an error occurs), the
640 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
641 **
642 ** Returns:
643 **      NFA_STATUS_OK if successfully initiated
644 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
645 **      NFA_STATUS_FAILED otherwise
646 **
647 *******************************************************************************/
648 NFC_API extern tNFA_STATUS NFA_RwI93WriteAFI (UINT8 afi);
649 
650 /*******************************************************************************
651 **
652 ** Function         NFA_RwI93LockAFI
653 **
654 ** Description:
655 **      Send Lock AFI command to the activated ISO 15693 tag.
656 **
657 **      When the operation has completed (or if an error occurs), the
658 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
659 **
660 ** Returns:
661 **      NFA_STATUS_OK if successfully initiated
662 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
663 **      NFA_STATUS_FAILED otherwise
664 **
665 *******************************************************************************/
666 NFC_API extern tNFA_STATUS NFA_RwI93LockAFI (void);
667 
668 /*******************************************************************************
669 **
670 ** Function         NFA_RwI93WriteDSFID
671 **
672 ** Description:
673 **      Send Write DSFID command to the activated ISO 15693 tag.
674 **
675 **      When the operation has completed (or if an error occurs), the
676 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
677 **
678 ** Returns:
679 **      NFA_STATUS_OK if successfully initiated
680 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
681 **      NFA_STATUS_FAILED otherwise
682 **
683 *******************************************************************************/
684 NFC_API extern tNFA_STATUS NFA_RwI93WriteDSFID (UINT8 dsfid);
685 
686 /*******************************************************************************
687 **
688 ** Function         NFA_RwI93LockDSFID
689 **
690 ** Description:
691 **      Send Lock DSFID command to the activated ISO 15693 tag.
692 **
693 **      When the operation has completed (or if an error occurs), the
694 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
695 **
696 ** Returns:
697 **      NFA_STATUS_OK if successfully initiated
698 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
699 **      NFA_STATUS_FAILED otherwise
700 **
701 *******************************************************************************/
702 NFC_API extern tNFA_STATUS NFA_RwI93LockDSFID (void);
703 
704 /*******************************************************************************
705 **
706 ** Function         NFA_RwI93GetSysInfo
707 **
708 ** Description:
709 **      Send Get system information command to the activated ISO 15693 tag.
710 **      If UID is provided then set UID[0]:MSB, ... UID[7]:LSB
711 **
712 **      When the operation has completed (or if an error occurs), the
713 **      app will be notified with NFA_I93_CMD_CPLT_EVT.
714 **
715 ** Returns:
716 **      NFA_STATUS_OK if successfully initiated
717 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
718 **      NFA_STATUS_FAILED otherwise
719 **
720 *******************************************************************************/
721 NFC_API extern tNFA_STATUS NFA_RwI93GetSysInfo (UINT8 *p_uid);
722 
723 /*******************************************************************************
724 **
725 ** Function         NFA_RwI93GetMultiBlockSecurityStatus
726 **
727 ** Description:
728 **      Send Get Multiple block security status command to the activated ISO 15693 tag.
729 **
730 **      Data is returned to the application using the NFA_DATA_EVT. When the read
731 **      operation has completed, or if an error occurs, the app will be notified with
732 **      NFA_I93_CMD_CPLT_EVT.
733 **
734 ** Returns:
735 **      NFA_STATUS_OK if successfully initiated
736 **      NFA_STATUS_WRONG_PROTOCOL: ISO 15693 tag not activated
737 **      NFA_STATUS_FAILED otherwise
738 **
739 *******************************************************************************/
740 NFC_API extern tNFA_STATUS NFA_RwI93GetMultiBlockSecurityStatus (UINT8  first_block_number,
741                                                                  UINT16 number_blocks);
742 
743 #ifdef __cplusplus
744 }
745 #endif
746 
747 #endif /* NFA_RW_API_H */
748