You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
4.1 KiB
107 lines
4.1 KiB
/******************************************************************************
|
|
*
|
|
* Copyright 2018 NXP
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
******************************************************************************/
|
|
|
|
#ifndef NXP_FEATURES_H
|
|
#define NXP_FEATURES_H
|
|
#include <unistd.h>
|
|
#include <string>
|
|
|
|
#define FW_MOBILE_MAJOR_NUMBER_PN553 0x01
|
|
#define FW_MOBILE_MAJOR_NUMBER_PN81A 0x02
|
|
#define FW_MOBILE_MAJOR_NUMBER_PN551 0x05
|
|
#define FW_MOBILE_MAJOR_NUMBER_PN557 0x01
|
|
using namespace std;
|
|
typedef enum {
|
|
unknown,
|
|
pn547C2,
|
|
pn65T,
|
|
pn548C2,
|
|
pn66T,
|
|
pn551,
|
|
pn67T,
|
|
pn553,
|
|
pn80T,
|
|
pn557,
|
|
pn81T
|
|
} tNFC_chipType;
|
|
|
|
typedef struct {
|
|
tNFC_chipType chipType;
|
|
std::string _FW_LIB_PATH;
|
|
std::string _FW_BIN_PATH;
|
|
uint16_t _PHDNLDNFC_USERDATA_EEPROM_OFFSET;
|
|
uint16_t _PHDNLDNFC_USERDATA_EEPROM_LEN;
|
|
uint8_t _FW_MOBILE_MAJOR_NUMBER;
|
|
} tNfc_featureList;
|
|
|
|
extern tNfc_featureList nfcFL;
|
|
|
|
#define CONFIGURE_FEATURELIST(chipType) \
|
|
{ \
|
|
nfcFL.chipType = chipType; \
|
|
if (chipType == pn81T) { \
|
|
nfcFL.chipType = pn557; \
|
|
} else if (chipType == pn80T) { \
|
|
nfcFL.chipType = pn553; \
|
|
} else if (chipType == pn67T) { \
|
|
nfcFL.chipType = pn551; \
|
|
} \
|
|
CONFIGURE_FEATURELIST_NFCC(chipType) \
|
|
}
|
|
|
|
#define CONFIGURE_FEATURELIST_NFCC(chipType) \
|
|
{ \
|
|
nfcFL._PHDNLDNFC_USERDATA_EEPROM_OFFSET = 0x023CU; \
|
|
nfcFL._PHDNLDNFC_USERDATA_EEPROM_LEN = 0x0C80U; \
|
|
\
|
|
if (chipType == pn557 || chipType == pn81T) { \
|
|
STRCPY_FW_LIB("libpn557_fw") \
|
|
STRCPY_FW_BIN("pn557") \
|
|
\
|
|
nfcFL._FW_MOBILE_MAJOR_NUMBER = FW_MOBILE_MAJOR_NUMBER_PN557; \
|
|
} else if (chipType == pn553 || chipType == pn80T) { \
|
|
STRCPY_FW_LIB("libpn553_fw") \
|
|
STRCPY_FW_BIN("pn553") \
|
|
\
|
|
nfcFL._FW_MOBILE_MAJOR_NUMBER = FW_MOBILE_MAJOR_NUMBER_PN553; \
|
|
\
|
|
} else if (chipType == pn551 || chipType == pn67T) { \
|
|
STRCPY_FW_LIB("libpn551_fw") \
|
|
STRCPY_FW_BIN("pn551") \
|
|
\
|
|
nfcFL._PHDNLDNFC_USERDATA_EEPROM_OFFSET = 0x02BCU; \
|
|
nfcFL._PHDNLDNFC_USERDATA_EEPROM_LEN = 0x0C00U; \
|
|
nfcFL._FW_MOBILE_MAJOR_NUMBER = FW_MOBILE_MAJOR_NUMBER_PN551; \
|
|
} \
|
|
}
|
|
#define STRCPY_FW_LIB(str) \
|
|
{ \
|
|
nfcFL._FW_LIB_PATH.clear(); \
|
|
nfcFL._FW_LIB_PATH.append(FW_LIB_ROOT_DIR); \
|
|
nfcFL._FW_LIB_PATH.append(str); \
|
|
nfcFL._FW_LIB_PATH.append(FW_LIB_EXTENSION); \
|
|
}
|
|
#define STRCPY_FW_BIN(str) \
|
|
{ \
|
|
nfcFL._FW_BIN_PATH.clear(); \
|
|
nfcFL._FW_BIN_PATH.append(FW_BIN_ROOT_DIR); \
|
|
nfcFL._FW_BIN_PATH.append(str); \
|
|
nfcFL._FW_BIN_PATH.append(FW_BIN_EXTENSION); \
|
|
}
|
|
#endif
|