GP22_ATY.h 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481
  1. /**
  2. * @file GP22_ATY.h
  3. *
  4. * @param Project DEVICE_GENERAL_ATY_LIB
  5. *
  6. * @author ATY
  7. *
  8. * @copyright
  9. * - Copyright 2017 - 2023 MZ-ATY
  10. * - This code follows:
  11. * - MZ-ATY Various Contents Joint Statement -
  12. * <a href="https://mengze.top/MZ-ATY_VCJS">
  13. * https://mengze.top/MZ-ATY_VCJS</a>
  14. * - CC 4.0 BY-NC-SA -
  15. * <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
  16. * https://creativecommons.org/licenses/by-nc-sa/4.0/</a>
  17. * - Your use will be deemed to have accepted the terms of this statement.
  18. *
  19. * @brief Base functions of GP22 for all embedded device
  20. *
  21. * @version
  22. * - 1_01_220901 > ATY
  23. * -# Preliminary version, first Release
  24. ********************************************************************************
  25. */
  26. #ifndef __GP22_ATY_H
  27. #define __GP22_ATY_H
  28. #include "INCLUDE_ATY.h"
  29. #include "ALGO_AlgorithmBase_ATY.h"
  30. #include "ALGO_Temperature_ATY.h"
  31. #include "ALGO_Kalman_ATY.h"
  32. #include "HW_GPIO_ATY.h"
  33. #include "HW_SPI_ATY.h"
  34. #include "main.h"
  35. /******************************* For user *************************************/
  36. // #define __DEBUG_GP22_ATY
  37. // #define __DEBUG_GP22_OPCODE_ATY
  38. extern uint8_t gp22Mode;
  39. extern uint8_t GP22_Ids[8];
  40. extern uint32_t GP22_REG[7];
  41. extern uint32_t tofValue[4];
  42. extern float tempRealValue[2];
  43. extern float echoTimeDetect[2];
  44. extern float echoTimeCalc[2];
  45. extern float speedWave[2];
  46. extern uint32_t PW1ST_ValueA;
  47. extern float machineDelayTime;
  48. extern float usDistance;
  49. extern volatile uint8_t pulseGenNum;
  50. extern volatile uint8_t firstWaveEnable;
  51. extern volatile uint8_t pulseNum;
  52. extern volatile uint16_t ignoreTime;
  53. extern volatile uint16_t offsetValue;
  54. extern volatile uint8_t startPulseNum;
  55. /******************************************************************************/
  56. /******************************* For board ************************************/
  57. /*
  58. The TDC-GP22 does only support the following SPI mode (Motorola specification) *
  59. Clock Phase Bit = 1 Clock Polarity Bit = 0
  60. */
  61. #define GP22_HSC_FREQ 4 // MHz
  62. #define GP22_CLKHS_DIV 1
  63. /* The resulting clock after the predivider has to be in the allowed range of
  64. 2 MHz to 8 MHz in single and double resolution and from 2 MHz to 6 MHz in quad resolution */
  65. #define GP22_CLKHS_FREQ (GP22_HSC_FREQ / (1 << GP22_CLKHS_DIV)) // MHz
  66. #define GP22_CLKHS_PERIOD 0
  67. extern float GP22_CALC_CLKHS_FREQ; // MHz
  68. #define GP22_TEMP_REF_RES 10.0 // KOhm
  69. /******************************************************************************/
  70. uint8_t GP22_Process_UsWave1MHz(uint8_t cmdCode);
  71. uint8_t GP22_Process_Run(uint8_t cmdCode);
  72. #define GP22_STEP_RESET 0x01
  73. #define GP22_STEP_SPI_TEST 0x02
  74. #define GP22_STEP_REG_INIT 0x04
  75. #define GP22_STEP_READ_ID 0x08
  76. #define GP22_STEP_COMPARE_E2 0x10
  77. #define GP22_STEP_CALC_HSC 0x20
  78. #define GP22_STEP_START_TEMP 0x40
  79. #define GP22_STEP_START_TOF 0x80
  80. #define GP22_SIGNAL_H GPIO_SET_H(GP22_SIGNAL_PORT, GP22_SIGNAL_PIN)
  81. #define GP22_SIGNAL_L GPIO_SET_L(GP22_SIGNAL_PORT, GP22_SIGNAL_PIN)
  82. #define GP22_SIGNAL_A_H GPIO_SET_H(GP22_SIGNAL_A_PORT, GP22_SIGNAL_A_PIN)
  83. #define GP22_SIGNAL_A_L GPIO_SET_L(GP22_SIGNAL_A_PORT, GP22_SIGNAL_A_PIN)
  84. /* Device define **************************************************************/
  85. /* GPIO define outside of spi *************************************************/
  86. /* IO Info(suit for 5V - 3V MCU and 3.3V - 2.8V GP22, line connect 100R res in series)
  87. RSTN PP
  88. EN PP
  89. CSN PP
  90. MOSI PP
  91. MISO HI
  92. SCLK PP
  93. INTN HI(High impedance input)
  94. */
  95. #define GP22_ENABLE GPIO_SET_L(GP22_CSN_PORT, GP22_CSN_PIN)
  96. #define GP22_DISABLE GPIO_SET_H(GP22_CSN_PORT, GP22_CSN_PIN)
  97. #define GP22_RESET GPIO_SET_L(GP22_RST_PORT, GP22_RST_PIN)
  98. #define GP22_NORESET GPIO_SET_H(GP22_RST_PORT, GP22_RST_PIN)
  99. #define GP22_READ_INT_H GPIO_GET_H(GP22_INT_PORT, GP22_INT_PIN)
  100. #define GP22_READ_INT_L GPIO_GET_L(GP22_INT_PORT, GP22_INT_PIN)
  101. #define GP22_WAKE \
  102. do{ \
  103. GPIO_SET_H(GP22_EN_PORT, GP22_EN_PIN); \
  104. GPIO_SET_H(GP22_INT_PORT, GP22_INT_PIN); \
  105. } while(0)
  106. #define GP22_SLEEP \
  107. do{ \
  108. SPCTL = 0x00; \
  109. GPIO_SET_L(GP22_RST_PORT, GP22_RST_PIN); \
  110. GPIO_SET_L(GP22_CSN_PORT, GP22_CSN_PIN); \
  111. GPIO_SET_L(GP22_SCLK_PORT, GP22_SCLK_PIN); \
  112. GPIO_SET_L(GP22_MOSI_PORT, GP22_MOSI_PIN); \
  113. GPIO_SET_L(GP22_EN_PORT, GP22_EN_PIN); \
  114. GPIO_SET_L(GP22_MISO_PORT, GP22_MISO_PIN); \
  115. GPIO_SET_L(GP22_INT_PORT, GP22_INT_PIN); \
  116. } while(0)
  117. /* Opcode define **************************************************************/
  118. #define GP22_OPCODE_INIT 0x70
  119. #define GP22_OPCODE_RESET 0x50
  120. #define GP22_OPCODE_START_TOF 0x01
  121. #define GP22_OPCODE_START_TEMP 0x02
  122. #define GP22_OPCODE_CALC_HSC 0x03
  123. #define GP22_OPCODE_START_CAL_TOF 0x04
  124. #define GP22_OPCODE_START_TOF2 0x05
  125. #define GP22_OPCODE_START_TEMP2 0x06
  126. #define GP22_OPCODE_WRITE_REG 0x80
  127. #define GP22_OPCODE_READ_REG 0xB0
  128. #define GP22_OPCODE_READ_ID 0xB7
  129. #define GP22_OPCODE_WRITE_E2 0xC0
  130. #define GP22_OPCODE_TRANS_E2 0xF0
  131. #define GP22_OPCODE_COMPARE_E2 0xC6
  132. #define GP22_REGADDR_STATUS 0x04
  133. #define GP22_REGADDR_TEST 0x05
  134. #define GP22_REGADDR_PW1ST 0x05
  135. /* Default register values on reset *******************************************/
  136. #define GP22_CFG_DEFAULT0 0x22066800
  137. #define GP22_CFG_DEFAULT1 0x55400000
  138. #define GP22_CFG_DEFAULT2 0x20000000
  139. #define GP22_CFG_DEFAULT3 0x18000000
  140. #define GP22_CFG_DEFAULT4 0x20000000
  141. #define GP22_CFG_DEFAULT5 0x00000000
  142. #define GP22_CFG_DEFAULT6 0x00000000
  143. /* Blank register values except for the "keep default" values ****************/
  144. #define GP22_CFG_KEEP_DEFAULT0 0x00000000
  145. #define GP22_CFG_KEEP_DEFAULT1 0x00400000
  146. #define GP22_CFG_KEEP_DEFAULT2 0x00000000
  147. #define GP22_CFG_KEEP_DEFAULT3 0x00000000
  148. #define GP22_CFG_KEEP_DEFAULT4 0x20000000
  149. #define GP22_CFG_KEEP_DEFAULT5 0x00000000
  150. #define GP22_CFG_KEEP_DEFAULT6 0x00000000
  151. /* Register definition ********************************************************/
  152. #define GP22_CFG0_ID0_0 ALGO_BITMASK(0)
  153. #define GP22_CFG0_ID0_1 ALGO_BITMASK(1)
  154. #define GP22_CFG0_ID0_2 ALGO_BITMASK(2)
  155. #define GP22_CFG0_ID0_3 ALGO_BITMASK(3)
  156. #define GP22_CFG0_ID0_4 ALGO_BITMASK(4)
  157. #define GP22_CFG0_ID0_5 ALGO_BITMASK(5)
  158. #define GP22_CFG0_ID0_6 ALGO_BITMASK(6)
  159. #define GP22_CFG0_ID0_7 ALGO_BITMASK(7)
  160. #define GP22_CFG0_NEG_START ALGO_BITMASK(8)
  161. #define GP22_CFG0_NEG_STOP1 ALGO_BITMASK(9)
  162. #define GP22_CFG0_NEG_STOP2 ALGO_BITMASK(10)
  163. #define GP22_CFG0_MESSB2 ALGO_BITMASK(11)
  164. #define GP22_CFG0_NO_CAL_AUTO ALGO_BITMASK(12)
  165. #define GP22_CFG0_CALIBRATE ALGO_BITMASK(13)
  166. #define GP22_CFG0_SEL_ECLK_TEMP ALGO_BITMASK(14)
  167. #define GP22_CFG0_ANZ_FAKE ALGO_BITMASK(15)
  168. #define GP22_CFG0_TCYCLE ALGO_BITMASK(16)
  169. #define GP22_CFG0_ANZ_PORT ALGO_BITMASK(17)
  170. #define GP22_CFG0_START_CLKHS_0 ALGO_BITMASK(18)
  171. #define GP22_CFG0_START_CLKHS_1 ALGO_BITMASK(19)
  172. #define GP22_CFG0_DIV_CLKHS_0 ALGO_BITMASK(20)
  173. #define GP22_CFG0_DIV_CLKHS_1 ALGO_BITMASK(21)
  174. #define GP22_CFG0_ANZ_PER_CALRES_0 ALGO_BITMASK(22)
  175. #define GP22_CFG0_ANZ_PER_CALRES_1 ALGO_BITMASK(23)
  176. #define GP22_CFG0_DIV_FIRE_0 ALGO_BITMASK(24)
  177. #define GP22_CFG0_DIV_FIRE_1 ALGO_BITMASK(25)
  178. #define GP22_CFG0_DIV_FIRE_2 ALGO_BITMASK(26)
  179. #define GP22_CFG0_DIV_FIRE_3 ALGO_BITMASK(27)
  180. #define GP22_CFG0_ANZ_FIRE_0 ALGO_BITMASK(28)
  181. #define GP22_CFG0_ANZ_FIRE_1 ALGO_BITMASK(29)
  182. #define GP22_CFG0_ANZ_FIRE_2 ALGO_BITMASK(30)
  183. #define GP22_CFG0_ANZ_FIRE_3 ALGO_BITMASK(31)
  184. #define GP22_CFG1_ID1_0 ALGO_BITMASK(0)
  185. #define GP22_CFG1_ID1_1 ALGO_BITMASK(1)
  186. #define GP22_CFG1_ID1_2 ALGO_BITMASK(2)
  187. #define GP22_CFG1_ID1_3 ALGO_BITMASK(3)
  188. #define GP22_CFG1_ID1_4 ALGO_BITMASK(4)
  189. #define GP22_CFG1_ID1_5 ALGO_BITMASK(5)
  190. #define GP22_CFG1_ID1_6 ALGO_BITMASK(6)
  191. #define GP22_CFG1_ID1_7 ALGO_BITMASK(7)
  192. #define GP22_CFG1_SEL_TSTO1_0 ALGO_BITMASK(8)
  193. #define GP22_CFG1_SEL_TSTO1_1 ALGO_BITMASK(9)
  194. #define GP22_CFG1_SEL_TSTO1_2 ALGO_BITMASK(10)
  195. #define GP22_CFG1_SEL_TSTO2_0 ALGO_BITMASK(11)
  196. #define GP22_CFG1_SEL_TSTO2_1 ALGO_BITMASK(12)
  197. #define GP22_CFG1_SEL_TSTO2_2 ALGO_BITMASK(13)
  198. #define GP22_CFG1_SEL_START_FIRE ALGO_BITMASK(14)
  199. #define GP22_CFG1_CURR32K ALGO_BITMASK(15)
  200. #define GP22_CFG1_HITIN1_0 ALGO_BITMASK(16)
  201. #define GP22_CFG1_HITIN1_1 ALGO_BITMASK(17)
  202. #define GP22_CFG1_HITIN1_2 ALGO_BITMASK(18)
  203. #define GP22_CFG1_HITIN2_0 ALGO_BITMASK(19)
  204. #define GP22_CFG1_HITIN2_1 ALGO_BITMASK(20)
  205. #define GP22_CFG1_HITIN2_2 ALGO_BITMASK(21)
  206. #define GP22_CFG1_KEEP_DEFAULT ALGO_BITMASK(22)
  207. #define GP22_CFG1_EN_FAST_INIT ALGO_BITMASK(23)
  208. #define GP22_CFG1_HIT1_0 ALGO_BITMASK(24)
  209. #define GP22_CFG1_HIT1_1 ALGO_BITMASK(25)
  210. #define GP22_CFG1_HIT1_2 ALGO_BITMASK(26)
  211. #define GP22_CFG1_HIT1_3 ALGO_BITMASK(27)
  212. #define GP22_CFG1_HIT2_0 ALGO_BITMASK(28)
  213. #define GP22_CFG1_HIT2_1 ALGO_BITMASK(29)
  214. #define GP22_CFG1_HIT2_2 ALGO_BITMASK(30)
  215. #define GP22_CFG1_HIT2_3 ALGO_BITMASK(31)
  216. #define GP22_CFG2_ID2_0 ALGO_BITMASK(0)
  217. #define GP22_CFG2_ID2_1 ALGO_BITMASK(1)
  218. #define GP22_CFG2_ID2_2 ALGO_BITMASK(2)
  219. #define GP22_CFG2_ID2_3 ALGO_BITMASK(3)
  220. #define GP22_CFG2_ID2_4 ALGO_BITMASK(4)
  221. #define GP22_CFG2_ID2_5 ALGO_BITMASK(5)
  222. #define GP22_CFG2_ID2_6 ALGO_BITMASK(6)
  223. #define GP22_CFG2_ID2_7 ALGO_BITMASK(7)
  224. #define GP22_CFG2_DELVAL1_0 ALGO_BITMASK(8)
  225. #define GP22_CFG2_DELVAL1_1 ALGO_BITMASK(9)
  226. #define GP22_CFG2_DELVAL1_2 ALGO_BITMASK(10)
  227. #define GP22_CFG2_DELVAL1_3 ALGO_BITMASK(11)
  228. #define GP22_CFG2_DELVAL1_4 ALGO_BITMASK(12)
  229. #define GP22_CFG2_DELVAL1_5 ALGO_BITMASK(13)
  230. #define GP22_CFG2_DELVAL1_6 ALGO_BITMASK(14)
  231. #define GP22_CFG2_DELVAL1_7 ALGO_BITMASK(15)
  232. #define GP22_CFG2_DELVAL1_8 ALGO_BITMASK(16)
  233. #define GP22_CFG2_DELVAL1_9 ALGO_BITMASK(17)
  234. #define GP22_CFG2_DELVAL1_10 ALGO_BITMASK(18)
  235. #define GP22_CFG2_DELVAL1_11 ALGO_BITMASK(19)
  236. #define GP22_CFG2_DELVAL1_12 ALGO_BITMASK(20)
  237. #define GP22_CFG2_DELVAL1_13 ALGO_BITMASK(21)
  238. #define GP22_CFG2_DELVAL1_14 ALGO_BITMASK(22)
  239. #define GP22_CFG2_DELVAL1_15 ALGO_BITMASK(23)
  240. #define GP22_CFG2_DELVAL1_16 ALGO_BITMASK(24)
  241. #define GP22_CFG2_DELVAL1_17 ALGO_BITMASK(25)
  242. #define GP22_CFG2_DELVAL1_18 ALGO_BITMASK(26)
  243. #define GP22_CFG2_RFEDGE1 ALGO_BITMASK(27)
  244. #define GP22_CFG2_RFEDGE2 ALGO_BITMASK(28)
  245. #define GP22_CFG2_EN_INT_ALU ALGO_BITMASK(29)
  246. #define GP22_CFG2_EN_INT_HITS ALGO_BITMASK(30)
  247. #define GP22_CFG2_EN_INT_TDC_TIMEOUT ALGO_BITMASK(31)
  248. #define GP22_CFG3_ID3_0 ALGO_BITMASK(0)
  249. #define GP22_CFG3_ID3_1 ALGO_BITMASK(1)
  250. #define GP22_CFG3_ID3_2 ALGO_BITMASK(2)
  251. #define GP22_CFG3_ID3_3 ALGO_BITMASK(3)
  252. #define GP22_CFG3_ID3_4 ALGO_BITMASK(4)
  253. #define GP22_CFG3_ID3_5 ALGO_BITMASK(5)
  254. #define GP22_CFG3_ID3_6 ALGO_BITMASK(6)
  255. #define GP22_CFG3_ID3_7 ALGO_BITMASK(7)
  256. #define GP22_CFG3_DELVAL2_0 ALGO_BITMASK(8)
  257. #define GP22_CFG3_DELVAL2_1 ALGO_BITMASK(9)
  258. #define GP22_CFG3_DELVAL2_2 ALGO_BITMASK(10)
  259. #define GP22_CFG3_DELVAL2_3 ALGO_BITMASK(11)
  260. #define GP22_CFG3_DELVAL2_4 ALGO_BITMASK(12)
  261. #define GP22_CFG3_DELVAL2_5 ALGO_BITMASK(13)
  262. #define GP22_CFG3_DELVAL2_6 ALGO_BITMASK(14)
  263. #define GP22_CFG3_DELVAL2_7 ALGO_BITMASK(15)
  264. #define GP22_CFG3_DELVAL2_8 ALGO_BITMASK(16)
  265. #define GP22_CFG3_DELVAL2_9 ALGO_BITMASK(17)
  266. #define GP22_CFG3_DELVAL2_10 ALGO_BITMASK(18)
  267. #define GP22_CFG3_DELVAL2_11 ALGO_BITMASK(19)
  268. #define GP22_CFG3_DELVAL2_12 ALGO_BITMASK(20)
  269. #define GP22_CFG3_DELVAL2_13 ALGO_BITMASK(21)
  270. #define GP22_CFG3_DELVAL2_14 ALGO_BITMASK(22)
  271. #define GP22_CFG3_DELVAL2_15 ALGO_BITMASK(23)
  272. #define GP22_CFG3_DELVAL2_16 ALGO_BITMASK(24)
  273. #define GP22_CFG3_DELVAL2_17 ALGO_BITMASK(25)
  274. #define GP22_CFG3_DELVAL2_18 ALGO_BITMASK(26)
  275. #define GP22_CFG3_SEL_TIMO_MB2_0 ALGO_BITMASK(27)
  276. #define GP22_CFG3_SEL_TIMO_MB2_1 ALGO_BITMASK(28)
  277. #define GP22_CFG3_EN_ERR_VAL ALGO_BITMASK(29)
  278. #define GP22_CFG3_EN_FIRST_WAVE ALGO_BITMASK(30)
  279. #define GP22_CFG3_EN_AUTOCALC_MB2 ALGO_BITMASK(31)
  280. #define GP22_CFG4_ID4_0 ALGO_BITMASK(0)
  281. #define GP22_CFG4_ID4_1 ALGO_BITMASK(1)
  282. #define GP22_CFG4_ID4_2 ALGO_BITMASK(2)
  283. #define GP22_CFG4_ID4_3 ALGO_BITMASK(3)
  284. #define GP22_CFG4_ID4_4 ALGO_BITMASK(4)
  285. #define GP22_CFG4_ID4_5 ALGO_BITMASK(5)
  286. #define GP22_CFG4_ID4_6 ALGO_BITMASK(6)
  287. #define GP22_CFG4_ID4_7 ALGO_BITMASK(7)
  288. #define GP22_CFG4_DELVAL3_0 ALGO_BITMASK(8)
  289. #define GP22_CFG4_DELVAL3_1 ALGO_BITMASK(9)
  290. #define GP22_CFG4_DELVAL3_2 ALGO_BITMASK(10)
  291. #define GP22_CFG4_DELVAL3_3 ALGO_BITMASK(11)
  292. #define GP22_CFG4_DELVAL3_4 ALGO_BITMASK(12)
  293. #define GP22_CFG4_DELVAL3_5 ALGO_BITMASK(13)
  294. #define GP22_CFG4_DELVAL3_6 ALGO_BITMASK(14)
  295. #define GP22_CFG4_DELVAL3_7 ALGO_BITMASK(15)
  296. #define GP22_CFG4_DELVAL3_8 ALGO_BITMASK(16)
  297. #define GP22_CFG4_DELVAL3_9 ALGO_BITMASK(17)
  298. #define GP22_CFG4_DELVAL3_10 ALGO_BITMASK(18)
  299. #define GP22_CFG4_DELVAL3_11 ALGO_BITMASK(19)
  300. #define GP22_CFG4_DELVAL3_12 ALGO_BITMASK(20)
  301. #define GP22_CFG4_DELVAL3_13 ALGO_BITMASK(21)
  302. #define GP22_CFG4_DELVAL3_14 ALGO_BITMASK(22)
  303. #define GP22_CFG4_DELVAL3_15 ALGO_BITMASK(23)
  304. #define GP22_CFG4_DELVAL3_16 ALGO_BITMASK(24)
  305. #define GP22_CFG4_DELVAL3_17 ALGO_BITMASK(25)
  306. #define GP22_CFG4_DELVAL3_18 ALGO_BITMASK(26)
  307. #define GP22_CFG4_KEEP_DEFAULT_0 ALGO_BITMASK(27)
  308. #define GP22_CFG4_KEEP_DEFAULT_1 ALGO_BITMASK(28)
  309. #define GP22_CFG4_KEEP_DEFAULT_2 ALGO_BITMASK(29)
  310. #define GP22_CFG4_KEEP_DEFAULT_3 ALGO_BITMASK(30)
  311. #define GP22_CFG4_KEEP_DEFAULT_4 ALGO_BITMASK(31)
  312. #define GP22_CFG3FW_ID3_0 ALGO_BITMASK(0)
  313. #define GP22_CFG3FW_ID3_1 ALGO_BITMASK(1)
  314. #define GP22_CFG3FW_ID3_2 ALGO_BITMASK(2)
  315. #define GP22_CFG3FW_ID3_3 ALGO_BITMASK(3)
  316. #define GP22_CFG3FW_ID3_4 ALGO_BITMASK(4)
  317. #define GP22_CFG3FW_ID3_5 ALGO_BITMASK(5)
  318. #define GP22_CFG3FW_ID3_6 ALGO_BITMASK(6)
  319. #define GP22_CFG3FW_ID3_7 ALGO_BITMASK(7)
  320. #define GP22_CFG3FW_DELREL1_0 ALGO_BITMASK(8)
  321. #define GP22_CFG3FW_DELREL1_1 ALGO_BITMASK(9)
  322. #define GP22_CFG3FW_DELREL1_2 ALGO_BITMASK(10)
  323. #define GP22_CFG3FW_DELREL1_3 ALGO_BITMASK(11)
  324. #define GP22_CFG3FW_DELREL1_4 ALGO_BITMASK(12)
  325. #define GP22_CFG3FW_DELREL1_5 ALGO_BITMASK(13)
  326. #define GP22_CFG3FW_DELREL2_0 ALGO_BITMASK(14)
  327. #define GP22_CFG3FW_DELREL2_1 ALGO_BITMASK(15)
  328. #define GP22_CFG3FW_DELREL2_2 ALGO_BITMASK(16)
  329. #define GP22_CFG3FW_DELREL2_3 ALGO_BITMASK(17)
  330. #define GP22_CFG3FW_DELREL2_4 ALGO_BITMASK(18)
  331. #define GP22_CFG3FW_DELREL2_5 ALGO_BITMASK(19)
  332. #define GP22_CFG3FW_DELREL3_0 ALGO_BITMASK(20)
  333. #define GP22_CFG3FW_DELREL3_1 ALGO_BITMASK(21)
  334. #define GP22_CFG3FW_DELREL3_2 ALGO_BITMASK(22)
  335. #define GP22_CFG3FW_DELREL3_3 ALGO_BITMASK(23)
  336. #define GP22_CFG3FW_DELREL3_4 ALGO_BITMASK(24)
  337. #define GP22_CFG3FW_DELREL3_5 ALGO_BITMASK(25)
  338. #define GP22_CFG3FW_KEEP_DEFAULT ALGO_BITMASK(26)
  339. #define GP22_CFG3FW_SEL_TIMO_MB2_0 ALGO_BITMASK(27)
  340. #define GP22_CFG3FW_SEL_TIMO_MB2_1 ALGO_BITMASK(28)
  341. #define GP22_CFG3FW_EN_ERR_VAL ALGO_BITMASK(29)
  342. #define GP22_CFG3FW_EN_FIRST_WAVE ALGO_BITMASK(30)
  343. #define GP22_CFG3FW_EN_AUTOCALC_MB2 ALGO_BITMASK(31)
  344. #define GP22_CFG4FW_ID4_0 ALGO_BITMASK(0)
  345. #define GP22_CFG4FW_ID4_1 ALGO_BITMASK(1)
  346. #define GP22_CFG4FW_ID4_2 ALGO_BITMASK(2)
  347. #define GP22_CFG4FW_ID4_3 ALGO_BITMASK(3)
  348. #define GP22_CFG4FW_ID4_4 ALGO_BITMASK(4)
  349. #define GP22_CFG4FW_ID4_5 ALGO_BITMASK(5)
  350. #define GP22_CFG4FW_ID4_6 ALGO_BITMASK(6)
  351. #define GP22_CFG4FW_ID4_7 ALGO_BITMASK(7)
  352. #define GP22_CFG4FW_OFFS_0 ALGO_BITMASK(8)
  353. #define GP22_CFG4FW_OFFS_1 ALGO_BITMASK(9)
  354. #define GP22_CFG4FW_OFFS_2 ALGO_BITMASK(10)
  355. #define GP22_CFG4FW_OFFS_3 ALGO_BITMASK(11)
  356. #define GP22_CFG4FW_OFFS_4 ALGO_BITMASK(12)
  357. #define GP22_CFG4FW_OFFSRNG1 ALGO_BITMASK(13)
  358. #define GP22_CFG4FW_OFFSRNG2 ALGO_BITMASK(14)
  359. #define GP22_CFG4FW_EDGE_FW ALGO_BITMASK(15)
  360. #define GP22_CFG4FW_DIS_PW ALGO_BITMASK(16)
  361. #define GP22_CFG4FW_KEEP_DEFAULT_0 ALGO_BITMASK(17)
  362. #define GP22_CFG4FW_KEEP_DEFAULT_1 ALGO_BITMASK(18)
  363. #define GP22_CFG4FW_KEEP_DEFAULT_2 ALGO_BITMASK(19)
  364. #define GP22_CFG4FW_KEEP_DEFAULT_3 ALGO_BITMASK(20)
  365. #define GP22_CFG4FW_KEEP_DEFAULT_4 ALGO_BITMASK(21)
  366. #define GP22_CFG4FW_KEEP_DEFAULT_5 ALGO_BITMASK(22)
  367. #define GP22_CFG4FW_KEEP_DEFAULT_6 ALGO_BITMASK(23)
  368. #define GP22_CFG4FW_KEEP_DEFAULT_7 ALGO_BITMASK(24)
  369. #define GP22_CFG4FW_KEEP_DEFAULT_8 ALGO_BITMASK(25)
  370. #define GP22_CFG4FW_KEEP_DEFAULT_9 ALGO_BITMASK(26)
  371. #define GP22_CFG4FW_KEEP_DEFAULT_10 ALGO_BITMASK(27)
  372. #define GP22_CFG4FW_KEEP_DEFAULT_11 ALGO_BITMASK(28)
  373. #define GP22_CFG4FW_KEEP_DEFAULT_12 ALGO_BITMASK(29)
  374. #define GP22_CFG4FW_KEEP_DEFAULT_13 ALGO_BITMASK(30)
  375. #define GP22_CFG4FW_KEEP_DEFAULT_14 ALGO_BITMASK(31)
  376. #define GP22_CFG5_ID5_0 ALGO_BITMASK(0)
  377. #define GP22_CFG5_ID5_1 ALGO_BITMASK(1)
  378. #define GP22_CFG5_ID5_2 ALGO_BITMASK(2)
  379. #define GP22_CFG5_ID5_3 ALGO_BITMASK(3)
  380. #define GP22_CFG5_ID5_4 ALGO_BITMASK(4)
  381. #define GP22_CFG5_ID5_5 ALGO_BITMASK(5)
  382. #define GP22_CFG5_ID5_6 ALGO_BITMASK(6)
  383. #define GP22_CFG5_ID5_7 ALGO_BITMASK(7)
  384. #define GP22_CFG5_PHFIRE_0 ALGO_BITMASK(8)
  385. #define GP22_CFG5_PHFIRE_1 ALGO_BITMASK(9)
  386. #define GP22_CFG5_PHFIRE_2 ALGO_BITMASK(10)
  387. #define GP22_CFG5_PHFIRE_3 ALGO_BITMASK(11)
  388. #define GP22_CFG5_PHFIRE_4 ALGO_BITMASK(12)
  389. #define GP22_CFG5_PHFIRE_5 ALGO_BITMASK(13)
  390. #define GP22_CFG5_PHFIRE_6 ALGO_BITMASK(14)
  391. #define GP22_CFG5_PHFIRE_7 ALGO_BITMASK(15)
  392. #define GP22_CFG5_PHFIRE_8 ALGO_BITMASK(16)
  393. #define GP22_CFG5_PHFIRE_9 ALGO_BITMASK(17)
  394. #define GP22_CFG5_PHFIRE_10 ALGO_BITMASK(18)
  395. #define GP22_CFG5_PHFIRE_11 ALGO_BITMASK(19)
  396. #define GP22_CFG5_PHFIRE_12 ALGO_BITMASK(20)
  397. #define GP22_CFG5_PHFIRE_13 ALGO_BITMASK(21)
  398. #define GP22_CFG5_PHFIRE_14 ALGO_BITMASK(22)
  399. #define GP22_CFG5_PHFIRE_15 ALGO_BITMASK(23)
  400. #define GP22_CFG5_REPEAT_FIRE_0 ALGO_BITMASK(24)
  401. #define GP22_CFG5_REPEAT_FIRE_1 ALGO_BITMASK(25)
  402. #define GP22_CFG5_REPEAT_FIRE_2 ALGO_BITMASK(26)
  403. #define GP22_CFG5_DIS_PHASESHIFT ALGO_BITMASK(27)
  404. #define GP22_CFG5_EN_STARTNOISE ALGO_BITMASK(28)
  405. #define GP22_CFG5_CON_FIRE_DOWN ALGO_BITMASK(29)
  406. #define GP22_CFG5_CON_FIRE_UP ALGO_BITMASK(30)
  407. #define GP22_CFG5_CON_FIRE_BOTH ALGO_BITMASK(31)
  408. #define GP22_CFG6_ID6_0 ALGO_BITMASK(0)
  409. #define GP22_CFG6_ID6_1 ALGO_BITMASK(1)
  410. #define GP22_CFG6_ID6_2 ALGO_BITMASK(2)
  411. #define GP22_CFG6_ID6_3 ALGO_BITMASK(3)
  412. #define GP22_CFG6_ID6_4 ALGO_BITMASK(4)
  413. #define GP22_CFG6_ID6_5 ALGO_BITMASK(5)
  414. #define GP22_CFG6_ID6_6 ALGO_BITMASK(6)
  415. #define GP22_CFG6_ID6_7 ALGO_BITMASK(7)
  416. #define GP22_CFG6_ANZ_FIRE_END_0 ALGO_BITMASK(8)
  417. #define GP22_CFG6_ANZ_FIRE_END_1 ALGO_BITMASK(9)
  418. #define GP22_CFG6_ANZ_FIRE_END_2 ALGO_BITMASK(10)
  419. #define GP22_CFG6_TEMP_PORTDIR ALGO_BITMASK(11)
  420. #define GP22_CFG6_DOUBLE_RES ALGO_BITMASK(12)
  421. #define GP22_CFG6_QUAD_RES ALGO_BITMASK(13)
  422. #define GP22_CFG6_FIREO_DEF ALGO_BITMASK(14)
  423. #define GP22_CFG6_HZ60 ALGO_BITMASK(15)
  424. #define GP22_CFG6_CYCLE_TOF_0 ALGO_BITMASK(16)
  425. #define GP22_CFG6_CYCLE_TOF_1 ALGO_BITMASK(17)
  426. #define GP22_CFG6_CYCLE_TEMP_0 ALGO_BITMASK(18)
  427. #define GP22_CFG6_CYCLE_TEMP_1 ALGO_BITMASK(19)
  428. #define GP22_CFG6_START_CLKHS_END ALGO_BITMASK(20)
  429. #define GP22_CFG6_EN_INT_END ALGO_BITMASK(21)
  430. #define GP22_CFG6_TW2_0 ALGO_BITMASK(22)
  431. #define GP22_CFG6_TW2_1 ALGO_BITMASK(23)
  432. #define GP22_CFG6_EMPTY_0 ALGO_BITMASK(24)
  433. #define GP22_CFG6_DA_KORR_0 ALGO_BITMASK(25)
  434. #define GP22_CFG6_DA_KORR_1 ALGO_BITMASK(26)
  435. #define GP22_CFG6_DA_KORR_2 ALGO_BITMASK(27)
  436. #define GP22_CFG6_DA_KORR_3 ALGO_BITMASK(28)
  437. #define GP22_CFG6_EMPTY_1 ALGO_BITMASK(29)
  438. #define GP22_CFG6_NEG_STOP_TEMP ALGO_BITMASK(30)
  439. #define GP22_CFG6_EN_ANALOG ALGO_BITMASK(31)
  440. #endif /* __GP22_ATY_H */
  441. /******************************** End Of File *********************************/