Lines Matching +full:i2c +full:- +full:gate
5 - Author: Eric Lapuyade, Samuel Ortiz
6 - Contact: eric.lapuyade@intel.com, samuel.ortiz@intel.com
9 -------
12 enables easy writing of HCI-based NFC drivers. The HCI layer runs as an NFC Core
17 ---
30 - one for executing commands : nfc_hci_msg_tx_work(). Only one command
32 - one for dispatching received events and commands : nfc_hci_msg_rx_work().
35 --------------------------
41 In case the chip supports pre-opened gates and pseudo-static pipes, the driver
45 -------------------
47 A gate defines the 'port' where some service can be found. In order to access
48 a service, one must create a pipe to that gate and open it. In this
54 ----------------
58 can be connected using various phy (i2c, spi, ...)
61 --------------
76 int (*target_from_gate) (struct nfc_hci_dev *hdev, u8 gate,
78 int (*complete_target_discovered) (struct nfc_hci_dev *hdev, u8 gate,
86 int (*event_received)(struct nfc_hci_dev *hdev, u8 gate, u8 event,
90 - open() and close() shall turn the hardware on and off.
91 - hci_ready() is an optional entry point that is called right after the hci
94 - xmit() shall simply write a frame to the physical link.
95 - start_poll() is an optional entrypoint that shall set the hardware in polling
98 - dep_link_up() is called after a p2p target has been detected, to finish
101 - dep_link_down() is called to bring the p2p link down.
102 - target_from_gate() is an optional entrypoint to return the nfc protocols
103 corresponding to a proprietary gate.
104 - complete_target_discovered() is an optional entry point to let the driver
107 - im_transceive() must be implemented by the driver if proprietary HCI commands
113 - tm_send() is called to send data in the case of a p2p connection
114 - check_presence() is an optional entry point that will be called regularly
118 - event_received() is called to handle an event coming from the chip. Driver
122 using nfc_hci_recv_frame(). HCI will take care of re-aggregation and handling
126 --------------
128 The physical link (i2c, ...) management is defined by the following structure::
142 layers such as an llc to store the frame for re-emission, this
149 ---
190 ----------------
192 An HCI based driver for an NXP PN544, connected through I2C bus, and using
196 ------------------
199 - IRQ handler (IRQH):
203 - SHDLC State Machine worker (SMW)
209 - HCI Tx Cmd worker (MSGTXWQ)
215 - HCI Rx worker (MSGRXWQ)
219 - Syscall context from a userspace call (SYSCALL)
224 -----------------------------------------------
229 int nfc_hci_send_cmd (struct nfc_hci_dev *hdev, u8 gate, u8 cmd,
267 ------------------------------------------
274 ANY_GET_PARAMETER to the reader A gate to get information on the target
280 ----------------
290 - driver (pn544) fails to deliver an incoming frame: it stores the error such
296 - SMW is basically a background thread to handle incoming and outgoing shdlc
302 - HCI: if an internal HCI error happens (frame is lost), or HCI is reported an
307 - NFC Core: when NFC Core is notified of an error from below and polling is