linux/net/nfc
Thierry Escande 7d0911c02f NFC Digital: Add initiator NFC-DEP support
This adds support for NFC-DEP protocol in initiator mode for NFC-A and
NFC-F technologies.

When a target is detected, the process flow is as follow:

For NFC-A technology:
1 - The digital stack receives a SEL_RES as the reply of the SEL_REQ
    command.
2   - If b7 of SEL_RES is set, the peer device is configure for NFC-DEP
      protocol. NFC core is notified through nfc_targets_found().
      Execution continues at step 4.
3   - Otherwise, it's a tag and the NFC core is notified. Detection
      ends.
4 - The digital stacks sends an ATR_REQ command containing a randomly
    generated NFCID3 and the general bytes obtained from the LLCP layer
    of NFC core.

For NFC-F technology:
1 - The digital stack receives a SENSF_RES as the reply of the
    SENSF_REQ command.
2   - If B1 and B2 of NFCID2 are 0x01 and 0xFE respectively, the peer
      device is configured for NFC-DEP protocol. NFC core is notified
      through nfc_targets_found(). Execution continues at step 4.
3   - Otherwise it's a type 3 tag. NFC core is notified. Detection
      ends.
4 - The digital stacks sends an ATR_REQ command containing the NFC-F
    NFCID2 as NFCID3 and the general bytes obtained from the LLCP layer
    of NFC core.

For both technologies:
5 - The digital stacks receives the ATR_RES response containing the
    NFCID3 and the general bytes of the peer device.
6 - The digital stack notifies NFC core that the DEP link is up through
    nfc_dep_link_up().
7 - The NFC core performs data exchange through tm_transceive().
8 - The digital stack sends a DEP_REQ command containing an I PDU with
    the data from NFC core.
9 - The digital stack receives a DEP_RES command
10  - If the DEP_RES response contains a supervisor PDU with timeout
      extension request (RTOX) the digital stack sends a DEP_REQ
      command containing a supervisor PDU acknowledging the RTOX
      request. The execution continues at step 9.
11  - If the DEP_RES response contains an I PDU, the response data is
      passed back to NFC core through the response callback. The
      execution continues at step 8.

Signed-off-by: Thierry Escande <thierry.escande@linux.intel.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2013-09-25 02:02:27 +02:00
..
hci NFC: hci: Fix enable/disable confusion 2013-08-14 01:13:36 +02:00
nci NFC: NCI: Simplify NCI SPI to become a simple framing/checking layer 2013-09-25 01:35:41 +02:00
af_nfc.c NFC: Core code identation fixes 2012-03-06 15:16:25 -05:00
core.c NFC: Set active target upon DEP up event reception 2013-09-25 01:35:41 +02:00
digital_core.c NFC Digital: Add initiator NFC-DEP support 2013-09-25 02:02:27 +02:00
digital_dep.c NFC Digital: Add initiator NFC-DEP support 2013-09-25 02:02:27 +02:00
digital_technology.c NFC Digital: Add initiator NFC-DEP support 2013-09-25 02:02:27 +02:00
digital.h NFC Digital: Add initiator NFC-DEP support 2013-09-25 02:02:27 +02:00
Kconfig NFC Digital: Add NFC-F technology support 2013-09-25 02:02:25 +02:00
llcp_commands.c NFC: Rename nfc_llcp_disconnect() to nfc_llcp_send_disconnect() 2013-06-14 13:45:04 +02:00
llcp_core.c NFC: llcp: Fix the well known services endianness 2013-06-14 13:45:10 +02:00
llcp_sock.c NFC: llcp: Fix non blocking sockets connections 2013-06-14 13:45:07 +02:00
llcp.h NFC: llcp: Fix non blocking sockets connections 2013-06-14 13:45:07 +02:00
Makefile NFC Digital: Add initiator NFC-DEP support 2013-09-25 02:02:27 +02:00
netlink.c NFC: netlink: Add result of firmware operation to completion event 2013-08-14 01:12:58 +02:00
nfc.h NFC: netlink: Add result of firmware operation to completion event 2013-08-14 01:12:58 +02:00
rawsock.c NFC: Fix some code style and whitespace issues 2012-10-26 18:26:52 +02:00