1 /* 2 * 3 * FocalTech TouchScreen driver. 4 * 5 * Copyright (c) 2012-2018, FocalTech Systems, Ltd., all rights reserved. 6 * 7 * This software is licensed under the terms of the GNU General Public 8 * License version 2, as published by the Free Software Foundation, and 9 * may be copied, distributed, and modified under those terms. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 */ 17 18 #ifndef _INI_H 19 #define _INI_H 20 /***************************************************************************** 21 * Private constant and macro definitions using #define 22 *****************************************************************************/ 23 #define MAX_KEYWORD_NUM (500) 24 #define MAX_KEYWORD_NAME_LEN (50) 25 #define MAX_KEYWORD_VALUE_LEN (512) 26 #define MAX_KEYWORD_VALUE_ONE_LEN (16) 27 #define MAX_INI_LINE_LEN (MAX_KEYWORD_NAME_LEN + MAX_KEYWORD_VALUE_LEN) 28 #define MAX_INI_SECTION_NUM (20) 29 #define MAX_IC_NAME_LEN (512) //The original value is 32 30 #define MAX_TEST_ITEM (20) 31 #define IC_CODE_OFFSET (16) 32 33 /***************************************************************************** 34 * enumerations, structures and unions 35 *****************************************************************************/ 36 struct ini_ic_type { 37 char ic_name[MAX_IC_NAME_LEN]; 38 u32 ic_type; 39 }; 40 41 enum line_type { 42 LINE_SECTION = 1, 43 LINE_KEYWORD = 2 , 44 LINE_OTHER = 3, 45 }; 46 47 struct ini_keyword { 48 char name[MAX_KEYWORD_NAME_LEN]; 49 char value[MAX_KEYWORD_VALUE_LEN]; 50 }; 51 52 struct ini_section { 53 char name[MAX_KEYWORD_NAME_LEN]; 54 int keyword_num; 55 /* point to ini.tmp, don't need free */ 56 struct ini_keyword *keyword; 57 }; 58 59 struct ini_data { 60 char *data; 61 int length; 62 int keyword_num_total; 63 int section_num; 64 struct ini_section section[MAX_INI_SECTION_NUM]; 65 struct ini_keyword *tmp; 66 char ic_name[MAX_IC_NAME_LEN]; 67 u32 ic_code; 68 }; 69 70 #define TEST_ITEM_INCELL { \ 71 "SHORT_CIRCUIT_TEST", \ 72 "OPEN_TEST", \ 73 "CB_TEST", \ 74 "RAWDATA_TEST", \ 75 "LCD_NOISE_TEST", \ 76 "KEY_SHORT_TEST", \ 77 } 78 79 #define BASIC_THRESHOLD_INCELL { \ 80 "ShortCircuit_ResMin", "ShortCircuit_VkResMin", \ 81 "OpenTest_CBMin", "OpenTest_Check_K1", "OpenTest_K1Threshold", "OpenTest_Check_K2", "OpenTest_K2Threshold", \ 82 "CBTest_Min", "CBTest_Max", \ 83 "CBTest_VKey_Check", "CBTest_Min_Vkey", "CBTest_Max_Vkey", \ 84 "RawDataTest_Min", "RawDataTest_Max", \ 85 "RawDataTest_VKey_Check", "RawDataTest_Min_VKey", "RawDataTest_Max_VKey", \ 86 "LCD_NoiseTest_Frame", "LCD_NoiseTest_Coefficient", "LCD_NoiseTest_Coefficient_key", \ 87 } 88 89 90 #define TEST_ITEM_MC_SC { \ 91 "RAWDATA_TEST", \ 92 "UNIFORMITY_TEST", \ 93 "SCAP_CB_TEST", \ 94 "SCAP_RAWDATA_TEST", \ 95 "WEAK_SHORT_CIRCUIT_TEST", \ 96 "PANEL_DIFFER_TEST", \ 97 } 98 99 #define BASIC_THRESHOLD_MC_SC { \ 100 "RawDataTest_High_Min", "RawDataTest_High_Max", "RawDataTest_HighFreq", \ 101 "RawDataTest_Low_Min", "RawDataTest_Low_Max", "RawDataTest_LowFreq", \ 102 "UniformityTest_Check_Tx", "UniformityTest_Check_Rx","UniformityTest_Check_MinMax", \ 103 "UniformityTest_Tx_Hole", "UniformityTest_Rx_Hole", "UniformityTest_MinMax_Hole", \ 104 "SCapCbTest_OFF_Min", "SCapCbTest_OFF_Max", "ScapCBTest_SetWaterproof_OFF", \ 105 "SCapCbTest_ON_Min", "SCapCbTest_ON_Max", "ScapCBTest_SetWaterproof_ON", \ 106 "SCapRawDataTest_OFF_Min", "SCapRawDataTest_OFF_Max", "SCapRawDataTest_SetWaterproof_OFF", \ 107 "SCapRawDataTest_ON_Min", "SCapRawDataTest_ON_Max", "SCapRawDataTest_SetWaterproof_ON", \ 108 "WeakShortTest_CG", "WeakShortTest_CC", \ 109 "PanelDifferTest_Min", "PanelDifferTest_Max", \ 110 } 111 112 #define TEST_ITEM_SC { \ 113 "CB_TEST", \ 114 "DELTA_CB_TEST", \ 115 "RAWDATA_TEST", \ 116 } 117 118 #define BASIC_THRESHOLD_SC { \ 119 "RawDataTest_Min", "RawDataTest_Max", \ 120 "CbTest_Min", "CbTest_Max", \ 121 "DeltaCbTest_Base", "DeltaCbTest_Differ_Max", \ 122 "DeltaCbTest_Include_Key_Test", "DeltaCbTest_Key_Differ_Max", \ 123 "DeltaCbTest_Deviation_S1", "DeltaCbTest_Deviation_S2", "DeltaCbTest_Deviation_S3", \ 124 "DeltaCbTest_Deviation_S4", "DeltaCbTest_Deviation_S5", "DeltaCbTest_Deviation_S6", \ 125 "DeltaCbTest_Set_Critical", "DeltaCbTest_Critical_S1", "DeltaCbTest_Critical_S2", \ 126 "DeltaCbTest_Critical_S3", "DeltaCbTest_Critical_S4", \ 127 "DeltaCbTest_Critical_S5", "DeltaCbTest_Critical_S6", \ 128 } 129 130 /***************************************************************************** 131 * Global variable or extern global variabls/functions 132 *****************************************************************************/ 133 int fts_test_get_testparam_from_ini(char *config_name); 134 int get_keyword_value(char *section, char *name, int *value); 135 136 #define get_value_interface(name, value) \ 137 get_keyword_value("Interface", name, value) 138 #define get_value_basic(name, value) \ 139 get_keyword_value("Basic_Threshold", name, value) 140 #define get_value_detail(name, value) \ 141 get_keyword_value("SpecialSet", name, value) 142 #define get_value_testitem(name, value) \ 143 get_keyword_value("TestItem", name, value) 144 #endif /* _INI_H */ 145