060fd41bcef41dc39c381d454a277a7921c794cb
[tas2557sw-android/tas2557-ftc.git] / tas2557_chk.c
1 /*\r
2 ** =============================================================================\r
3 ** Copyright (c) 2016  Texas Instruments Inc.\r
4 **\r
5 ** This program is free software; you can redistribute it and/or modify it under\r
6 ** the terms of the GNU General Public License as published by the Free Software \r
7 ** Foundation; version 2.\r
8 **\r
9 ** This program is distributed in the hope that it will be useful, but WITHOUT\r
10 ** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
11 ** FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r
12 **\r
13 ** You should have received a copy of the GNU General Public License along with\r
14 ** this program; if not, write to the Free Software Foundation, Inc., 51 Franklin\r
15 ** Street, Fifth Floor, Boston, MA 02110-1301, USA.\r
16 **\r
17 ** File:\r
18 **     tas2557_ftc.c\r
19 **\r
20 ** Description:\r
21 **     factory test program for TAS2557 Android devices\r
22 **\r
23 ** =============================================================================\r
24 */\r
25 \r
26 #include <stdio.h>\r
27 #include <stdint.h>\r
28 #include <math.h>\r
29 #include <sys/types.h>\r
30 \r
31 #include "system.h"\r
32 #include "tas2557.h"        // TAS2557 Driver\r
33 #include "tas2557_ftc_lib.h"    \r
34 #include "tas2557_ftc.h"    // TAS2557 Factory Test and Calibration Tool\r
35 \r
36 #define PI                   3.14159\r
37 \r
38 // -----------------------------------------------------------------------------\r
39 // tas2557_ftc\r
40 // -----------------------------------------------------------------------------\r
41 // Description:\r
42 //      Obtains Re, f0, Q and T_cal from the speaker. This only needs to be\r
43 //      executed once during production line test.\r
44 // -----------------------------------------------------------------------------\r
45 int tas2557_chk(double t_cal, struct TFTCConfiguration *pFTCC)\r
46 {\r
47         int nResult = 0;\r
48         double nDevARe, nDevADeltaT, nDevAF0, nDevAQ;\r
49         double nDevBRe, nDevBDeltaT, nDevBF0, nDevBQ;\r
50         uint8_t nPGID;\r
51         uint32_t libVersion;\r
52 \r
53         libVersion = get_lib_ver();\r
54         printf("libVersion=0x%x\r\n", libVersion);\r
55 \r
56         /* get device PGID */\r
57         nPGID = tas2557_get_PGID();\r
58         printf("PGID=0x%x\r\n", nPGID);\r
59         /* set device PGID to FTC process */\r
60         tas2557_ftc_set_PGID(nPGID);\r
61 \r
62         /* Get actual Re from TAS2557 */\r
63         nResult = get_Re_deltaT(pFTCC->nTSpkCharDevA.nPPC3_Re0,\r
64                                                         pFTCC->nTSpkCharDevA.nSpkReAlpha,\r
65                                                         &nDevARe, &nDevADeltaT);\r
66         nResult = get_f0_Q(pFTCC->nTSpkCharDevA.nPPC3_FWarp,\r
67                                                 pFTCC->nPPC3_FS,\r
68                                                 pFTCC->nTSpkCharDevA.nPPC3_Bl,\r
69                                                 pFTCC->nTSpkCharDevA.nPPC3_Mms,\r
70                                                 pFTCC->nTSpkCharDevA.nPPC3_Re0,\r
71                                                 &nDevAF0, &nDevAQ);\r
72         printf("SPK Re = %f, DeltaT=%f, F0 = %f, Q = %f\n", nDevARe, nDevADeltaT, nDevAF0, nDevAQ);\r
73 \r
74         tas2557_ftc_release();\r
75 \r
76     return nResult;\r
77 }\r