mirror of
https://github.com/torvalds/linux.git
synced 2024-11-07 04:32:03 +00:00
4b10884eb4
This is the initial commit of the NFC Digital Protocol stack implementation. It offers an interface for devices that don't have an embedded NFC Digital protocol stack. The driver instantiates the digital stack by calling nfc_digital_allocate_device(). Within the nfc_digital_ops structure, the driver specifies a set of function pointers for driver operations. These functions must be implemented by the driver and are: in_configure_hw: Hardware configuration for RF technology and communication framing in initiator mode. This is a synchronous function. in_send_cmd: Initiator mode data exchange using RF technology and framing previously set with in_configure_hw. The peer response is returned through callback cb. If an io error occurs or the peer didn't reply within the specified timeout (ms), the error code is passed back through the resp pointer. This is an asynchronous function. tg_configure_hw: Hardware configuration for RF technology and communication framing in target mode. This is a synchronous function. tg_send_cmd: Target mode data exchange using RF technology and framing previously set with tg_configure_hw. The peer next command is returned through callback cb. If an io error occurs or the peer didn't reply within the specified timeout (ms), the error code is passed back through the resp pointer. This is an asynchronous function. tg_listen: Put the device in listen mode waiting for data from the peer device. This is an asynchronous function. tg_listen_mdaa: If supported, put the device in automatic listen mode with mode detection and automatic anti-collision. In this mode, the device automatically detects the RF technology and executes the anti-collision detection using the command responses specified in mdaa_params. The mdaa_params structure contains SENS_RES, NFCID1, and SEL_RES for 106A RF tech. NFCID2 and system code (sc) for 212F and 424F. The driver returns the NFC-DEP ATR_REQ command through cb. The digital stack deducts the RF tech by analyzing the SoD of the frame containing the ATR_REQ command. This is an asynchronous function. switch_rf: Turns device radio on or off. The stack does not call explicitly switch_rf to turn the radio on. A call to in|tg_configure_hw must turn the device radio on. abort_cmd: Discard the last sent command. Then the driver registers itself against the digital stack by using nfc_digital_register_device() which in turn registers the digital stack against the NFC core layer. The digital stack implements common NFC operations like dev_up(), dev_down(), start_poll(), stop_poll(), etc. This patch is only a skeleton and NFC operations are just stubs. Signed-off-by: Thierry Escande <thierry.escande@linux.intel.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
33 lines
769 B
Plaintext
33 lines
769 B
Plaintext
#
|
|
# NFC sybsystem configuration
|
|
#
|
|
|
|
menuconfig NFC
|
|
depends on NET
|
|
depends on RFKILL || !RFKILL
|
|
tristate "NFC subsystem support"
|
|
default n
|
|
help
|
|
Say Y here if you want to build support for NFC (Near field
|
|
communication) devices.
|
|
|
|
To compile this support as a module, choose M here: the module will
|
|
be called nfc.
|
|
|
|
config NFC_DIGITAL
|
|
depends on NFC
|
|
tristate "NFC Digital Protocol stack support"
|
|
default n
|
|
help
|
|
Say Y if you want to build NFC digital protocol stack support.
|
|
This is needed by NFC chipsets whose firmware only implement
|
|
the NFC analog layer.
|
|
|
|
To compile this support as a module, choose M here: the module will
|
|
be called nfc_digital.
|
|
|
|
source "net/nfc/nci/Kconfig"
|
|
source "net/nfc/hci/Kconfig"
|
|
|
|
source "drivers/nfc/Kconfig"
|