hpm_trgm_regs.h 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. /*
  2. * Copyright (c) 2021-2023 HPMicro
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. *
  6. */
  7. #ifndef HPM_TRGM_H
  8. #define HPM_TRGM_H
  9. typedef struct {
  10. __RW uint32_t FILTCFG[20]; /* 0x0 - 0x4C: Filter configure register */
  11. __R uint8_t RESERVED0[176]; /* 0x50 - 0xFF: Reserved */
  12. __RW uint32_t TRGOCFG[68]; /* 0x100 - 0x20C: Trigger manager output configure register */
  13. __R uint8_t RESERVED1[240]; /* 0x210 - 0x2FF: Reserved */
  14. __RW uint32_t DMACFG[4]; /* 0x300 - 0x30C: DMA request configure register */
  15. __R uint8_t RESERVED2[240]; /* 0x310 - 0x3FF: Reserved */
  16. __RW uint32_t GCR; /* 0x400: General Control Register */
  17. } TRGM_Type;
  18. /* Bitfield definition for register array: FILTCFG */
  19. /*
  20. * OUTINV (RW)
  21. *
  22. * 1- Filter will invert the output
  23. * 0- Filter will not invert the output
  24. */
  25. #define TRGM_FILTCFG_OUTINV_MASK (0x10000UL)
  26. #define TRGM_FILTCFG_OUTINV_SHIFT (16U)
  27. #define TRGM_FILTCFG_OUTINV_SET(x) (((uint32_t)(x) << TRGM_FILTCFG_OUTINV_SHIFT) & TRGM_FILTCFG_OUTINV_MASK)
  28. #define TRGM_FILTCFG_OUTINV_GET(x) (((uint32_t)(x) & TRGM_FILTCFG_OUTINV_MASK) >> TRGM_FILTCFG_OUTINV_SHIFT)
  29. /*
  30. * MODE (RW)
  31. *
  32. * This bitfields defines the filter mode
  33. * 000-bypass;
  34. * 100-rapid change mode;
  35. * 101-delay filter mode;
  36. * 110-stalbe low mode;
  37. * 111-stable high mode
  38. */
  39. #define TRGM_FILTCFG_MODE_MASK (0xE000U)
  40. #define TRGM_FILTCFG_MODE_SHIFT (13U)
  41. #define TRGM_FILTCFG_MODE_SET(x) (((uint32_t)(x) << TRGM_FILTCFG_MODE_SHIFT) & TRGM_FILTCFG_MODE_MASK)
  42. #define TRGM_FILTCFG_MODE_GET(x) (((uint32_t)(x) & TRGM_FILTCFG_MODE_MASK) >> TRGM_FILTCFG_MODE_SHIFT)
  43. /*
  44. * SYNCEN (RW)
  45. *
  46. * set to enable sychronization input signal with TRGM clock
  47. */
  48. #define TRGM_FILTCFG_SYNCEN_MASK (0x1000U)
  49. #define TRGM_FILTCFG_SYNCEN_SHIFT (12U)
  50. #define TRGM_FILTCFG_SYNCEN_SET(x) (((uint32_t)(x) << TRGM_FILTCFG_SYNCEN_SHIFT) & TRGM_FILTCFG_SYNCEN_MASK)
  51. #define TRGM_FILTCFG_SYNCEN_GET(x) (((uint32_t)(x) & TRGM_FILTCFG_SYNCEN_MASK) >> TRGM_FILTCFG_SYNCEN_SHIFT)
  52. /*
  53. * FILTLEN (RW)
  54. *
  55. * This bitfields defines the filter counter length.
  56. */
  57. #define TRGM_FILTCFG_FILTLEN_MASK (0xFFFU)
  58. #define TRGM_FILTCFG_FILTLEN_SHIFT (0U)
  59. #define TRGM_FILTCFG_FILTLEN_SET(x) (((uint32_t)(x) << TRGM_FILTCFG_FILTLEN_SHIFT) & TRGM_FILTCFG_FILTLEN_MASK)
  60. #define TRGM_FILTCFG_FILTLEN_GET(x) (((uint32_t)(x) & TRGM_FILTCFG_FILTLEN_MASK) >> TRGM_FILTCFG_FILTLEN_SHIFT)
  61. /* Bitfield definition for register array: TRGOCFG */
  62. /*
  63. * OUTINV (RW)
  64. *
  65. * 1- Invert the output
  66. */
  67. #define TRGM_TRGOCFG_OUTINV_MASK (0x200U)
  68. #define TRGM_TRGOCFG_OUTINV_SHIFT (9U)
  69. #define TRGM_TRGOCFG_OUTINV_SET(x) (((uint32_t)(x) << TRGM_TRGOCFG_OUTINV_SHIFT) & TRGM_TRGOCFG_OUTINV_MASK)
  70. #define TRGM_TRGOCFG_OUTINV_GET(x) (((uint32_t)(x) & TRGM_TRGOCFG_OUTINV_MASK) >> TRGM_TRGOCFG_OUTINV_SHIFT)
  71. /*
  72. * FEDG2PEN (RW)
  73. *
  74. * 1- The selected input signal falling edge will be convert to an pulse on output.
  75. */
  76. #define TRGM_TRGOCFG_FEDG2PEN_MASK (0x100U)
  77. #define TRGM_TRGOCFG_FEDG2PEN_SHIFT (8U)
  78. #define TRGM_TRGOCFG_FEDG2PEN_SET(x) (((uint32_t)(x) << TRGM_TRGOCFG_FEDG2PEN_SHIFT) & TRGM_TRGOCFG_FEDG2PEN_MASK)
  79. #define TRGM_TRGOCFG_FEDG2PEN_GET(x) (((uint32_t)(x) & TRGM_TRGOCFG_FEDG2PEN_MASK) >> TRGM_TRGOCFG_FEDG2PEN_SHIFT)
  80. /*
  81. * REDG2PEN (RW)
  82. *
  83. * 1- The selected input signal rising edge will be convert to an pulse on output.
  84. */
  85. #define TRGM_TRGOCFG_REDG2PEN_MASK (0x80U)
  86. #define TRGM_TRGOCFG_REDG2PEN_SHIFT (7U)
  87. #define TRGM_TRGOCFG_REDG2PEN_SET(x) (((uint32_t)(x) << TRGM_TRGOCFG_REDG2PEN_SHIFT) & TRGM_TRGOCFG_REDG2PEN_MASK)
  88. #define TRGM_TRGOCFG_REDG2PEN_GET(x) (((uint32_t)(x) & TRGM_TRGOCFG_REDG2PEN_MASK) >> TRGM_TRGOCFG_REDG2PEN_SHIFT)
  89. /*
  90. * TRIGOSEL (RW)
  91. *
  92. * This bitfield selects one of the TRGM inputs as output.
  93. */
  94. #define TRGM_TRGOCFG_TRIGOSEL_MASK (0x7FU)
  95. #define TRGM_TRGOCFG_TRIGOSEL_SHIFT (0U)
  96. #define TRGM_TRGOCFG_TRIGOSEL_SET(x) (((uint32_t)(x) << TRGM_TRGOCFG_TRIGOSEL_SHIFT) & TRGM_TRGOCFG_TRIGOSEL_MASK)
  97. #define TRGM_TRGOCFG_TRIGOSEL_GET(x) (((uint32_t)(x) & TRGM_TRGOCFG_TRIGOSEL_MASK) >> TRGM_TRGOCFG_TRIGOSEL_SHIFT)
  98. /* Bitfield definition for register array: DMACFG */
  99. /*
  100. * DMASRCSEL (RW)
  101. *
  102. * This field selects one of the DMA requests as the DMA request output.
  103. */
  104. #define TRGM_DMACFG_DMASRCSEL_MASK (0x1FU)
  105. #define TRGM_DMACFG_DMASRCSEL_SHIFT (0U)
  106. #define TRGM_DMACFG_DMASRCSEL_SET(x) (((uint32_t)(x) << TRGM_DMACFG_DMASRCSEL_SHIFT) & TRGM_DMACFG_DMASRCSEL_MASK)
  107. #define TRGM_DMACFG_DMASRCSEL_GET(x) (((uint32_t)(x) & TRGM_DMACFG_DMASRCSEL_MASK) >> TRGM_DMACFG_DMASRCSEL_SHIFT)
  108. /* Bitfield definition for register: GCR */
  109. /*
  110. * TRGOPEN (RW)
  111. *
  112. * The bitfield enable the TRGM outputs.
  113. */
  114. #define TRGM_GCR_TRGOPEN_MASK (0xFFFU)
  115. #define TRGM_GCR_TRGOPEN_SHIFT (0U)
  116. #define TRGM_GCR_TRGOPEN_SET(x) (((uint32_t)(x) << TRGM_GCR_TRGOPEN_SHIFT) & TRGM_GCR_TRGOPEN_MASK)
  117. #define TRGM_GCR_TRGOPEN_GET(x) (((uint32_t)(x) & TRGM_GCR_TRGOPEN_MASK) >> TRGM_GCR_TRGOPEN_SHIFT)
  118. /* FILTCFG register group index macro definition */
  119. #define TRGM_FILTCFG_PWM_IN0 (0UL)
  120. #define TRGM_FILTCFG_PWM_IN1 (1UL)
  121. #define TRGM_FILTCFG_PWM_IN2 (2UL)
  122. #define TRGM_FILTCFG_PWM_IN3 (3UL)
  123. #define TRGM_FILTCFG_PWM_IN4 (4UL)
  124. #define TRGM_FILTCFG_PWM_IN5 (5UL)
  125. #define TRGM_FILTCFG_PWM_IN6 (6UL)
  126. #define TRGM_FILTCFG_PWM_IN7 (7UL)
  127. #define TRGM_FILTCFG_TRGM_IN0 (8UL)
  128. #define TRGM_FILTCFG_TRGM_IN1 (9UL)
  129. #define TRGM_FILTCFG_TRGM_IN2 (10UL)
  130. #define TRGM_FILTCFG_TRGM_IN3 (11UL)
  131. #define TRGM_FILTCFG_TRGM_IN4 (12UL)
  132. #define TRGM_FILTCFG_TRGM_IN5 (13UL)
  133. #define TRGM_FILTCFG_TRGM_IN6 (14UL)
  134. #define TRGM_FILTCFG_TRGM_IN7 (15UL)
  135. #define TRGM_FILTCFG_TRGM_IN8 (16UL)
  136. #define TRGM_FILTCFG_TRGM_IN9 (17UL)
  137. #define TRGM_FILTCFG_TRGM_IN10 (18UL)
  138. #define TRGM_FILTCFG_TRGM_IN11 (19UL)
  139. /* TRGOCFG register group index macro definition */
  140. #define TRGM_TRGOCFG_TRGM_OUT0 (0UL)
  141. #define TRGM_TRGOCFG_TRGM_OUT1 (1UL)
  142. #define TRGM_TRGOCFG_TRGM_OUT2 (2UL)
  143. #define TRGM_TRGOCFG_TRGM_OUT3 (3UL)
  144. #define TRGM_TRGOCFG_TRGM_OUT4 (4UL)
  145. #define TRGM_TRGOCFG_TRGM_OUT5 (5UL)
  146. #define TRGM_TRGOCFG_TRGM_OUT6 (6UL)
  147. #define TRGM_TRGOCFG_TRGM_OUT7 (7UL)
  148. #define TRGM_TRGOCFG_TRGM_OUT8 (8UL)
  149. #define TRGM_TRGOCFG_TRGM_OUT9 (9UL)
  150. #define TRGM_TRGOCFG_TRGM_OUT10 (10UL)
  151. #define TRGM_TRGOCFG_TRGM_OUT11 (11UL)
  152. #define TRGM_TRGOCFG_TRGM_OUTX0 (12UL)
  153. #define TRGM_TRGOCFG_TRGM_OUTX1 (13UL)
  154. #define TRGM_TRGOCFG_PWM_SYNCI (14UL)
  155. #define TRGM_TRGOCFG_PWM_FRCI (15UL)
  156. #define TRGM_TRGOCFG_PWM_FRCSYNCI (16UL)
  157. #define TRGM_TRGOCFG_PWM_SHRLDSYNCI (17UL)
  158. #define TRGM_TRGOCFG_PWM_FAULTI0 (18UL)
  159. #define TRGM_TRGOCFG_PWM_FAULTI1 (19UL)
  160. #define TRGM_TRGOCFG_PWM_FAULTI2 (20UL)
  161. #define TRGM_TRGOCFG_PWM_FAULTI3 (21UL)
  162. #define TRGM_TRGOCFG_PWM_IN8 (22UL)
  163. #define TRGM_TRGOCFG_PWM_IN9 (23UL)
  164. #define TRGM_TRGOCFG_PWM_IN10 (24UL)
  165. #define TRGM_TRGOCFG_PWM_IN11 (25UL)
  166. #define TRGM_TRGOCFG_PWM_IN12 (26UL)
  167. #define TRGM_TRGOCFG_PWM_IN13 (27UL)
  168. #define TRGM_TRGOCFG_PWM_IN14 (28UL)
  169. #define TRGM_TRGOCFG_PWM_IN15 (29UL)
  170. #define TRGM_TRGOCFG_PLA_IN0 (30UL)
  171. #define TRGM_TRGOCFG_PLA_IN1 (31UL)
  172. #define TRGM_TRGOCFG_PLA_IN2 (32UL)
  173. #define TRGM_TRGOCFG_PLA_IN3 (33UL)
  174. #define TRGM_TRGOCFG_PLA_IN4 (34UL)
  175. #define TRGM_TRGOCFG_PLA_IN5 (35UL)
  176. #define TRGM_TRGOCFG_PLA_IN6 (36UL)
  177. #define TRGM_TRGOCFG_PLA_IN7 (37UL)
  178. #define TRGM_TRGOCFG_QEI_A (38UL)
  179. #define TRGM_TRGOCFG_QEI_B (39UL)
  180. #define TRGM_TRGOCFG_QEI_Z (40UL)
  181. #define TRGM_TRGOCFG_QEI_H (41UL)
  182. #define TRGM_TRGOCFG_QEI_PAUSE (42UL)
  183. #define TRGM_TRGOCFG_QEI_SNAPI (43UL)
  184. #define TRGM_TRGOCFG_HALL_U (44UL)
  185. #define TRGM_TRGOCFG_HALL_V (45UL)
  186. #define TRGM_TRGOCFG_HALL_W (46UL)
  187. #define TRGM_TRGOCFG_HALL_SNAPI (47UL)
  188. #define TRGM_TRGOCFG_ADC0_STRGI (48UL)
  189. #define TRGM_TRGOCFG_ADC1_STRGI (49UL)
  190. #define TRGM_TRGOCFG_ADC2_STRGI (50UL)
  191. #define TRGM_TRGOCFG_ADCX_PTRGI0A (52UL)
  192. #define TRGM_TRGOCFG_ADCX_PTRGI0B (53UL)
  193. #define TRGM_TRGOCFG_ADCX_PTRGI0C (54UL)
  194. #define TRGM_TRGOCFG_GPTMRA_SYNCI (55UL)
  195. #define TRGM_TRGOCFG_GPTMRA_IN2 (56UL)
  196. #define TRGM_TRGOCFG_GPTMRA_IN3 (57UL)
  197. #define TRGM_TRGOCFG_DAC_BUF_TRIG (58UL)
  198. #define TRGM_TRGOCFG_DAC0_STEP_TRIG (59UL)
  199. #define TRGM_TRGOCFG_DAC1_STEP_TRIG (60UL)
  200. #define TRGM_TRGOCFG_CMPX_WIN (61UL)
  201. #define TRGM_TRGOCFG_CAN_PTPC0_CAP (62UL)
  202. #define TRGM_TRGOCFG_CAN_PTPC1_CAP (63UL)
  203. #define TRGM_TRGOCFG_SDFM_EVT0 (64UL)
  204. #define TRGM_TRGOCFG_SDFM_EVT1 (65UL)
  205. #define TRGM_TRGOCFG_SDFM_EVT2 (66UL)
  206. #define TRGM_TRGOCFG_SDFM_EVT3 (67UL)
  207. /* DMACFG register group index macro definition */
  208. #define TRGM_DMACFG_0 (0UL)
  209. #define TRGM_DMACFG_1 (1UL)
  210. #define TRGM_DMACFG_2 (2UL)
  211. #define TRGM_DMACFG_3 (3UL)
  212. #endif /* HPM_TRGM_H */