/* * * FocalTech TouchScreen driver. * * Copyright (c) 2012-2018, FocalTech Systems, Ltd., all rights reserved. * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and * may be copied, distributed, and modified under those terms. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * */ #ifndef _INI_H #define _INI_H /***************************************************************************** * Private constant and macro definitions using #define *****************************************************************************/ #define MAX_KEYWORD_NUM (500) #define MAX_KEYWORD_NAME_LEN (50) #define MAX_KEYWORD_VALUE_LEN (512) #define MAX_KEYWORD_VALUE_ONE_LEN (16) #define MAX_INI_LINE_LEN (MAX_KEYWORD_NAME_LEN + MAX_KEYWORD_VALUE_LEN) #define MAX_INI_SECTION_NUM (20) #define MAX_IC_NAME_LEN (512) //The original value is 32 #define MAX_TEST_ITEM (20) #define IC_CODE_OFFSET (16) /***************************************************************************** * enumerations, structures and unions *****************************************************************************/ struct ini_ic_type { char ic_name[MAX_IC_NAME_LEN]; u32 ic_type; }; enum line_type { LINE_SECTION = 1, LINE_KEYWORD = 2 , LINE_OTHER = 3, }; struct ini_keyword { char name[MAX_KEYWORD_NAME_LEN]; char value[MAX_KEYWORD_VALUE_LEN]; }; struct ini_section { char name[MAX_KEYWORD_NAME_LEN]; int keyword_num; /* point to ini.tmp, don't need free */ struct ini_keyword *keyword; }; struct ini_data { char *data; int length; int keyword_num_total; int section_num; struct ini_section section[MAX_INI_SECTION_NUM]; struct ini_keyword *tmp; char ic_name[MAX_IC_NAME_LEN]; u32 ic_code; }; #define TEST_ITEM_INCELL { \ "SHORT_CIRCUIT_TEST", \ "OPEN_TEST", \ "CB_TEST", \ "RAWDATA_TEST", \ "LCD_NOISE_TEST", \ "KEY_SHORT_TEST", \ } #define BASIC_THRESHOLD_INCELL { \ "ShortCircuit_ResMin", "ShortCircuit_VkResMin", \ "OpenTest_CBMin", "OpenTest_Check_K1", "OpenTest_K1Threshold", "OpenTest_Check_K2", "OpenTest_K2Threshold", \ "CBTest_Min", "CBTest_Max", \ "CBTest_VKey_Check", "CBTest_Min_Vkey", "CBTest_Max_Vkey", \ "RawDataTest_Min", "RawDataTest_Max", \ "RawDataTest_VKey_Check", "RawDataTest_Min_VKey", "RawDataTest_Max_VKey", \ "LCD_NoiseTest_Frame", "LCD_NoiseTest_Coefficient", "LCD_NoiseTest_Coefficient_key", \ } #define TEST_ITEM_MC_SC { \ "RAWDATA_TEST", \ "UNIFORMITY_TEST", \ "SCAP_CB_TEST", \ "SCAP_RAWDATA_TEST", \ "WEAK_SHORT_CIRCUIT_TEST", \ "PANEL_DIFFER_TEST", \ } #define BASIC_THRESHOLD_MC_SC { \ "RawDataTest_High_Min", "RawDataTest_High_Max", "RawDataTest_HighFreq", \ "RawDataTest_Low_Min", "RawDataTest_Low_Max", "RawDataTest_LowFreq", \ "UniformityTest_Check_Tx", "UniformityTest_Check_Rx","UniformityTest_Check_MinMax", \ "UniformityTest_Tx_Hole", "UniformityTest_Rx_Hole", "UniformityTest_MinMax_Hole", \ "SCapCbTest_OFF_Min", "SCapCbTest_OFF_Max", "ScapCBTest_SetWaterproof_OFF", \ "SCapCbTest_ON_Min", "SCapCbTest_ON_Max", "ScapCBTest_SetWaterproof_ON", \ "SCapRawDataTest_OFF_Min", "SCapRawDataTest_OFF_Max", "SCapRawDataTest_SetWaterproof_OFF", \ "SCapRawDataTest_ON_Min", "SCapRawDataTest_ON_Max", "SCapRawDataTest_SetWaterproof_ON", \ "WeakShortTest_CG", "WeakShortTest_CC", \ "PanelDifferTest_Min", "PanelDifferTest_Max", \ } #define TEST_ITEM_SC { \ "CB_TEST", \ "DELTA_CB_TEST", \ "RAWDATA_TEST", \ } #define BASIC_THRESHOLD_SC { \ "RawDataTest_Min", "RawDataTest_Max", \ "CbTest_Min", "CbTest_Max", \ "DeltaCbTest_Base", "DeltaCbTest_Differ_Max", \ "DeltaCbTest_Include_Key_Test", "DeltaCbTest_Key_Differ_Max", \ "DeltaCbTest_Deviation_S1", "DeltaCbTest_Deviation_S2", "DeltaCbTest_Deviation_S3", \ "DeltaCbTest_Deviation_S4", "DeltaCbTest_Deviation_S5", "DeltaCbTest_Deviation_S6", \ "DeltaCbTest_Set_Critical", "DeltaCbTest_Critical_S1", "DeltaCbTest_Critical_S2", \ "DeltaCbTest_Critical_S3", "DeltaCbTest_Critical_S4", \ "DeltaCbTest_Critical_S5", "DeltaCbTest_Critical_S6", \ } /***************************************************************************** * Global variable or extern global variabls/functions *****************************************************************************/ int fts_test_get_testparam_from_ini(char *config_name); int get_keyword_value(char *section, char *name, int *value); #define get_value_interface(name, value) \ get_keyword_value("Interface", name, value) #define get_value_basic(name, value) \ get_keyword_value("Basic_Threshold", name, value) #define get_value_detail(name, value) \ get_keyword_value("SpecialSet", name, value) #define get_value_testitem(name, value) \ get_keyword_value("TestItem", name, value) #endif /* _INI_H */