1 /*
2  * Copyright (C) 2012-2014 NXP Semiconductors
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #ifndef _PHNXPNCIHAL_SELFTEST_H_
17 #define _PHNXPNCIHAL_SELFTEST_H_
18 
19 #ifdef NXP_HW_SELF_TEST
20 
21 #include <phNfcStatus.h>
22 #include <phNxpNciHal.h>
23 #include <phTmlNfc.h>
24 
25 /* PRBS Generation type  */
26 typedef enum {
27   NFC_FW_PRBS, /* FW software would generate the PRBS */
28   NFC_HW_PRBS  /* Hardware would generate the PRBS */
29 } phNxpNfc_PrbsType_t;
30 
31 /* Different HW PRBS types */
32 typedef enum { NFC_HW_PRBS9, NFC_HW_PRBS15 } phNxpNfc_PrbsHwType_t;
33 /* RF Technology */
34 typedef enum {
35   NFC_RF_TECHNOLOGY_A,
36   NFC_RF_TECHNOLOGY_B,
37   NFC_RF_TECHNOLOGY_F,
38 } phNxpNfc_Tech_t;
39 
40 /* Bit rates */
41 typedef enum {
42   NFC_BIT_RATE_106,
43   NFC_BIT_RATE_212,
44   NFC_BIT_RATE_424,
45   NFC_BIT_RATE_848,
46 } phNxpNfc_Bitrate_t;
47 
48 typedef struct phAntenna_St_Resp {
49   /* Txdo Raw Value*/
50   uint16_t wTxdoRawValue;
51   uint16_t wTxdoMeasuredRangeMin;            /*Txdo Measured Range Max */
52   uint16_t wTxdoMeasuredRangeMax;            /*Txdo Measured Range Min */
53   uint16_t wTxdoMeasuredTolerance;           /*Txdo Measured Range Tolerance */
54                                              /* Agc Values */
55   uint16_t wAgcValue;                        /*Agc Min Value*/
56   uint16_t wAgcValueTolerance;               /*Txdo Measured Range*/
57                                              /* Agc value with NFCLD */
58   uint16_t wAgcValuewithfixedNFCLD;          /*Agc Value with Fixed NFCLD Max */
59   uint16_t wAgcValuewithfixedNFCLDTolerance; /*Agc Value with Fixed NFCLD
60                                                 Tolerance */
61   /* Agc Differential Values With Open/Short RM */
62   uint16_t wAgcDifferentialWithOpen1;          /*Agc Differential With Open 1*/
63   uint16_t wAgcDifferentialWithOpenTolerance1; /*Agc Differential With Open
64                                                   Tolerance 1*/
65   uint16_t wAgcDifferentialWithOpen2;          /*Agc Differential With Open 2*/
66   uint16_t wAgcDifferentialWithOpenTolerance2; /*Agc Differential With Open
67                                                   Tolerance 2*/
68 } phAntenna_St_Resp_t; /* Instance of Transaction structure */
69 
70 /*******************************************************************************
71  **
72  ** Function         phNxpNciHal_TestMode_open
73  **
74  ** Description      It opens the physical connection with NFCC (pn547) and
75  **                  creates required client thread for operation.
76  **
77  ** Returns          NFCSTATUS_SUCCESS if successful,otherwise NFCSTATUS_FAILED.
78  **
79  ******************************************************************************/
80 
81 NFCSTATUS phNxpNciHal_TestMode_open(void);
82 
83 /*******************************************************************************
84  **
85  ** Function         phNxpNciHal_TestMode_close
86  **
87  ** Description      This function close the NFCC interface and free all
88  **                  resources.
89  **
90  ** Returns          None.
91  **
92  ******************************************************************************/
93 
94 void phNxpNciHal_TestMode_close(void);
95 
96 /*******************************************************************************
97  **
98  ** Function         phNxpNciHal_SwpTest
99  **
100  ** Description      Test function to validate the SWP line. SWP line number is
101  **                  is sent as parameter to the API.
102  **
103  ** Returns          NFCSTATUS_SUCCESS if successful,otherwise NFCSTATUS_FAILED.
104  **
105  ******************************************************************************/
106 
107 NFCSTATUS phNxpNciHal_SwpTest(uint8_t swp_line);
108 
109 /*******************************************************************************
110  **
111  ** Function         phNxpNciHal_PrbsTestStart
112  **
113  ** Description      Test function start RF generation for RF technology and bit
114  **                  rate. RF technology and bit rate are sent as parameter to
115  **                  the API.
116  **
117  ** Returns          NFCSTATUS_SUCCESS if RF generation successful,
118  **                  otherwise NFCSTATUS_FAILED.
119  **
120  ******************************************************************************/
121 NFCSTATUS phNxpNciHal_PrbsTestStart(phNxpNfc_PrbsType_t prbs_type,
122                                     phNxpNfc_PrbsHwType_t hw_prbs_type,
123                                     phNxpNfc_Tech_t tech,
124                                     phNxpNfc_Bitrate_t bitrate);
125 /*******************************************************************************
126  **
127  ** Function         phNxpNciHal_PrbsTestStop
128  **
129  ** Description      Test function stop RF generation for RF technology started
130  **                  by phNxpNciHal_PrbsTestStart.
131  **
132  ** Returns          NFCSTATUS_SUCCESS if operation successful,
133  **                  otherwise NFCSTATUS_FAILED.
134  **
135  ******************************************************************************/
136 
137 NFCSTATUS phNxpNciHal_PrbsTestStop();
138 
139 /*******************************************************************************
140 **
141 ** Function         phNxpNciHal_AntennaSelfTest
142 **
143 ** Description      Test function to validate the Antenna's discrete
144 **                  components connection.
145 **
146 ** Returns          NFCSTATUS_SUCCESS if successful,otherwise NFCSTATUS_FAILED.
147 **
148 *******************************************************************************/
149 
150 NFCSTATUS phNxpNciHal_AntennaSelfTest(phAntenna_St_Resp_t* phAntenna_St_Resp);
151 
152 /*******************************************************************************
153 **
154 ** Function         phNxpNciHal_RfFieldTest
155 **
156 ** Description      Test function performs RF filed test.
157 **
158 ** Returns          NFCSTATUS_SUCCESS if successful,otherwise NFCSTATUS_FAILED.
159 **
160 *******************************************************************************/
161 
162 NFCSTATUS phNxpNciHal_RfFieldTest(uint8_t on);
163 
164 /*******************************************************************************
165  **
166  ** Function         phNxpNciHal_DownloadPinTest
167  **
168  ** Description      Test function to validate the FW download pin connection.
169  **
170  ** Returns          NFCSTATUS_SUCCESS if successful,otherwise NFCSTATUS_FAILED.
171  **
172  ******************************************************************************/
173 
174 NFCSTATUS phNxpNciHal_DownloadPinTest(void);
175 
176 #endif /* _NXP_HW_SELF_TEST_H_ */
177 #endif /* _PHNXPNCIHAL_SELFTEST_H_ */
178