diff options
author | Jizhou Liao <Jizhou.Liao@nxp.com> | 2016-02-29 16:21:45 -0800 |
---|---|---|
committer | Martijn Coenen <maco@google.com> | 2016-04-27 10:17:05 +0200 |
commit | 15c09be1b19562d8d84a79bd55dc18513a052598 (patch) | |
tree | 6aa5a4e7115f7d099d9898a10dd44da66b08fb01 | |
parent | 3ec16ee778ece1efed269fbbd5c7b95cab613e5f (diff) | |
download | libnfc-nci-15c09be1b19562d8d84a79bd55dc18513a052598.tar.gz |
Configure nfc device node through .conf file
NXP_NFC_DEV_NODE is used to specify nfc device node name
in libnfc-nxp.conf.
Change-Id: Ibb95248723aa56597cb092da97ac6d4a1b925a6a
-rw-r--r-- | halimpl/pn54x/hal/phNxpNciHal.c | 30 | ||||
-rw-r--r-- | halimpl/pn54x/libnfc-nxp-PN547C2_example.conf | 4 | ||||
-rw-r--r-- | halimpl/pn54x/libnfc-nxp-PN548AD_example.conf | 4 | ||||
-rw-r--r-- | halimpl/pn54x/libnfc-nxp-PN65T_example.conf | 4 | ||||
-rw-r--r-- | halimpl/pn54x/libnfc-nxp-PN66T_example.conf | 3 | ||||
-rw-r--r-- | halimpl/pn54x/self-test/phNxpNciHal_SelfTest.c | 35 | ||||
-rw-r--r-- | halimpl/pn54x/utils/phNxpConfig.h | 1 |
7 files changed, 77 insertions, 4 deletions
diff --git a/halimpl/pn54x/hal/phNxpNciHal.c b/halimpl/pn54x/hal/phNxpNciHal.c index 15f74af..944b7b3 100644 --- a/halimpl/pn54x/hal/phNxpNciHal.c +++ b/halimpl/pn54x/hal/phNxpNciHal.c @@ -436,6 +436,8 @@ int phNxpNciHal_open(nfc_stack_callback_t *p_cback, nfc_stack_data_callback_t *p { phOsalNfc_Config_t tOsalConfig; phTmlNfc_Config_t tTmlConfig; + char *nfc_dev_node = NULL; + const uint16_t max_len = 260; NFCSTATUS wConfigStatus = NFCSTATUS_SUCCESS; NFCSTATUS status = NFCSTATUS_SUCCESS; /*NCI_INIT_CMD*/ @@ -472,10 +474,23 @@ int phNxpNciHal_open(nfc_stack_callback_t *p_cback, nfc_stack_data_callback_t *p nxpncihal_ctrl.p_nfc_stack_cback = p_cback; nxpncihal_ctrl.p_nfc_stack_data_cback = p_data_cback; + /* Read the nfc device node name */ + nfc_dev_node = (char*) malloc (max_len * sizeof (char *)); + if (nfc_dev_node == NULL) + { + NXPLOG_NCIHAL_E ("malloc of nfc_dev_node failed "); + goto clean_and_return; + } + else if (!GetNxpStrValue (NAME_NXP_NFC_DEV_NODE, nfc_dev_node, sizeof (nfc_dev_node))) + { + NXPLOG_NCIHAL_E ("Invalid nfc device node name keeping the default device node /dev/pn54x"); + strcpy (nfc_dev_node, "/dev/pn54x"); + } + /* Configure hardware link */ nxpncihal_ctrl.gDrvCfg.nClientId = phDal4Nfc_msgget(0, 0600); nxpncihal_ctrl.gDrvCfg.nLinkType = ENUM_LINK_TYPE_I2C;/* For PN54X */ - tTmlConfig.pDevName = (int8_t *) "/dev/pn54x"; + tTmlConfig.pDevName = (int8_t *) nfc_dev_node; tOsalConfig.dwCallbackThreadId = (uintptr_t) nxpncihal_ctrl.gDrvCfg.nClientId; tOsalConfig.pLogFile = NULL; @@ -491,6 +506,14 @@ int phNxpNciHal_open(nfc_stack_callback_t *p_cback, nfc_stack_data_callback_t *p NXPLOG_NCIHAL_E("phTmlNfc_Init Failed"); goto clean_and_return; } + else + { + if (nfc_dev_node != NULL) + { + free (nfc_dev_node); + nfc_dev_node = NULL; + } + } /* Create the client thread */ pthread_attr_t attr; @@ -622,6 +645,11 @@ force_download: clean_and_return: CONCURRENCY_UNLOCK(); + if (nfc_dev_node != NULL) + { + free (nfc_dev_node); + nfc_dev_node = NULL; + } /* Report error status */ (*nxpncihal_ctrl.p_nfc_stack_cback)(HAL_NFC_OPEN_CPLT_EVT, HAL_NFC_STATUS_FAILED); diff --git a/halimpl/pn54x/libnfc-nxp-PN547C2_example.conf b/halimpl/pn54x/libnfc-nxp-PN547C2_example.conf index b160b11..b383474 100644 --- a/halimpl/pn54x/libnfc-nxp-PN547C2_example.conf +++ b/halimpl/pn54x/libnfc-nxp-PN547C2_example.conf @@ -18,6 +18,10 @@ NXPLOG_FWDNLD_LOGLEVEL=0x03 NXPLOG_TML_LOGLEVEL=0x03 ############################################################################### +# Nfc Device Node name +NXP_NFC_DEV_NODE="/dev/pn54x" + +############################################################################### # Extension for Mifare reader enable MIFARE_READER_ENABLE=0x01 diff --git a/halimpl/pn54x/libnfc-nxp-PN548AD_example.conf b/halimpl/pn54x/libnfc-nxp-PN548AD_example.conf index eca60d8..637448d 100644 --- a/halimpl/pn54x/libnfc-nxp-PN548AD_example.conf +++ b/halimpl/pn54x/libnfc-nxp-PN548AD_example.conf @@ -18,6 +18,10 @@ NXPLOG_FWDNLD_LOGLEVEL=0x03 NXPLOG_TML_LOGLEVEL=0x03 ############################################################################### +# Nfc Device Node name +NXP_NFC_DEV_NODE="/dev/pn54x" + +############################################################################### # Extension for Mifare reader enable MIFARE_READER_ENABLE=0x01 diff --git a/halimpl/pn54x/libnfc-nxp-PN65T_example.conf b/halimpl/pn54x/libnfc-nxp-PN65T_example.conf index 21f2c18..a1fec14 100644 --- a/halimpl/pn54x/libnfc-nxp-PN65T_example.conf +++ b/halimpl/pn54x/libnfc-nxp-PN65T_example.conf @@ -18,6 +18,10 @@ NXPLOG_FWDNLD_LOGLEVEL=0x03 NXPLOG_TML_LOGLEVEL=0x03 ############################################################################### +# Nfc Device Node name +NXP_NFC_DEV_NODE="/dev/pn54x" + +############################################################################### # Extension for Mifare reader enable MIFARE_READER_ENABLE=0x01 diff --git a/halimpl/pn54x/libnfc-nxp-PN66T_example.conf b/halimpl/pn54x/libnfc-nxp-PN66T_example.conf index c96fbb3..269c49a 100644 --- a/halimpl/pn54x/libnfc-nxp-PN66T_example.conf +++ b/halimpl/pn54x/libnfc-nxp-PN66T_example.conf @@ -16,6 +16,9 @@ NXPLOG_NCIX_LOGLEVEL=0x03 NXPLOG_NCIR_LOGLEVEL=0x03 NXPLOG_FWDNLD_LOGLEVEL=0x03 NXPLOG_TML_LOGLEVEL=0x03 +############################################################################### +# Nfc Device Node name +NXP_NFC_DEV_NODE="/dev/pn54x" ############################################################################### # Extension for Mifare reader enable diff --git a/halimpl/pn54x/self-test/phNxpNciHal_SelfTest.c b/halimpl/pn54x/self-test/phNxpNciHal_SelfTest.c index c45099f..97a2a15 100644 --- a/halimpl/pn54x/self-test/phNxpNciHal_SelfTest.c +++ b/halimpl/pn54x/self-test/phNxpNciHal_SelfTest.c @@ -21,6 +21,7 @@ #include <phNxpLog.h> #include <pthread.h> #include <phOsalNfc_Timer.h> +#include <phNxpConfig.h> #define HAL_WRITE_RSP_TIMEOUT (2000) /* Timeout value to wait for response from PN54X */ #define HAL_WRITE_MAX_RETRY (10) @@ -1384,6 +1385,8 @@ NFCSTATUS phNxpNciHal_TestMode_open (void) phOsalNfc_Config_t tOsalConfig; phTmlNfc_Config_t tTmlConfig; + char *nfc_dev_node = NULL; + const uint16_t max_len = 260; NFCSTATUS status = NFCSTATUS_SUCCESS; uint16_t read_len = 255; @@ -1401,9 +1404,22 @@ NFCSTATUS phNxpNciHal_TestMode_open (void) memset(&tOsalConfig, 0x00, sizeof(tOsalConfig)); memset(&tTmlConfig, 0x00, sizeof(tTmlConfig)); + /* Read the nfc device node name */ + nfc_dev_node = (char*) malloc (max_len * sizeof (char*)); + if (nfc_dev_node == NULL) + { + NXPLOG_NCIHAL_E ("malloc of nfc_dev_node failed "); + goto clean_and_return; + } + else if (!GetNxpStrValue (NAME_NXP_NFC_DEV_NODE, nfc_dev_node, sizeof (nfc_dev_node))) + { + NXPLOG_NCIHAL_E ("Invalid nfc device node name keeping the default device node /dev/pn544"); + strcpy (nfc_dev_node, "/dev/pn544"); + } + gDrvCfg.nClientId = phDal4Nfc_msgget(0, 0600); gDrvCfg.nLinkType = ENUM_LINK_TYPE_I2C;/* For PN54X */ - tTmlConfig.pDevName = (int8_t *) "/dev/pn54x"; + tTmlConfig.pDevName = (int8_t *) nfc_dev_node; tOsalConfig.dwCallbackThreadId = (uintptr_t) gDrvCfg.nClientId; tOsalConfig.pLogFile = NULL; tTmlConfig.dwGetMsgThreadId = (uintptr_t) gDrvCfg.nClientId; @@ -1416,6 +1432,14 @@ NFCSTATUS phNxpNciHal_TestMode_open (void) NXPLOG_NCIHAL_E("phTmlNfc_Init Failed"); goto clean_and_return; } + else + { + if (nfc_dev_node != NULL) + { + free (nfc_dev_node); + nfc_dev_node = NULL; + } + } pthread_attr_t attr; pthread_attr_init(&attr); @@ -1443,8 +1467,13 @@ NFCSTATUS phNxpNciHal_TestMode_open (void) return NFCSTATUS_SUCCESS; clean_and_return: - CONCURRENCY_UNLOCK(); - phNxpNciHal_cleanup_monitor(); + CONCURRENCY_UNLOCK (); + if (nfc_dev_node != NULL) + { + free (nfc_dev_node); + nfc_dev_node = NULL; + } + phNxpNciHal_cleanup_monitor (); return NFCSTATUS_FAILED; } diff --git a/halimpl/pn54x/utils/phNxpConfig.h b/halimpl/pn54x/utils/phNxpConfig.h index 45c1ecd..f733501 100644 --- a/halimpl/pn54x/utils/phNxpConfig.h +++ b/halimpl/pn54x/utils/phNxpConfig.h @@ -64,6 +64,7 @@ int updateNxpConfigTimestamp(); #define NAME_MIFARE_READER_ENABLE "MIFARE_READER_ENABLE" #define NAME_FW_STORAGE "FW_STORAGE" +#define NAME_NXP_NFC_DEV_NODE "NXP_NFC_DEV_NODE" #define NAME_NXP_FW_PROTECION_OVERRIDE "NXP_FW_PROTECION_OVERRIDE" #define NAME_NXP_SYS_CLK_SRC_SEL "NXP_SYS_CLK_SRC_SEL" #define NAME_NXP_SYS_CLK_FREQ_SEL "NXP_SYS_CLK_FREQ_SEL" |