ic_drv_interface.h 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. /* i2c_drv_interface.h
  2. *
  3. * Raydium TouchScreen driver.
  4. *
  5. * Copyright (c) 2021 Raydium tech Ltd.
  6. *
  7. * This program is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU General Public License as published by
  9. * the Free Software Foundation; either version 2 of the License, or
  10. * (at your option) any later version.
  11. *
  12. * This program is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU General Public License for more details.
  16. *
  17. */
  18. #include "ic_drv_global.h"
  19. #define DEVICE_ID_2X 0xF302
  20. #define DEVICE_ID_3X 0xF303
  21. #define I2C_PDA2_BYTE_MODE 0x03
  22. #define I2C_PDA2_WORD_MODE 0x43
  23. #define I2C_BYTE_MODE (0x80|0x20)
  24. #define I2C_WORD_MODE (0xc0|0x20)
  25. #define I2C_MCU_MODE 0x40
  26. #define I2C_PDA2_MODE 0x10
  27. #define I2C_PDA_MODE 0x08
  28. #define SPI_BYTE_MODE (0x80|0x03)
  29. #define SPI_WORD_MODE (0xc0|0x03)
  30. #define SPI_MCU_MODE 0x40
  31. #define I2C_INTERFACE 0
  32. #define SPI_INTERFACE 1
  33. #define DISPLAY_SPI_MODE 0
  34. #define DISPLAY_MIPI_MODE 1
  35. #define DISPLAY_TOUCH_2_DRIVER_MODE 2
  36. #define DATA_REMAP_TO_IC_PIN 1
  37. #define DATA_REMAP_TO_SENSOR_PAD 2
  38. #define IC_TEST_RETRY_TIME 3
  39. #define IC_TEST_TIME_OUT (-1)
  40. #define FT_TEST_STUATUS_PATTERN 0x5A00
  41. #define FT_CMD_INIT 0x11
  42. #define FT_CMD_DO_FT_TEST 0x14
  43. #define IC_TEST_ITEMS_SYSTEM 0x0001
  44. #define IC_TEST_ITEMS_BURN_FW 0x0002
  45. #define IC_TEST_ITEMS_OPEN 0x0004
  46. #define IC_TEST_ITEMS_SHORT 0x0008
  47. #define IC_TEST_ITEMS_UC 0x0010
  48. #define IC_TEST_ITEMS_UB 0x0020
  49. #define IC_TEST_ITEMS_BURN_CC 0x0040
  50. #define IC_TEST_ITEMS_PANEL_TEST_1 0x0080
  51. #define IC_TEST_ITEMS_PANEL_TEST_2 0x0100
  52. #define IC_TEST_ITEMS_PANEL_TEST_3 0x0200
  53. #define IC_TEST_ITEMS_RESV_0 0x0400
  54. #define IC_TEST_ITEMS_RESV_1 0x0800
  55. #define IC_TEST_ITEMS_RESV_2 0x1000
  56. #define IC_TEST_ITEMS_RESV_3 0x2000
  57. #define IC_TEST_ITEMS_RESV_4 0x4000
  58. #define IC_TEST_ITEMS_RESV_5 0x8000
  59. #define IC_TEST_ENG_ITEMS_RESV_1 0x0001
  60. #define IC_TEST_ENG_ITEMS_RESV_2 0x0002
  61. #define IC_TEST_ENG_ITEMS_RESV_3 0x0004
  62. #define IC_TEST_ENG_ITEMS_TEST_ALL 0x0008
  63. #define IC_TEST_ENG_ITEMS_RESV_5 0x0010
  64. #define IC_TEST_ENG_ITEMS_RESV_6 0x0020
  65. #define IC_TEST_ENG_ITEMS_RESV_7 0x0040
  66. #define IC_TEST_ENG_ITEMS_RESV_8 0x0080
  67. #define IC_TEST_ENG_ITEMS_PANEL_TEST_JIG 0x0100
  68. #define IC_TEST_ENG_ITEMS_RESV_10 0x0200
  69. #define IC_TEST_ENG_ITEMS_RESV_11 0x0400
  70. #define IC_TEST_ENG_ITEMS_RESV_12 0x0800
  71. #define IC_TEST_ENG_ITEMS_RESV_13 0x1000
  72. #define IC_TEST_ENG_ITEMS_RESV_14 0x2000
  73. #define IC_TEST_ENG_ITEMS_RESV_15 0x4000
  74. #define IC_TEST_ENG_ITEMS_RESV_16 0x8000
  75. #define WEARABLE_FT_TEST_RESULT_IC_INIT_STATE 0xDFFFE5DF
  76. #define WEARABLE_FT_TEST_RESULT_PANEL_INIT_STATE 0x20001A20
  77. #define WEARABLE_FT_TEST_RESULT_PASS 0x00000000
  78. #define WEARABLE_FT_TEST_RESULT_OPEN_NG 0x00000001
  79. #define WEARABLE_FT_TEST_RESULT_SHORT_NG 0x00000002
  80. #define WEARABLE_FT_TEST_RESULT_UB_NG 0x00000004
  81. #define WEARABLE_FT_TEST_RESULT_I2C_NG 0x00000008
  82. #define WEARABLE_FT_TEST_RESULT_INT_NG 0x00000010
  83. #define WEARABLE_FT_TEST_RESULT_PANEL_TEST_1_NG 0x00000020
  84. #define WEARABLE_FT_TEST_RESULT_RESET_NG 0x00000040
  85. #define WEARABLE_FT_TEST_RESULT_CB_NG 0x00000080
  86. #define WEARABLE_FT_TEST_RESULT_PRAM_NG 0x00000100
  87. #define WEARABLE_FT_TEST_RESULT_NORMAL_FW_NG 0x00000200
  88. #define WEARABLE_FT_TEST_RESULT_BURN_CC_NG 0x00000400
  89. #define WEARABLE_FT_TEST_RESULT_PANEL_TEST_3_NG 0x00000800
  90. #define WEARABLE_FT_TEST_RESULT_GET_DATA_NG 0x00001000
  91. #define WEARABLE_FT_TEST_RESULT_FLASH_ID_NG 0x00002000
  92. #define WEARABLE_FT_TEST_RESULT_NORMAL_FW_VER_NG 0x00004000
  93. #define WEARABLE_FT_TEST_RESULT_TEST_FW_VER_NG 0x00008000
  94. #define WEARABLE_FT_TEST_RESULT_UC_NG 0x00010000
  95. #define WEARABLE_FT_TEST_RESULT_SINGLE_CC_OPEN_NG 0x00020000
  96. #define WEARABLE_FT_TEST_RESULT_SINGLE_CC_SHORT_NG 0x00040000
  97. #define WEARABLE_FT_TEST_RESULT_CC_CALIBRATION_NG 0x00080000
  98. #define WEARABLE_FT_TEST_RESULT_TEST_INIT_NG 0x00100000
  99. #define WEARABLE_FT_TEST_RESULT_LOAD_TESTFW_NG 0x00200000
  100. #define WEARABLE_FT_TEST_RESULT_BURN_FW_NG 0x00400000
  101. #define WEARABLE_FT_TEST_RESULT_IC_FW_VERIFY_NG 0x00800000
  102. #define WEARABLE_FT_TEST_RESULT_EXT_FLASH_EMPTY_NG 0x01000000
  103. #define WEARABLE_FT_TEST_RESULT_MCU_HOLD_NG 0x02000000
  104. #if SELFTEST
  105. #define WEARABLE_FT_TEST_RESULT_SYSFS_NG 0x04000000
  106. #else
  107. #define WEARABLE_FT_TEST_RESULT_AUO_JIG_NG 0x04000000
  108. #endif
  109. #define WEARABLE_FT_TEST_RESULT_NORMAL_FW_RESET_NG 0x08000000
  110. #define WEARABLE_FT_TEST_RESULT_POWER_ON_NG 0x10000000
  111. #define WEARABLE_FT_TEST_RESULT_CMD_NG 0x20000000
  112. #define WEARABLE_FT_TEST_RESULT_IC_SUB_VERSION_NG 0x40000000
  113. #define WEARABLE_FT_TEST_RESULT_IC_VERSION_NG 0x80000000
  114. #define WEARBLE_FT_BURN_CC_SYSTEM_NG_CASE 1
  115. #define WEARBLE_FT_FW_VER_SYSTEM_NG_CASE 2
  116. #define WEARBLE_FT_I2C_SYSTEM_NG_CASE 3
  117. #define WEARBLE_FT_INT_SYSTEM_NG_CASE 4
  118. #define WEARBLE_FT_LOAD_TEST_FW_SYSTEM_NG_CASE 5
  119. #define WEARBLE_FT_PRAM_SYSTEM_NG_CASE 6
  120. #define WEARBLE_FT_RESET_PIN_SYSTEM_NG_CASE 7
  121. // Define ic test state
  122. typedef enum {
  123. IC_TEST_INIT = 0,
  124. IC_TEST_SYSTEM, //1
  125. IC_TEST_BURN_FW, //2
  126. IC_TEST_BURN_CC, //3
  127. IC_TEST_LOAD_TEST_FW, //4
  128. IC_TEST_ENTER_FW_TEST_MODE, //5
  129. IC_TEST_OPEN_SHORT, //6
  130. IC_TEST_READ_TEST_FW_DATA, //7
  131. IC_ENTER_NORMAL_FW, //8
  132. IC_TEST_UC_UB, //9
  133. IC_TEST_PANEL_PATTERN_TEST, //10
  134. IC_TEST_EXIT, //11
  135. } IC_TEST_STATE;
  136. #pragma pack(push)
  137. #pragma pack(1)
  138. typedef struct {
  139. //-------- FT Test Info (Byte 16)-----------------//
  140. unsigned char u8_device_id;
  141. unsigned char u8_company_id;
  142. unsigned char u8_project_id;
  143. unsigned char u8_station_id;
  144. unsigned short u16_ft_test_item;
  145. unsigned short u16_ft_eng_item;
  146. unsigned short u16_ft_test_info_1;
  147. unsigned short u16_ft_test_info_2;
  148. unsigned short u16_ft_test_info_3;
  149. unsigned short u16_ft_test_info_4;
  150. } st_test_info;
  151. extern st_test_info g_st_test_info;
  152. typedef struct {
  153. //-------- FT Test Threshold (Byte 26)----------------//
  154. unsigned char u8_ft_test_company_id;
  155. unsigned char u8_ft_test_station_id;
  156. signed short i16_ft_test_open_lower_thd; //TEST_THD_01
  157. signed short i16_ft_test_short_upper_thd; //TEST_THD_02
  158. signed short i16_ft_test_short_lower_thd; //TEST_THD_03
  159. signed short i16_ft_test_single_cc_upper_thd; //TEST_THD_04
  160. signed short i16_ft_test_single_cc_lower_thd; //TEST_THD_05
  161. signed short i16_ft_test_uniformity_bl_upper_thd; //TEST_THD_06
  162. signed short i16_ft_test_uniformity_bl_lower_thd; //TEST_THD_07
  163. signed short i16_ft_test_uniformity_cc_upper_thd; //TEST_THD_08
  164. signed short i16_ft_test_uniformity_cc_lower_thd; //TEST_THD_09
  165. signed short i16_ft_test_panel_test_1_thd; //TEST_THD_10
  166. signed short i16_ft_test_panel_test_3_thd; //TEST_THD_11
  167. signed short i16_ft_test_panel_test_2_thd; //TEST_THD_12
  168. //-------- reserve (Byte 10)-----------------//
  169. signed short i16_ft_test_panel_test_2_s2_thd; //TEST_THD_13
  170. signed short i16_ft_test_thd_14;
  171. signed short i16_ft_test_thd_15;
  172. signed short i16_ft_test_thd_16;
  173. signed short i16_ft_test_thd_resv;
  174. } st_test_threshold;
  175. extern st_test_threshold g_st_test_thd;
  176. typedef struct {
  177. //-------- FT Test Parameter (Byte 48)-----------------//
  178. unsigned char u8_para_resv_0[40];
  179. unsigned int u32_normal_fw_version;
  180. unsigned int u32_test_fw_version;
  181. } st_test_para_resv;
  182. extern st_test_para_resv g_st_test_para_resv;
  183. #pragma pack(pop)
  184. extern unsigned char g_u8_ic_test_state;
  185. extern STATUS wearable_ic_test_read_info(void);
  186. extern STATUS wearable_ic_test_init(void);
  187. extern void handle_ic_test(void);
  188. extern void wearable_ic_test_init_buffer(void);
  189. extern STATUS handle_burn_log_to_flash(void);
  190. extern void handle_set_display_interface(unsigned char u8_interface);