adsp_ft_common.h 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. /*
  2. * Copyright (C) 2012, Samsung Electronics Co. Ltd. All Rights Reserved.
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License as published by
  6. * the Free Software Foundation; either version 2 of the License, or
  7. * (at your option) any later version.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. *
  14. */
  15. #ifndef __ADSP_FT_COMMON_H__
  16. #define __ADSP_FT_COMMON_H__
  17. #ifdef SS_SLPI_PROJECT// hal build
  18. #ifndef IS_ENABLED
  19. #define IS_ENABLED(x) 0
  20. #endif
  21. #else// kernel build
  22. #include <linux/kernel.h>
  23. #endif
  24. #define PID 20000
  25. #define NETLINK_ADSP_FAC 23
  26. #define MAX_REG_NUM 128
  27. /* max size of each sensor's msg_buf */
  28. #define MSG_TYPE_SIZE_ZERO 0
  29. #define MSG_ACCEL_MAX 128
  30. #define MSG_GYRO_MAX 20
  31. #define MSG_MAG_MAX 15
  32. #define MSG_LIGHT_MAX 16
  33. #define MSG_PROX_MAX 16
  34. #define MSG_GYRO_TEMP_MAX 3
  35. #define MSG_PRESSURE_TEMP_MAX 4
  36. #define MSG_PRESSURE_MAX 128
  37. #define MSG_FLIP_COVER_DETECTOR_MAX 3
  38. #define MSG_BACKTAP_MAX 1
  39. #define MSG_VOPTIC_MAX 2
  40. #define MSG_REG_SNS_MAX 24 /* 8 * 3 */
  41. #if IS_ENABLED(CONFIG_SUPPORT_AK09973) || defined(CONFIG_SUPPORT_AK09973)
  42. #define MSG_DIGITAL_HALL_MAX 15
  43. #define MSG_DIGITAL_HALL_ANGLE_MAX 58
  44. #elif IS_ENABLED(CONFIG_SUPPORT_REF_ANGLE_WITHOUT_DIGITAL_HALL) || defined(CONFIG_SUPPORT_REF_ANGLE_WITHOUT_DIGITAL_HALL)
  45. #define MSG_REF_ANGLE_MAX 9
  46. #endif
  47. #if IS_ENABLED(CONFIG_SUPPORT_DUAL_DDI_COPR_FOR_LIGHT_SENSOR) || defined(CONFIG_SUPPORT_DUAL_DDI_COPR_FOR_LIGHT_SENSOR)
  48. #define MSG_DDI_MAX 12
  49. #endif
  50. #if IS_ENABLED(CONFIG_SUPPORT_FLICKER) || defined(CONFIG_SUPPORT_FLICKER)
  51. #define MSG_FLICKER_MAX 12
  52. #endif
  53. #define MSG_COMMON_INFO_MAX BD_SENSOR_MAX
  54. #define ACCEL_FACTORY_CAL_PATH "/efs/FactoryApp/accel_factory_cal"
  55. #define SUB_ACCEL_FACTORY_CAL_PATH "/efs/FactoryApp/sub_accel_factory_cal"
  56. #define SW_OFFSET_FILE_PATH "/efs/FactoryApp/baro_sw_offset"
  57. #if IS_ENABLED(CONFIG_SUPPORT_AK09973) || defined(CONFIG_SUPPORT_AK09973)
  58. #define AUTO_CAL_DATA_NUM 19
  59. #define AUTO_CAL_FILE_BUF_LEN 140
  60. #define DIGITAL_HALL_AUTO_CAL_X_PATH "/efs/FactoryApp/digital_hall_auto_cal_x"
  61. #define DIGITAL_HALL_AUTO_CAL_Y_PATH "/efs/FactoryApp/digital_hall_auto_cal_y"
  62. #define DIGITAL_HALL_AUTO_CAL_Z_PATH "/efs/FactoryApp/digital_hall_auto_cal_z"
  63. #define ENABLE_LF_STREAM 0
  64. #endif
  65. enum {
  66. MSG_ACCEL,
  67. MSG_GYRO,
  68. MSG_MAG,
  69. MSG_PRESSURE,
  70. MSG_LIGHT,
  71. MSG_PROX,
  72. #if IS_ENABLED(CONFIG_SUPPORT_DUAL_OPTIC) || defined(CONFIG_SUPPORT_DUAL_OPTIC)
  73. MSG_LIGHT_SUB,
  74. MSG_PROX_SUB,
  75. #endif
  76. #if IS_ENABLED(CONFIG_FLICKER_FACTORY) || defined(CONFIG_FLICKER_FACTORY)
  77. MSG_FLICKER,
  78. #endif
  79. #if IS_ENABLED(CONFIG_SUPPORT_DUAL_6AXIS) || defined(CONFIG_SUPPORT_DUAL_6AXIS)
  80. MSG_ACCEL_SUB,
  81. MSG_GYRO_SUB,
  82. #endif
  83. PHYSICAL_SENSOR_SYSFS,//MSG_TYPE_SIZE_ZERO
  84. MSG_GYRO_TEMP,
  85. #if IS_ENABLED(CONFIG_SUPPORT_DUAL_6AXIS) || defined(CONFIG_SUPPORT_DUAL_6AXIS)
  86. MSG_GYRO_SUB_TEMP,
  87. #endif
  88. MSG_PRESSURE_TEMP,
  89. MSG_MAG_CAL,//MSG_TYPE_SIZE_ZERO
  90. #if IS_ENABLED(CONFIG_FLIP_COVER_DETECTOR_FACTORY) || defined(CONFIG_FLIP_COVER_DETECTOR_FACTORY)
  91. MSG_FLIP_COVER_DETECTOR,
  92. #endif
  93. #if IS_ENABLED(CONFIG_SUPPORT_VIRTUAL_OPTIC) || defined(CONFIG_SUPPORT_VIRTUAL_OPTIC)
  94. MSG_VIR_OPTIC,
  95. #endif
  96. MSG_REG_SNS,//MSG_TYPE_SIZE_ZERO
  97. #if IS_ENABLED(CONFIG_SUPPORT_AK09973) || defined(CONFIG_SUPPORT_AK09973)
  98. MSG_DIGITAL_HALL,
  99. MSG_DIGITAL_HALL_ANGLE,
  100. #if ENABLE_LF_STREAM
  101. MSG_LF_STREAM,
  102. #endif
  103. #elif IS_ENABLED(CONFIG_SUPPORT_REF_ANGLE_WITHOUT_DIGITAL_HALL) || defined(CONFIG_SUPPORT_REF_ANGLE_WITHOUT_DIGITAL_HALL)
  104. MSG_REF_ANGLE,
  105. #endif
  106. #if IS_ENABLED(CONFIG_SUPPORT_DUAL_DDI_COPR_FOR_LIGHT_SENSOR) || defined(CONFIG_SUPPORT_DUAL_DDI_COPR_FOR_LIGHT_SENSOR)
  107. MSG_DDI,
  108. #endif
  109. #if IS_ENABLED(CONFIG_SUPPORT_LIGHT_MAIN2_SENSOR) || defined(CONFIG_SUPPORT_LIGHT_MAIN2_SENSOR)
  110. MSG_LIGHT_MAIN2,
  111. #endif
  112. #if IS_ENABLED(CONFIG_BACKTAP_FACTORY) || defined(CONFIG_BACKTAP_FACTORY)
  113. MSG_BACKTAP,
  114. #endif
  115. MSG_FACTORY_INIT_CMD,//MSG_TYPE_SIZE_ZERO
  116. MSG_SSC_CORE,//MSG_TYPE_SIZE_ZERO
  117. MSG_SENSOR_MAX
  118. };
  119. /* Netlink ENUMS Message Protocols */
  120. enum {
  121. MSG_TYPE_GET_RAW_DATA,
  122. MSG_TYPE_ST_SHOW_DATA,
  123. MSG_TYPE_SET_ACCEL_LPF,
  124. MSG_TYPE_SET_ACCEL_MOTOR,
  125. MSG_TYPE_GET_THRESHOLD,
  126. MSG_TYPE_SET_THRESHOLD,
  127. MSG_TYPE_SET_TEMPORARY_MSG,
  128. MSG_TYPE_GET_REGISTER,
  129. MSG_TYPE_SET_REGISTER,
  130. MSG_TYPE_GET_DUMP_REGISTER,
  131. MSG_TYPE_GET_CAL_DATA,
  132. MSG_TYPE_SET_CAL_DATA,
  133. MSG_TYPE_GET_DHR_INFO,
  134. MSG_TYPE_FACTORY_ENABLE,
  135. MSG_TYPE_FACTORY_DISABLE,
  136. MSG_TYPE_OPTION_DEFINE,
  137. MSG_TYPE_DUMPSTATE,
  138. MSG_TYPE_MAX
  139. };
  140. /* Sensor types defined by android */
  141. /* (Keep in sync with hardware/sensors-base.h and Sensor.java.) */
  142. #define SENSOR_HANDLE_ACCELEROMETER (1)
  143. #define SENSOR_HANDLE_GEOMAGNETIC_FIELD (2)
  144. #define SENSOR_HANDLE_GYROSCOPE (4)
  145. #define SENSOR_HANDLE_LIGHT (5)
  146. #define SENSOR_HANDLE_PRESSURE (6)
  147. #if IS_ENABLED(CONFIG_SUPPORT_DUAL_6AXIS)
  148. #define SENSOR_HANDLE_ACCELEROMETER_SUB (65687)
  149. #endif
  150. #define SENSOR_HANDLE_ALL (0)
  151. #define SENSOR_NAME_MAX 40
  152. #if IS_ENABLED(CONFIG_SUPPORT_DUAL_OPTIC) || defined(CONFIG_SUPPORT_DUAL_OPTIC)
  153. enum {
  154. FSTATE_INACTIVE,
  155. FSTATE_ACTIVE,
  156. FSTATE_FAC_INACTIVE,
  157. FSTATE_FAC_ACTIVE,
  158. FSTATE_FAC_INACTIVE_2
  159. };
  160. #define LIGHT_DUAL_CHECK_MODE 13
  161. enum {
  162. VOPTIC_OP_CMD_FAC_FLIP,
  163. VOPTIC_OP_CMD_SSC_FLIP,
  164. VOPTIC_OP_CMD_SSC_FLIP_UPDATE,
  165. VOPTIC_OP_CMD_MAX
  166. };
  167. #endif
  168. enum {
  169. COMMON_DATA_SET_ABS_OFF, // 0x00 00 47 C1
  170. COMMON_DATA_SET_ABS_ON, // 0x01 00 47 C1
  171. #if IS_ENABLED(CONFIG_SUPPORT_VFOLD_FLEX) || defined(CONFIG_SUPPORT_VFOLD_FLEX)
  172. COMMON_DATA_SET_MAIN_ON, // 0x02 00 47 C1
  173. COMMON_DATA_SET_SUB_ON, // 0x03 00 47 C1
  174. #endif
  175. COMMON_DATA_SET_LCD_INTENT_ON = 0xf1, // 0xf1 00 47 C1
  176. COMMON_DATA_SET_LCD_INTENT_OFF, // 0xf2 00 47 C1
  177. };
  178. // for ssc_core sensor type
  179. enum {
  180. OPTION_TYPE_SSC_CHARGING_STATE, // for pocket mode
  181. OPTION_TYPE_SSC_ABS_LCD_TYPE, // for pocket mode
  182. OPTION_TYPE_SSC_LCD_TYPE, // for pocket mode + auto roation
  183. OPTION_TYPE_SSC_LCD_INTENT_TYPE, // for auto rotation
  184. OPTION_TYPE_SSC_DUMP_TYPE, // for pocket mode
  185. OPTION_TYPE_SSC_AOD_RECT, // for AOD
  186. OPTION_TYPE_SSC_AOD_LIGHT_CIRCLE, // for AOD
  187. OPTION_TYPE_SSC_LIGHT_SEAMLESS, // for light seamless
  188. OPTION_TYPE_SSC_AUTO_ROTATION_MODE, // for auto rotation
  189. OPTION_TYPE_SSC_SBM_INIT, // for sar backoff motion
  190. OPTION_TYPE_SSC_WAKEUP_REASON, // for commoninfo
  191. OPTION_TYPE_SSC_RECOVERY, // for commoninfo
  192. OPTION_TYPE_SSC_POCKET_INJECT, // for pocket mode
  193. OPTION_TYPE_SSC_SSR_DUMP, // for commoninfo
  194. OPTION_TYPE_SSC_MAX
  195. };
  196. enum {
  197. BD_SMD, //0
  198. BD_TILT,
  199. BD_PICKUP,
  200. BD_SBM,
  201. BD_WAKEUP_MOTION,
  202. BD_PROXIMITY,
  203. BD_CALL_GESTURE,
  204. BD_POCKET_MODE,
  205. BD_LED_COVER,
  206. BD_FLIP_COVER,
  207. BD_DROP_CLASSIFIER, // 10
  208. BD_POCKET_PS_MODE,
  209. BD_STEP_CNT_ALERT,
  210. BD_FOLDING_STATE_LPM,
  211. BD_HINGE_ANGLE,
  212. BD_LID_ANGLE_FUSION,
  213. BD_ANGLE_SENSOR_STATUS,
  214. BD_SCONTEXT_START_IDX,
  215. BD_SEM_MOVEMENT = BD_SCONTEXT_START_IDX, //17
  216. BD_SEM_AUTO_ROTATION,
  217. BD_SEM_WIRELESS_CHARGING_DET,
  218. BD_SEM_PUT_DOWN_MOTION, //20
  219. BD_SEM_SLOCATION,
  220. BD_SEM_AMD,
  221. BD_SEM_AOD,
  222. BD_SEM_FLAT_MOTION,
  223. BD_SEM_SNS_STATUS_CHECK,
  224. BD_SEM_DEVICE_POSITION,
  225. BD_SEM_LOC_CHANGE_TRIGGER,
  226. BD_SEM_FREE_FALL_DET,
  227. BD_SEM_START_ACTIVITIES,
  228. BD_SEM_PEDOMETER = BD_SEM_START_ACTIVITIES,
  229. BD_SEM_STEP_LEVEL_MONITOR, //30
  230. BD_SEM_AT_NORMAL,
  231. BD_SEM_AT_INT,
  232. BD_SEM_AT_BATCH,
  233. BD_SEM_AT_EXT_INT,
  234. BD_SEM_ACTIVITY_CAL, // Activity vehicle
  235. BD_SENSOR_MAX
  236. };
  237. #endif