NFC: Update pn544 documentation
The pn544 driver no longer has a /dev/pn544 interface nor a sysfs one. Reported-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
		
							parent
							
								
									8a0ecfe74b
								
							
						
					
					
						commit
						1353a10c47
					
				@ -1,32 +1,15 @@
 | 
			
		||||
Kernel driver for the NXP Semiconductors PN544 Near Field
 | 
			
		||||
Communication chip
 | 
			
		||||
 | 
			
		||||
Author: Jari Vanhala
 | 
			
		||||
Contact: Matti Aaltonen (matti.j.aaltonen at nokia.com)
 | 
			
		||||
 | 
			
		||||
General
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
The PN544 is an integrated transmission module for contactless
 | 
			
		||||
communication. The driver goes under drives/nfc/ and is compiled as a
 | 
			
		||||
module named "pn544". It registers a misc device and creates a device
 | 
			
		||||
file named "/dev/pn544".
 | 
			
		||||
module named "pn544".
 | 
			
		||||
 | 
			
		||||
Host Interfaces: I2C, SPI and HSU, this driver supports currently only I2C.
 | 
			
		||||
 | 
			
		||||
The Interface
 | 
			
		||||
-------------
 | 
			
		||||
 | 
			
		||||
The driver offers a sysfs interface for a hardware test and an IOCTL
 | 
			
		||||
interface for selecting between two operating modes. There are read,
 | 
			
		||||
write and poll functions for transferring messages. The two operating
 | 
			
		||||
modes are the normal (HCI) mode and the firmware update mode.
 | 
			
		||||
 | 
			
		||||
PN544 is controlled by sending messages from the userspace to the
 | 
			
		||||
chip. The main function of the driver is just to pass those messages
 | 
			
		||||
without caring about the message content.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Protocols
 | 
			
		||||
---------
 | 
			
		||||
 | 
			
		||||
@ -47,68 +30,3 @@ and third (LSB) bytes of the message. The maximum FW message length is
 | 
			
		||||
 | 
			
		||||
For the ETSI HCI specification see
 | 
			
		||||
http://www.etsi.org/WebSite/Technologies/ProtocolSpecification.aspx
 | 
			
		||||
 | 
			
		||||
The Hardware Test
 | 
			
		||||
-----------------
 | 
			
		||||
 | 
			
		||||
The idea of the test is that it can performed by reading from the
 | 
			
		||||
corresponding sysfs file. The test is implemented in the board file
 | 
			
		||||
and it should test that PN544 can be put into the firmware update
 | 
			
		||||
mode. If the test is not implemented the sysfs file does not get
 | 
			
		||||
created.
 | 
			
		||||
 | 
			
		||||
Example:
 | 
			
		||||
> cat /sys/module/pn544/drivers/i2c\:pn544/3-002b/nfc_test
 | 
			
		||||
1
 | 
			
		||||
 | 
			
		||||
Normal Operation
 | 
			
		||||
----------------
 | 
			
		||||
 | 
			
		||||
PN544 is powered up when the device file is opened, otherwise it's
 | 
			
		||||
turned off. Only one instance can use the device at a time.
 | 
			
		||||
 | 
			
		||||
Userspace applications control PN544 with HCI messages. The hardware
 | 
			
		||||
sends an interrupt when data is available for reading. Data is
 | 
			
		||||
physically read when the read function is called by a userspace
 | 
			
		||||
application. Poll() checks the read interrupt state. Configuration and
 | 
			
		||||
self testing are also done from the userspace using read and write.
 | 
			
		||||
 | 
			
		||||
Example platform data:
 | 
			
		||||
 | 
			
		||||
static int rx71_pn544_nfc_request_resources(struct i2c_client *client)
 | 
			
		||||
{
 | 
			
		||||
	/* Get and setup the HW resources for the device */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void rx71_pn544_nfc_free_resources(void)
 | 
			
		||||
{
 | 
			
		||||
	/* Release the HW resources */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void rx71_pn544_nfc_enable(int fw)
 | 
			
		||||
{
 | 
			
		||||
	/* Turn the device on */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int rx71_pn544_nfc_test(void)
 | 
			
		||||
{
 | 
			
		||||
	/*
 | 
			
		||||
	 * Put the device into the FW update mode
 | 
			
		||||
	 * and then back to the normal mode.
 | 
			
		||||
	 * Check the behavior and return one on success,
 | 
			
		||||
	 * zero on failure.
 | 
			
		||||
	 */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void rx71_pn544_nfc_disable(void)
 | 
			
		||||
{
 | 
			
		||||
	/* turn the power off */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static struct pn544_nfc_platform_data rx71_nfc_data = {
 | 
			
		||||
	.request_resources = rx71_pn544_nfc_request_resources,
 | 
			
		||||
	.free_resources = rx71_pn544_nfc_free_resources,
 | 
			
		||||
	.enable = rx71_pn544_nfc_enable,
 | 
			
		||||
	.test = rx71_pn544_nfc_test,
 | 
			
		||||
	.disable = rx71_pn544_nfc_disable,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user