NFC: pn544: Separate the core code and the i2c one into different modules
authorSamuel Ortiz <sameo@linux.intel.com>
Tue, 18 Dec 2012 15:26:23 +0000 (16:26 +0100)
committerSamuel Ortiz <sameo@linux.intel.com>
Wed, 9 Jan 2013 23:51:52 +0000 (00:51 +0100)
As we may need to support other physical layers, we can avoid linking the
core part into each and every pn544 module.

Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/nfc/Kconfig
drivers/nfc/Makefile
drivers/nfc/pn544/Kconfig [new file with mode: 0644]
drivers/nfc/pn544/Makefile
drivers/nfc/pn544/pn544.c

index ec857676c39ffaffcb6d55c25917ec9beb1192ea..80c728b28828dc538ca19d5e3ef9f756ee968568 100644 (file)
@@ -5,19 +5,6 @@
 menu "Near Field Communication (NFC) devices"
        depends on NFC
 
-config PN544_HCI_NFC
-       tristate "HCI PN544 NFC driver"
-       depends on I2C && NFC_HCI && NFC_SHDLC
-       select CRC_CCITT
-       default n
-       ---help---
-         NXP PN544 i2c driver.
-         This is a driver based on the SHDLC and HCI NFC kernel layers and
-         will thus not work with NXP libnfc library.
-
-         To compile this driver as a module, choose m here. The module will
-         be called pn544_hci.
-
 config NFC_PN533
        tristate "NXP PN533 USB driver"
        depends on USB
@@ -39,4 +26,6 @@ config NFC_WILINK
          Say Y here to compile support for Texas Instrument's NFC WiLink driver
          into the kernel or say M to compile it as module.
 
+source "drivers/nfc/pn544/Kconfig"
+
 endmenu
index 36c359043f5469b8d59b4235d9cea35db79d779e..574bbc04d97a46154d1a6e2874f6d3f803f5081f 100644 (file)
@@ -2,7 +2,7 @@
 # Makefile for nfc devices
 #
 
-obj-$(CONFIG_PN544_HCI_NFC)    += pn544/
+obj-$(CONFIG_NFC_PN544)                += pn544/
 obj-$(CONFIG_NFC_PN533)                += pn533.o
 obj-$(CONFIG_NFC_WILINK)       += nfcwilink.o
 
diff --git a/drivers/nfc/pn544/Kconfig b/drivers/nfc/pn544/Kconfig
new file mode 100644 (file)
index 0000000..c277790
--- /dev/null
@@ -0,0 +1,23 @@
+config NFC_PN544
+       tristate "NXP PN544 NFC driver"
+       depends on NFC_HCI
+       select CRC_CCITT
+       default n
+       ---help---
+         NXP PN544 core driver.
+         This is a driver based on the HCI NFC kernel layers and
+         will thus not work with NXP libnfc library.
+
+         To compile this driver as a module, choose m here. The module will
+         be called pn544.
+         Say N if unsure.
+
+config NFC_PN544_I2C
+       tristate "NFC PN544 i2c support"
+       depends on NFC_PN544 && I2C && NFC_SHDLC
+       ---help---
+         This module adds support for the NXP pn544 i2c interface.
+         Select this if your platform is using the i2c bus.
+
+         If you choose to build a module, it'll be called pn544_i2c.
+         Say N if unsure.
\ No newline at end of file
index 725733881eb3d04074629b5b9e8acd13e24b375f..ac076793687d582d4ec6068fd444f55dc84c15c8 100644 (file)
@@ -2,6 +2,7 @@
 # Makefile for PN544 HCI based NFC driver
 #
 
-obj-$(CONFIG_PN544_HCI_NFC)    += pn544_i2c.o
+pn544_i2c-objs  = i2c.o
 
-pn544_i2c-y            := pn544.o i2c.o
+obj-$(CONFIG_NFC_PN544)     += pn544.o
+obj-$(CONFIG_NFC_PN544_I2C) += pn544_i2c.o
index ece8342398525c2cbb5ae6aec16409fe637ccb9f..d108c794008d5920afc7f4fea590090fc509fb99 100644 (file)
@@ -20,6 +20,7 @@
 
 #include <linux/delay.h>
 #include <linux/slab.h>
+#include <linux/module.h>
 
 #include <linux/nfc.h>
 #include <net/nfc/hci.h>
@@ -862,6 +863,7 @@ err_alloc_hdev:
 err_info_alloc:
        return r;
 }
+EXPORT_SYMBOL(pn544_hci_probe);
 
 void pn544_hci_remove(struct nfc_hci_dev *hdev)
 {
@@ -871,3 +873,7 @@ void pn544_hci_remove(struct nfc_hci_dev *hdev)
        nfc_hci_free_device(hdev);
        kfree(info);
 }
+EXPORT_SYMBOL(pn544_hci_remove);
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION(DRIVER_DESC);