hpm_tsns_regs.h 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390
  1. /*
  2. * Copyright (c) 2021-2023 HPMicro
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. *
  6. */
  7. #ifndef HPM_TSNS_H
  8. #define HPM_TSNS_H
  9. typedef struct {
  10. __R uint32_t T; /* 0x0: Temperature */
  11. __R uint32_t TMAX; /* 0x4: Maximum Temperature */
  12. __R uint32_t TMIN; /* 0x8: Minimum Temperature */
  13. __R uint32_t AGE; /* 0xC: Sample age */
  14. __RW uint32_t STATUS; /* 0x10: Status */
  15. __RW uint32_t CONFIG; /* 0x14: Configuration */
  16. __RW uint32_t VALIDITY; /* 0x18: Sample validity */
  17. __RW uint32_t FLAG; /* 0x1C: Temperature flag */
  18. __RW uint32_t UPPER_LIM_IRQ; /* 0x20: Maximum temperature to interrupt */
  19. __RW uint32_t LOWER_LIM_IRQ; /* 0x24: Minimum temperature to interrupt */
  20. __RW uint32_t UPPER_LIM_RST; /* 0x28: Maximum temperature to reset */
  21. __RW uint32_t LOWER_LIM_RST; /* 0x2C: Minimum temperature to reset */
  22. __RW uint32_t ASYNC; /* 0x30: Configuration in asynchronous mode */
  23. __R uint8_t RESERVED0[4]; /* 0x34 - 0x37: Reserved */
  24. __RW uint32_t ADVAN; /* 0x38: Advance configuration */
  25. } TSNS_Type;
  26. /* Bitfield definition for register: T */
  27. /*
  28. * T (RO)
  29. *
  30. * Signed number of temperature in 256 x celsius degree
  31. */
  32. #define TSNS_T_T_MASK (0xFFFFFFFFUL)
  33. #define TSNS_T_T_SHIFT (0U)
  34. #define TSNS_T_T_GET(x) (((uint32_t)(x) & TSNS_T_T_MASK) >> TSNS_T_T_SHIFT)
  35. /* Bitfield definition for register: TMAX */
  36. /*
  37. * T (RO)
  38. *
  39. * maximum temperature ever found
  40. */
  41. #define TSNS_TMAX_T_MASK (0xFFFFFFFFUL)
  42. #define TSNS_TMAX_T_SHIFT (0U)
  43. #define TSNS_TMAX_T_GET(x) (((uint32_t)(x) & TSNS_TMAX_T_MASK) >> TSNS_TMAX_T_SHIFT)
  44. /* Bitfield definition for register: TMIN */
  45. /*
  46. * T (RO)
  47. *
  48. * minimum temperature ever found
  49. */
  50. #define TSNS_TMIN_T_MASK (0xFFFFFFFFUL)
  51. #define TSNS_TMIN_T_SHIFT (0U)
  52. #define TSNS_TMIN_T_GET(x) (((uint32_t)(x) & TSNS_TMIN_T_MASK) >> TSNS_TMIN_T_SHIFT)
  53. /* Bitfield definition for register: AGE */
  54. /*
  55. * AGE (RO)
  56. *
  57. * age of T register in 24MHz clock cycles
  58. */
  59. #define TSNS_AGE_AGE_MASK (0xFFFFFFFFUL)
  60. #define TSNS_AGE_AGE_SHIFT (0U)
  61. #define TSNS_AGE_AGE_GET(x) (((uint32_t)(x) & TSNS_AGE_AGE_MASK) >> TSNS_AGE_AGE_SHIFT)
  62. /* Bitfield definition for register: STATUS */
  63. /*
  64. * VALID (RO)
  65. *
  66. * indicate value in T is valid or not
  67. * 0: not valid
  68. * 1:valid
  69. */
  70. #define TSNS_STATUS_VALID_MASK (0x80000000UL)
  71. #define TSNS_STATUS_VALID_SHIFT (31U)
  72. #define TSNS_STATUS_VALID_GET(x) (((uint32_t)(x) & TSNS_STATUS_VALID_MASK) >> TSNS_STATUS_VALID_SHIFT)
  73. /*
  74. * TRIGGER (W1C)
  75. *
  76. * Software trigger for sensing in trigger mode, trigger will be ignored if in sensing or other mode
  77. */
  78. #define TSNS_STATUS_TRIGGER_MASK (0x1U)
  79. #define TSNS_STATUS_TRIGGER_SHIFT (0U)
  80. #define TSNS_STATUS_TRIGGER_SET(x) (((uint32_t)(x) << TSNS_STATUS_TRIGGER_SHIFT) & TSNS_STATUS_TRIGGER_MASK)
  81. #define TSNS_STATUS_TRIGGER_GET(x) (((uint32_t)(x) & TSNS_STATUS_TRIGGER_MASK) >> TSNS_STATUS_TRIGGER_SHIFT)
  82. /* Bitfield definition for register: CONFIG */
  83. /*
  84. * IRQ_EN (RW)
  85. *
  86. * Enable interrupt
  87. */
  88. #define TSNS_CONFIG_IRQ_EN_MASK (0x80000000UL)
  89. #define TSNS_CONFIG_IRQ_EN_SHIFT (31U)
  90. #define TSNS_CONFIG_IRQ_EN_SET(x) (((uint32_t)(x) << TSNS_CONFIG_IRQ_EN_SHIFT) & TSNS_CONFIG_IRQ_EN_MASK)
  91. #define TSNS_CONFIG_IRQ_EN_GET(x) (((uint32_t)(x) & TSNS_CONFIG_IRQ_EN_MASK) >> TSNS_CONFIG_IRQ_EN_SHIFT)
  92. /*
  93. * RST_EN (RW)
  94. *
  95. * Enable reset
  96. */
  97. #define TSNS_CONFIG_RST_EN_MASK (0x40000000UL)
  98. #define TSNS_CONFIG_RST_EN_SHIFT (30U)
  99. #define TSNS_CONFIG_RST_EN_SET(x) (((uint32_t)(x) << TSNS_CONFIG_RST_EN_SHIFT) & TSNS_CONFIG_RST_EN_MASK)
  100. #define TSNS_CONFIG_RST_EN_GET(x) (((uint32_t)(x) & TSNS_CONFIG_RST_EN_MASK) >> TSNS_CONFIG_RST_EN_SHIFT)
  101. /*
  102. * COMPARE_MIN_EN (RW)
  103. *
  104. * Enable compare for minimum temperature
  105. */
  106. #define TSNS_CONFIG_COMPARE_MIN_EN_MASK (0x2000000UL)
  107. #define TSNS_CONFIG_COMPARE_MIN_EN_SHIFT (25U)
  108. #define TSNS_CONFIG_COMPARE_MIN_EN_SET(x) (((uint32_t)(x) << TSNS_CONFIG_COMPARE_MIN_EN_SHIFT) & TSNS_CONFIG_COMPARE_MIN_EN_MASK)
  109. #define TSNS_CONFIG_COMPARE_MIN_EN_GET(x) (((uint32_t)(x) & TSNS_CONFIG_COMPARE_MIN_EN_MASK) >> TSNS_CONFIG_COMPARE_MIN_EN_SHIFT)
  110. /*
  111. * COMPARE_MAX_EN (RW)
  112. *
  113. * Enable compare for maximum temperature
  114. */
  115. #define TSNS_CONFIG_COMPARE_MAX_EN_MASK (0x1000000UL)
  116. #define TSNS_CONFIG_COMPARE_MAX_EN_SHIFT (24U)
  117. #define TSNS_CONFIG_COMPARE_MAX_EN_SET(x) (((uint32_t)(x) << TSNS_CONFIG_COMPARE_MAX_EN_SHIFT) & TSNS_CONFIG_COMPARE_MAX_EN_MASK)
  118. #define TSNS_CONFIG_COMPARE_MAX_EN_GET(x) (((uint32_t)(x) & TSNS_CONFIG_COMPARE_MAX_EN_MASK) >> TSNS_CONFIG_COMPARE_MAX_EN_SHIFT)
  119. /*
  120. * SPEED (RW)
  121. *
  122. * cycles of a progressive step in 24M clock, valide from 24-255, default 96
  123. * 24: 24 cycle for a step
  124. * 25: 25 cycle for a step
  125. * 26: 26 cycle for a step
  126. * ...
  127. * 255: 255 cycle for a step
  128. */
  129. #define TSNS_CONFIG_SPEED_MASK (0xFF0000UL)
  130. #define TSNS_CONFIG_SPEED_SHIFT (16U)
  131. #define TSNS_CONFIG_SPEED_SET(x) (((uint32_t)(x) << TSNS_CONFIG_SPEED_SHIFT) & TSNS_CONFIG_SPEED_MASK)
  132. #define TSNS_CONFIG_SPEED_GET(x) (((uint32_t)(x) & TSNS_CONFIG_SPEED_MASK) >> TSNS_CONFIG_SPEED_SHIFT)
  133. /*
  134. * AVERAGE (RW)
  135. *
  136. * Average time, default in 3
  137. * 0: measure and return
  138. * 1: twice and average
  139. * 2: 4 times and average
  140. * . . .
  141. * 7: 128 times and average
  142. */
  143. #define TSNS_CONFIG_AVERAGE_MASK (0x700U)
  144. #define TSNS_CONFIG_AVERAGE_SHIFT (8U)
  145. #define TSNS_CONFIG_AVERAGE_SET(x) (((uint32_t)(x) << TSNS_CONFIG_AVERAGE_SHIFT) & TSNS_CONFIG_AVERAGE_MASK)
  146. #define TSNS_CONFIG_AVERAGE_GET(x) (((uint32_t)(x) & TSNS_CONFIG_AVERAGE_MASK) >> TSNS_CONFIG_AVERAGE_SHIFT)
  147. /*
  148. * CONTINUOUS (RW)
  149. *
  150. * continuous mode that keep sampling temperature peridically
  151. * 0: trigger mode
  152. * 1: continuous mode
  153. */
  154. #define TSNS_CONFIG_CONTINUOUS_MASK (0x10U)
  155. #define TSNS_CONFIG_CONTINUOUS_SHIFT (4U)
  156. #define TSNS_CONFIG_CONTINUOUS_SET(x) (((uint32_t)(x) << TSNS_CONFIG_CONTINUOUS_SHIFT) & TSNS_CONFIG_CONTINUOUS_MASK)
  157. #define TSNS_CONFIG_CONTINUOUS_GET(x) (((uint32_t)(x) & TSNS_CONFIG_CONTINUOUS_MASK) >> TSNS_CONFIG_CONTINUOUS_SHIFT)
  158. /*
  159. * ASYNC (RW)
  160. *
  161. * Acynchronous mode, this mode can work without clock, only available function ios compare to certain ADC value
  162. * 0: active mode
  163. * 1: Async mode
  164. */
  165. #define TSNS_CONFIG_ASYNC_MASK (0x2U)
  166. #define TSNS_CONFIG_ASYNC_SHIFT (1U)
  167. #define TSNS_CONFIG_ASYNC_SET(x) (((uint32_t)(x) << TSNS_CONFIG_ASYNC_SHIFT) & TSNS_CONFIG_ASYNC_MASK)
  168. #define TSNS_CONFIG_ASYNC_GET(x) (((uint32_t)(x) & TSNS_CONFIG_ASYNC_MASK) >> TSNS_CONFIG_ASYNC_SHIFT)
  169. /*
  170. * ENABLE (RW)
  171. *
  172. * Enable temperature
  173. * 0: disable, temperature sensor is shut down
  174. * 1: enable. Temperature sensor enabled
  175. */
  176. #define TSNS_CONFIG_ENABLE_MASK (0x1U)
  177. #define TSNS_CONFIG_ENABLE_SHIFT (0U)
  178. #define TSNS_CONFIG_ENABLE_SET(x) (((uint32_t)(x) << TSNS_CONFIG_ENABLE_SHIFT) & TSNS_CONFIG_ENABLE_MASK)
  179. #define TSNS_CONFIG_ENABLE_GET(x) (((uint32_t)(x) & TSNS_CONFIG_ENABLE_MASK) >> TSNS_CONFIG_ENABLE_SHIFT)
  180. /* Bitfield definition for register: VALIDITY */
  181. /*
  182. * VALIDITY (RW)
  183. *
  184. * time for temperature values to expire in 24M clock cycles
  185. */
  186. #define TSNS_VALIDITY_VALIDITY_MASK (0xFFFFFFFFUL)
  187. #define TSNS_VALIDITY_VALIDITY_SHIFT (0U)
  188. #define TSNS_VALIDITY_VALIDITY_SET(x) (((uint32_t)(x) << TSNS_VALIDITY_VALIDITY_SHIFT) & TSNS_VALIDITY_VALIDITY_MASK)
  189. #define TSNS_VALIDITY_VALIDITY_GET(x) (((uint32_t)(x) & TSNS_VALIDITY_VALIDITY_MASK) >> TSNS_VALIDITY_VALIDITY_SHIFT)
  190. /* Bitfield definition for register: FLAG */
  191. /*
  192. * RECORD_MIN_CLR (RW)
  193. *
  194. * Clear minimum recorder of temerature, write 1 to clear
  195. */
  196. #define TSNS_FLAG_RECORD_MIN_CLR_MASK (0x200000UL)
  197. #define TSNS_FLAG_RECORD_MIN_CLR_SHIFT (21U)
  198. #define TSNS_FLAG_RECORD_MIN_CLR_SET(x) (((uint32_t)(x) << TSNS_FLAG_RECORD_MIN_CLR_SHIFT) & TSNS_FLAG_RECORD_MIN_CLR_MASK)
  199. #define TSNS_FLAG_RECORD_MIN_CLR_GET(x) (((uint32_t)(x) & TSNS_FLAG_RECORD_MIN_CLR_MASK) >> TSNS_FLAG_RECORD_MIN_CLR_SHIFT)
  200. /*
  201. * RECORD_MAX_CLR (RW)
  202. *
  203. * Clear maximum recorder of temerature, write 1 to clear
  204. */
  205. #define TSNS_FLAG_RECORD_MAX_CLR_MASK (0x100000UL)
  206. #define TSNS_FLAG_RECORD_MAX_CLR_SHIFT (20U)
  207. #define TSNS_FLAG_RECORD_MAX_CLR_SET(x) (((uint32_t)(x) << TSNS_FLAG_RECORD_MAX_CLR_SHIFT) & TSNS_FLAG_RECORD_MAX_CLR_MASK)
  208. #define TSNS_FLAG_RECORD_MAX_CLR_GET(x) (((uint32_t)(x) & TSNS_FLAG_RECORD_MAX_CLR_MASK) >> TSNS_FLAG_RECORD_MAX_CLR_SHIFT)
  209. /*
  210. * UNDER_TEMP (RW)
  211. *
  212. * Clear under temperature status, write 1 to clear
  213. */
  214. #define TSNS_FLAG_UNDER_TEMP_MASK (0x20000UL)
  215. #define TSNS_FLAG_UNDER_TEMP_SHIFT (17U)
  216. #define TSNS_FLAG_UNDER_TEMP_SET(x) (((uint32_t)(x) << TSNS_FLAG_UNDER_TEMP_SHIFT) & TSNS_FLAG_UNDER_TEMP_MASK)
  217. #define TSNS_FLAG_UNDER_TEMP_GET(x) (((uint32_t)(x) & TSNS_FLAG_UNDER_TEMP_MASK) >> TSNS_FLAG_UNDER_TEMP_SHIFT)
  218. /*
  219. * OVER_TEMP (RW)
  220. *
  221. * Clear over temperature status, write 1 to clear
  222. */
  223. #define TSNS_FLAG_OVER_TEMP_MASK (0x10000UL)
  224. #define TSNS_FLAG_OVER_TEMP_SHIFT (16U)
  225. #define TSNS_FLAG_OVER_TEMP_SET(x) (((uint32_t)(x) << TSNS_FLAG_OVER_TEMP_SHIFT) & TSNS_FLAG_OVER_TEMP_MASK)
  226. #define TSNS_FLAG_OVER_TEMP_GET(x) (((uint32_t)(x) & TSNS_FLAG_OVER_TEMP_MASK) >> TSNS_FLAG_OVER_TEMP_SHIFT)
  227. /*
  228. * IRQ (RW)
  229. *
  230. * IRQ flag, write 1 to clear
  231. */
  232. #define TSNS_FLAG_IRQ_MASK (0x1U)
  233. #define TSNS_FLAG_IRQ_SHIFT (0U)
  234. #define TSNS_FLAG_IRQ_SET(x) (((uint32_t)(x) << TSNS_FLAG_IRQ_SHIFT) & TSNS_FLAG_IRQ_MASK)
  235. #define TSNS_FLAG_IRQ_GET(x) (((uint32_t)(x) & TSNS_FLAG_IRQ_MASK) >> TSNS_FLAG_IRQ_SHIFT)
  236. /* Bitfield definition for register: UPPER_LIM_IRQ */
  237. /*
  238. * T (RW)
  239. *
  240. * Maximum temperature for compare
  241. */
  242. #define TSNS_UPPER_LIM_IRQ_T_MASK (0xFFFFFFFFUL)
  243. #define TSNS_UPPER_LIM_IRQ_T_SHIFT (0U)
  244. #define TSNS_UPPER_LIM_IRQ_T_SET(x) (((uint32_t)(x) << TSNS_UPPER_LIM_IRQ_T_SHIFT) & TSNS_UPPER_LIM_IRQ_T_MASK)
  245. #define TSNS_UPPER_LIM_IRQ_T_GET(x) (((uint32_t)(x) & TSNS_UPPER_LIM_IRQ_T_MASK) >> TSNS_UPPER_LIM_IRQ_T_SHIFT)
  246. /* Bitfield definition for register: LOWER_LIM_IRQ */
  247. /*
  248. * T (RW)
  249. *
  250. * Minimum temperature for compare
  251. */
  252. #define TSNS_LOWER_LIM_IRQ_T_MASK (0xFFFFFFFFUL)
  253. #define TSNS_LOWER_LIM_IRQ_T_SHIFT (0U)
  254. #define TSNS_LOWER_LIM_IRQ_T_SET(x) (((uint32_t)(x) << TSNS_LOWER_LIM_IRQ_T_SHIFT) & TSNS_LOWER_LIM_IRQ_T_MASK)
  255. #define TSNS_LOWER_LIM_IRQ_T_GET(x) (((uint32_t)(x) & TSNS_LOWER_LIM_IRQ_T_MASK) >> TSNS_LOWER_LIM_IRQ_T_SHIFT)
  256. /* Bitfield definition for register: UPPER_LIM_RST */
  257. /*
  258. * T (RW)
  259. *
  260. * Maximum temperature for compare
  261. */
  262. #define TSNS_UPPER_LIM_RST_T_MASK (0xFFFFFFFFUL)
  263. #define TSNS_UPPER_LIM_RST_T_SHIFT (0U)
  264. #define TSNS_UPPER_LIM_RST_T_SET(x) (((uint32_t)(x) << TSNS_UPPER_LIM_RST_T_SHIFT) & TSNS_UPPER_LIM_RST_T_MASK)
  265. #define TSNS_UPPER_LIM_RST_T_GET(x) (((uint32_t)(x) & TSNS_UPPER_LIM_RST_T_MASK) >> TSNS_UPPER_LIM_RST_T_SHIFT)
  266. /* Bitfield definition for register: LOWER_LIM_RST */
  267. /*
  268. * T (RW)
  269. *
  270. * Minimum temperature for compare
  271. */
  272. #define TSNS_LOWER_LIM_RST_T_MASK (0xFFFFFFFFUL)
  273. #define TSNS_LOWER_LIM_RST_T_SHIFT (0U)
  274. #define TSNS_LOWER_LIM_RST_T_SET(x) (((uint32_t)(x) << TSNS_LOWER_LIM_RST_T_SHIFT) & TSNS_LOWER_LIM_RST_T_MASK)
  275. #define TSNS_LOWER_LIM_RST_T_GET(x) (((uint32_t)(x) & TSNS_LOWER_LIM_RST_T_MASK) >> TSNS_LOWER_LIM_RST_T_SHIFT)
  276. /* Bitfield definition for register: ASYNC */
  277. /*
  278. * ASYNC_TYPE (RW)
  279. *
  280. * Compare hotter than or colder than in asynchoronous mode
  281. * 0: hotter than
  282. * 1: colder than
  283. */
  284. #define TSNS_ASYNC_ASYNC_TYPE_MASK (0x1000000UL)
  285. #define TSNS_ASYNC_ASYNC_TYPE_SHIFT (24U)
  286. #define TSNS_ASYNC_ASYNC_TYPE_SET(x) (((uint32_t)(x) << TSNS_ASYNC_ASYNC_TYPE_SHIFT) & TSNS_ASYNC_ASYNC_TYPE_MASK)
  287. #define TSNS_ASYNC_ASYNC_TYPE_GET(x) (((uint32_t)(x) & TSNS_ASYNC_ASYNC_TYPE_MASK) >> TSNS_ASYNC_ASYNC_TYPE_SHIFT)
  288. /*
  289. * POLARITY (RW)
  290. *
  291. * Polarity of internal comparator
  292. */
  293. #define TSNS_ASYNC_POLARITY_MASK (0x10000UL)
  294. #define TSNS_ASYNC_POLARITY_SHIFT (16U)
  295. #define TSNS_ASYNC_POLARITY_SET(x) (((uint32_t)(x) << TSNS_ASYNC_POLARITY_SHIFT) & TSNS_ASYNC_POLARITY_MASK)
  296. #define TSNS_ASYNC_POLARITY_GET(x) (((uint32_t)(x) & TSNS_ASYNC_POLARITY_MASK) >> TSNS_ASYNC_POLARITY_SHIFT)
  297. /*
  298. * VALUE (RW)
  299. *
  300. * Value of async mode to compare
  301. */
  302. #define TSNS_ASYNC_VALUE_MASK (0x7FFU)
  303. #define TSNS_ASYNC_VALUE_SHIFT (0U)
  304. #define TSNS_ASYNC_VALUE_SET(x) (((uint32_t)(x) << TSNS_ASYNC_VALUE_SHIFT) & TSNS_ASYNC_VALUE_MASK)
  305. #define TSNS_ASYNC_VALUE_GET(x) (((uint32_t)(x) & TSNS_ASYNC_VALUE_MASK) >> TSNS_ASYNC_VALUE_SHIFT)
  306. /* Bitfield definition for register: ADVAN */
  307. /*
  308. * ASYNC_IRQ (RO)
  309. *
  310. * interrupt status of asynchronous mode
  311. */
  312. #define TSNS_ADVAN_ASYNC_IRQ_MASK (0x2000000UL)
  313. #define TSNS_ADVAN_ASYNC_IRQ_SHIFT (25U)
  314. #define TSNS_ADVAN_ASYNC_IRQ_GET(x) (((uint32_t)(x) & TSNS_ADVAN_ASYNC_IRQ_MASK) >> TSNS_ADVAN_ASYNC_IRQ_SHIFT)
  315. /*
  316. * ACTIVE_IRQ (RO)
  317. *
  318. * interrupt status of active mode
  319. */
  320. #define TSNS_ADVAN_ACTIVE_IRQ_MASK (0x1000000UL)
  321. #define TSNS_ADVAN_ACTIVE_IRQ_SHIFT (24U)
  322. #define TSNS_ADVAN_ACTIVE_IRQ_GET(x) (((uint32_t)(x) & TSNS_ADVAN_ACTIVE_IRQ_MASK) >> TSNS_ADVAN_ACTIVE_IRQ_SHIFT)
  323. /*
  324. * SAMPLING (RO)
  325. *
  326. * temperature sampling is working
  327. */
  328. #define TSNS_ADVAN_SAMPLING_MASK (0x10000UL)
  329. #define TSNS_ADVAN_SAMPLING_SHIFT (16U)
  330. #define TSNS_ADVAN_SAMPLING_GET(x) (((uint32_t)(x) & TSNS_ADVAN_SAMPLING_MASK) >> TSNS_ADVAN_SAMPLING_SHIFT)
  331. /*
  332. * NEG_ONLY (RW)
  333. *
  334. * use negative compare polarity only
  335. */
  336. #define TSNS_ADVAN_NEG_ONLY_MASK (0x2U)
  337. #define TSNS_ADVAN_NEG_ONLY_SHIFT (1U)
  338. #define TSNS_ADVAN_NEG_ONLY_SET(x) (((uint32_t)(x) << TSNS_ADVAN_NEG_ONLY_SHIFT) & TSNS_ADVAN_NEG_ONLY_MASK)
  339. #define TSNS_ADVAN_NEG_ONLY_GET(x) (((uint32_t)(x) & TSNS_ADVAN_NEG_ONLY_MASK) >> TSNS_ADVAN_NEG_ONLY_SHIFT)
  340. /*
  341. * POS_ONLY (RW)
  342. *
  343. * use positive compare polarity only
  344. */
  345. #define TSNS_ADVAN_POS_ONLY_MASK (0x1U)
  346. #define TSNS_ADVAN_POS_ONLY_SHIFT (0U)
  347. #define TSNS_ADVAN_POS_ONLY_SET(x) (((uint32_t)(x) << TSNS_ADVAN_POS_ONLY_SHIFT) & TSNS_ADVAN_POS_ONLY_MASK)
  348. #define TSNS_ADVAN_POS_ONLY_GET(x) (((uint32_t)(x) & TSNS_ADVAN_POS_ONLY_MASK) >> TSNS_ADVAN_POS_ONLY_SHIFT)
  349. #endif /* HPM_TSNS_H */