158 lines
5.5 KiB
C
158 lines
5.5 KiB
C
/*
|
|
* Copyright (C) 2010-2014 NXP Semiconductors
|
|
*
|
|
* 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.
|
|
*/
|
|
|
|
/*
|
|
* OSAL header files related to memory, debug, random, semaphore and mutex functions.
|
|
*/
|
|
|
|
#ifndef PHNFCCOMMON_H
|
|
#define PHNFCCOMMON_H
|
|
|
|
/*
|
|
************************* Include Files ****************************************
|
|
*/
|
|
|
|
#include <phNfcStatus.h>
|
|
#include <semaphore.h>
|
|
#include <phOsalNfc_Timer.h>
|
|
#include <pthread.h>
|
|
#include <phDal4Nfc_messageQueueLib.h>
|
|
#include <phNfcCompId.h>
|
|
|
|
|
|
#define FW_DLL_ROOT_DIR "/system/vendor/firmware/"
|
|
#define FW_DLL_EXTENSION ".so"
|
|
|
|
#if(NFC_NXP_CHIP_TYPE == PN548C2)
|
|
|
|
/* Actual FW library name*/
|
|
#define FW_LIB_PATH FW_DLL_ROOT_DIR "libpn548ad_fw" FW_DLL_EXTENSION
|
|
/* Restore Corrupted PLL Setttings/etc */
|
|
#define PLATFORM_LIB_PATH FW_DLL_ROOT_DIR "libpn548ad_fw_platform" FW_DLL_EXTENSION
|
|
/* Upgrade the public Key */
|
|
#define PKU_LIB_PATH FW_DLL_ROOT_DIR "libpn548ad_fw_pku" FW_DLL_EXTENSION
|
|
#elif(NFC_NXP_CHIP_TYPE == PN551)
|
|
/* Actual FW library name*/
|
|
#define FW_LIB_PATH FLASH_CONF_ROOT_DIR "libpn551_fw" FW_DLL_EXTENSION
|
|
/* Restore Corrupted PLL Settings/etc */
|
|
#define PLATFORM_LIB_PATH FW_DLL_ROOT_DIR "libpn551_fw_platform" FW_DLL_EXTENSION
|
|
/* Upgrade the public Key */
|
|
#define PKU_LIB_PATH FW_DLL_ROOT_DIR "libpn551_fw_pku" FW_DLL_EXTENSION
|
|
#else
|
|
/* Actual FW library name*/
|
|
#define FW_LIB_PATH FW_DLL_ROOT_DIR "libpn547_fw" FW_DLL_EXTENSION
|
|
/* Restore Corrupted PLL Settings/etc */
|
|
#define PLATFORM_LIB_PATH FW_DLL_ROOT_DIR "libpn547_fw_platform" FW_DLL_EXTENSION
|
|
/* Upgrade the public Key */
|
|
#define PKU_LIB_PATH FW_DLL_ROOT_DIR "libpn547_fw_pku" FW_DLL_EXTENSION
|
|
#endif
|
|
|
|
#if(NFC_NXP_CHIP_TYPE == PN548C2)
|
|
#define COMPILATION_MW "PN548C2"
|
|
#else
|
|
#define COMPILATION_MW "PN547C2"
|
|
#endif
|
|
|
|
/* HAL Version number (Updated as per release) */
|
|
#define NXP_MW_VERSION_MAJ (3U)
|
|
#define NXP_MW_VERSION_MIN (5U)
|
|
|
|
/*
|
|
*****************************************************************
|
|
*********** System clock source selection configuration ********
|
|
*****************************************************************
|
|
*/
|
|
|
|
#define CLK_SRC_UNDEF 0
|
|
#define CLK_SRC_XTAL 1
|
|
#define CLK_SRC_PLL 2
|
|
#define CLK_SRC_PADDIRECT 3
|
|
|
|
/*Extern crystal clock source*/
|
|
#define NXP_SYS_CLK_SRC_SEL CLK_SRC_PLL /* Use one of CLK_SRC_<value> */
|
|
/*Direct clock*/
|
|
|
|
/*
|
|
*****************************************************************
|
|
*********** System clock frequency selection configuration ****************
|
|
* If Clk_Src is set to PLL, make sure to set the Clk_Freq also*
|
|
*****************************************************************
|
|
*/
|
|
#define CLK_FREQ_UNDEF 0
|
|
#define CLK_FREQ_13MHZ 1
|
|
#define CLK_FREQ_19_2MHZ 2
|
|
#define CLK_FREQ_24MHZ 3
|
|
#define CLK_FREQ_26MHZ 4
|
|
#define CLK_FREQ_38_4MHZ 5
|
|
#define CLK_FREQ_52MHZ 6
|
|
|
|
#define NXP_SYS_CLK_FREQ_SEL CLK_FREQ_19_2MHZ /* Set to one of CLK_FREQ_<value> */
|
|
|
|
#define CLK_TO_CFG_DEF 1
|
|
#define CLK_TO_CFG_MAX 6
|
|
/*
|
|
* information to configure OSAL
|
|
*/
|
|
typedef struct phOsalNfc_Config
|
|
{
|
|
uint8_t *pLogFile; /* Log File Name*/
|
|
uintptr_t dwCallbackThreadId; /* Client ID to which message is posted */
|
|
}phOsalNfc_Config_t, *pphOsalNfc_Config_t /* Pointer to #phOsalNfc_Config_t */;
|
|
|
|
|
|
/*
|
|
* Deferred call declaration.
|
|
* This type of API is called from ClientApplication (main thread) to notify
|
|
* specific callback.
|
|
*/
|
|
typedef void (*pphOsalNfc_DeferFuncPointer_t) (void*);
|
|
|
|
|
|
/*
|
|
* Deferred message specific info declaration.
|
|
*/
|
|
typedef struct phOsalNfc_DeferedCallInfo
|
|
{
|
|
pphOsalNfc_DeferFuncPointer_t pDeferedCall;/* pointer to Deferred callback */
|
|
void *pParam; /* contains timer message specific details*/
|
|
}phOsalNfc_DeferedCallInfo_t;
|
|
|
|
|
|
/*
|
|
* States in which a OSAL timer exist.
|
|
*/
|
|
typedef enum
|
|
{
|
|
eTimerIdle = 0, /* Indicates Initial state of timer */
|
|
eTimerRunning = 1, /* Indicate timer state when started */
|
|
eTimerStopped = 2 /* Indicates timer state when stopped */
|
|
}phOsalNfc_TimerStates_t; /* Variable representing State of timer */
|
|
|
|
/*
|
|
**Timer Handle structure containing details of a timer.
|
|
*/
|
|
typedef struct phOsalNfc_TimerHandle
|
|
{
|
|
uint32_t TimerId; /* ID of the timer */
|
|
timer_t hTimerHandle; /* Handle of the timer */
|
|
pphOsalNfc_TimerCallbck_t Application_callback; /* Timer callback function to be invoked */
|
|
void *pContext; /* Parameter to be passed to the callback function */
|
|
phOsalNfc_TimerStates_t eState; /* Timer states */
|
|
phLibNfc_Message_t tOsalMessage; /* Osal Timer message posted on User Thread */
|
|
phOsalNfc_DeferedCallInfo_t tDeferedCallInfo; /* Deferred Call structure to Invoke Callback function */
|
|
}phOsalNfc_TimerHandle_t,*pphOsalNfc_TimerHandle_t; /* Variables for Structure Instance and Structure Ptr */
|
|
|
|
#endif /* PHOSALNFC_H */
|