Lines Matching +full:need +full:- +full:phy +full:- +full:for +full:- +full:wake
2 HCI backend for NFC Core
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 ---
23 context blocks waiting for response) or asynchronously (the response is returned
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 -------------------
50 This is consistent with the driver need to send commands to proprietary gates
54 ----------------
57 the HCI management. This makes it easier to maintain a driver for a chip that
58 can be connected using various phy (i2c, spi, ...)
61 --------------
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
99 the p2p connection setup with hardware parameters that need to be passed back
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
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
111 for standard processing. The data exchange command itself must be sent
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
125 PHY Management
126 --------------
137 turn the phy on (power on), make it ready to transfer data
139 turn the phy off
142 layers such as an llc to store the frame for re-emission, this
144 result (return 0 for success, negative for failure).
149 ---
187 easy to mix any physical link with any llc for a given chip driver.
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 -----------------------------------------------
237 HCI command, setup a local wait queue on stack, and wait_event() for completion.
255 The completion callback will then wake the syscall context.
267 ------------------------------------------
272 to also execute other commands (for example, handling the
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