hpm_pwm_regs.h 41 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118
  1. /*
  2. * Copyright (c) 2021-2023 HPMicro
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. *
  6. */
  7. #ifndef HPM_PWM_H
  8. #define HPM_PWM_H
  9. typedef struct {
  10. __RW uint32_t UNLK; /* 0x0: Shadow registers unlock register */
  11. union {
  12. __RW uint32_t STA; /* 0x4: Counter start register */
  13. __RW uint32_t STA_HRPWM; /* 0x4: Counter start register */
  14. };
  15. union {
  16. __RW uint32_t RLD; /* 0x8: Counter reload register */
  17. __RW uint32_t RLD_HRPWM; /* 0x8: Counter reload register */
  18. };
  19. union {
  20. __RW uint32_t CMP[24]; /* 0xC - 0x68: Comparator register */
  21. __RW uint32_t CMP_HRPWM[24]; /* 0xC - 0x68: Comparator register */
  22. };
  23. __R uint8_t RESERVED0[12]; /* 0x6C - 0x77: Reserved */
  24. __RW uint32_t FRCMD; /* 0x78: Force output mode register */
  25. __RW uint32_t SHLK; /* 0x7C: Shadow registers lock register */
  26. __RW uint32_t CHCFG[24]; /* 0x80 - 0xDC: Output channel configure register */
  27. __R uint8_t RESERVED1[16]; /* 0xE0 - 0xEF: Reserved */
  28. __RW uint32_t GCR; /* 0xF0: Global control register */
  29. __RW uint32_t SHCR; /* 0xF4: Shadow register control register */
  30. __R uint8_t RESERVED2[8]; /* 0xF8 - 0xFF: Reserved */
  31. __R uint32_t CAPPOS[24]; /* 0x100 - 0x15C: Capture rising edge register */
  32. __R uint8_t RESERVED3[16]; /* 0x160 - 0x16F: Reserved */
  33. __R uint32_t CNT; /* 0x170: Counter */
  34. __R uint8_t RESERVED4[12]; /* 0x174 - 0x17F: Reserved */
  35. __R uint32_t CAPNEG[24]; /* 0x180 - 0x1DC: Capture falling edge register */
  36. __R uint8_t RESERVED5[16]; /* 0x1E0 - 0x1EF: Reserved */
  37. __R uint32_t CNTCOPY; /* 0x1F0: Counter copy */
  38. __R uint8_t RESERVED6[12]; /* 0x1F4 - 0x1FF: Reserved */
  39. __RW uint32_t PWMCFG[8]; /* 0x200 - 0x21C: PWM channel configure register */
  40. __W uint32_t SR; /* 0x220: Status register */
  41. __RW uint32_t IRQEN; /* 0x224: Interrupt request enable register */
  42. __R uint8_t RESERVED7[4]; /* 0x228 - 0x22B: Reserved */
  43. __RW uint32_t DMAEN; /* 0x22C: DMA request enable register */
  44. __RW uint32_t CMPCFG[24]; /* 0x230 - 0x28C: Comparator configure register */
  45. __R uint8_t RESERVED8[368]; /* 0x290 - 0x3FF: Reserved */
  46. __R uint32_t ANASTS[8]; /* 0x400 - 0x41C: analog status register */
  47. __W uint32_t HRPWM_CFG; /* 0x420: hrpwm config register */
  48. } PWM_Type;
  49. /* Bitfield definition for register: UNLK */
  50. /*
  51. * SHUNLK (RW)
  52. *
  53. * write 0xB0382607 to unlock the shadow registers of register offset from 0x04 to 0x78,
  54. * otherwise the shadow registers can not be written.
  55. */
  56. #define PWM_UNLK_SHUNLK_MASK (0xFFFFFFFFUL)
  57. #define PWM_UNLK_SHUNLK_SHIFT (0U)
  58. #define PWM_UNLK_SHUNLK_SET(x) (((uint32_t)(x) << PWM_UNLK_SHUNLK_SHIFT) & PWM_UNLK_SHUNLK_MASK)
  59. #define PWM_UNLK_SHUNLK_GET(x) (((uint32_t)(x) & PWM_UNLK_SHUNLK_MASK) >> PWM_UNLK_SHUNLK_SHIFT)
  60. /* Bitfield definition for register: STA */
  61. /*
  62. * XSTA (RW)
  63. *
  64. * pwm timer counter extended start point, should back to this value after reach xrld
  65. */
  66. #define PWM_STA_XSTA_MASK (0xF0000000UL)
  67. #define PWM_STA_XSTA_SHIFT (28U)
  68. #define PWM_STA_XSTA_SET(x) (((uint32_t)(x) << PWM_STA_XSTA_SHIFT) & PWM_STA_XSTA_MASK)
  69. #define PWM_STA_XSTA_GET(x) (((uint32_t)(x) & PWM_STA_XSTA_MASK) >> PWM_STA_XSTA_SHIFT)
  70. /*
  71. * STA (RW)
  72. *
  73. * pwm timer counter start value
  74. * sta/rld will be loaded from shadow register to work register at main counter reload time, or software write unlk.shunlk
  75. */
  76. #define PWM_STA_STA_MASK (0xFFFFFF0UL)
  77. #define PWM_STA_STA_SHIFT (4U)
  78. #define PWM_STA_STA_SET(x) (((uint32_t)(x) << PWM_STA_STA_SHIFT) & PWM_STA_STA_MASK)
  79. #define PWM_STA_STA_GET(x) (((uint32_t)(x) & PWM_STA_STA_MASK) >> PWM_STA_STA_SHIFT)
  80. /* Bitfield definition for register: STA_HRPWM */
  81. /*
  82. * STA (RW)
  83. *
  84. */
  85. #define PWM_STA_HRPWM_STA_MASK (0xFFFFFF00UL)
  86. #define PWM_STA_HRPWM_STA_SHIFT (8U)
  87. #define PWM_STA_HRPWM_STA_SET(x) (((uint32_t)(x) << PWM_STA_HRPWM_STA_SHIFT) & PWM_STA_HRPWM_STA_MASK)
  88. #define PWM_STA_HRPWM_STA_GET(x) (((uint32_t)(x) & PWM_STA_HRPWM_STA_MASK) >> PWM_STA_HRPWM_STA_SHIFT)
  89. /* Bitfield definition for register: RLD */
  90. /*
  91. * XRLD (RW)
  92. *
  93. * timeout counter extended reload point, counter will reload to xsta after reach this point
  94. */
  95. #define PWM_RLD_XRLD_MASK (0xF0000000UL)
  96. #define PWM_RLD_XRLD_SHIFT (28U)
  97. #define PWM_RLD_XRLD_SET(x) (((uint32_t)(x) << PWM_RLD_XRLD_SHIFT) & PWM_RLD_XRLD_MASK)
  98. #define PWM_RLD_XRLD_GET(x) (((uint32_t)(x) & PWM_RLD_XRLD_MASK) >> PWM_RLD_XRLD_SHIFT)
  99. /*
  100. * RLD (RW)
  101. *
  102. * pwm timer counter reload value
  103. */
  104. #define PWM_RLD_RLD_MASK (0xFFFFFF0UL)
  105. #define PWM_RLD_RLD_SHIFT (4U)
  106. #define PWM_RLD_RLD_SET(x) (((uint32_t)(x) << PWM_RLD_RLD_SHIFT) & PWM_RLD_RLD_MASK)
  107. #define PWM_RLD_RLD_GET(x) (((uint32_t)(x) & PWM_RLD_RLD_MASK) >> PWM_RLD_RLD_SHIFT)
  108. /* Bitfield definition for register: RLD_HRPWM */
  109. /*
  110. * RLD (RW)
  111. *
  112. */
  113. #define PWM_RLD_HRPWM_RLD_MASK (0xFFFFFF00UL)
  114. #define PWM_RLD_HRPWM_RLD_SHIFT (8U)
  115. #define PWM_RLD_HRPWM_RLD_SET(x) (((uint32_t)(x) << PWM_RLD_HRPWM_RLD_SHIFT) & PWM_RLD_HRPWM_RLD_MASK)
  116. #define PWM_RLD_HRPWM_RLD_GET(x) (((uint32_t)(x) & PWM_RLD_HRPWM_RLD_MASK) >> PWM_RLD_HRPWM_RLD_SHIFT)
  117. /*
  118. * RLD_HR (RW)
  119. *
  120. * pwm timer counter reload value at high resolution, only exist if hwpwm is enabled.
  121. */
  122. #define PWM_RLD_HRPWM_RLD_HR_MASK (0xFFU)
  123. #define PWM_RLD_HRPWM_RLD_HR_SHIFT (0U)
  124. #define PWM_RLD_HRPWM_RLD_HR_SET(x) (((uint32_t)(x) << PWM_RLD_HRPWM_RLD_HR_SHIFT) & PWM_RLD_HRPWM_RLD_HR_MASK)
  125. #define PWM_RLD_HRPWM_RLD_HR_GET(x) (((uint32_t)(x) & PWM_RLD_HRPWM_RLD_HR_MASK) >> PWM_RLD_HRPWM_RLD_HR_SHIFT)
  126. /* Bitfield definition for register: 0 */
  127. /*
  128. * XCMP (RW)
  129. *
  130. * extended counter compare value
  131. */
  132. #define PWM_CMP_XCMP_MASK (0xF0000000UL)
  133. #define PWM_CMP_XCMP_SHIFT (28U)
  134. #define PWM_CMP_XCMP_SET(x) (((uint32_t)(x) << PWM_CMP_XCMP_SHIFT) & PWM_CMP_XCMP_MASK)
  135. #define PWM_CMP_XCMP_GET(x) (((uint32_t)(x) & PWM_CMP_XCMP_MASK) >> PWM_CMP_XCMP_SHIFT)
  136. /*
  137. * CMP (RW)
  138. *
  139. * clock counter compare value, the compare output is 0 at default, set to 1 when compare value meet,
  140. * and clr to 0 when timer reload. Software can invert the output by setting chan_cfg.out_polarity.
  141. */
  142. #define PWM_CMP_CMP_MASK (0xFFFFFF0UL)
  143. #define PWM_CMP_CMP_SHIFT (4U)
  144. #define PWM_CMP_CMP_SET(x) (((uint32_t)(x) << PWM_CMP_CMP_SHIFT) & PWM_CMP_CMP_MASK)
  145. #define PWM_CMP_CMP_GET(x) (((uint32_t)(x) & PWM_CMP_CMP_MASK) >> PWM_CMP_CMP_SHIFT)
  146. /*
  147. * CMPHLF (RW)
  148. *
  149. * half clock counter compare value
  150. */
  151. #define PWM_CMP_CMPHLF_MASK (0x8U)
  152. #define PWM_CMP_CMPHLF_SHIFT (3U)
  153. #define PWM_CMP_CMPHLF_SET(x) (((uint32_t)(x) << PWM_CMP_CMPHLF_SHIFT) & PWM_CMP_CMPHLF_MASK)
  154. #define PWM_CMP_CMPHLF_GET(x) (((uint32_t)(x) & PWM_CMP_CMPHLF_MASK) >> PWM_CMP_CMPHLF_SHIFT)
  155. /*
  156. * CMPJIT (RW)
  157. *
  158. * jitter counter compare value
  159. */
  160. #define PWM_CMP_CMPJIT_MASK (0x7U)
  161. #define PWM_CMP_CMPJIT_SHIFT (0U)
  162. #define PWM_CMP_CMPJIT_SET(x) (((uint32_t)(x) << PWM_CMP_CMPJIT_SHIFT) & PWM_CMP_CMPJIT_MASK)
  163. #define PWM_CMP_CMPJIT_GET(x) (((uint32_t)(x) & PWM_CMP_CMPJIT_MASK) >> PWM_CMP_CMPJIT_SHIFT)
  164. /* Bitfield definition for register: 0 */
  165. /*
  166. * CMP (RW)
  167. *
  168. */
  169. #define PWM_CMP_HRPWM_CMP_MASK (0xFFFFFF00UL)
  170. #define PWM_CMP_HRPWM_CMP_SHIFT (8U)
  171. #define PWM_CMP_HRPWM_CMP_SET(x) (((uint32_t)(x) << PWM_CMP_HRPWM_CMP_SHIFT) & PWM_CMP_HRPWM_CMP_MASK)
  172. #define PWM_CMP_HRPWM_CMP_GET(x) (((uint32_t)(x) & PWM_CMP_HRPWM_CMP_MASK) >> PWM_CMP_HRPWM_CMP_SHIFT)
  173. /*
  174. * CMP_HR (RW)
  175. *
  176. * high resolution compare value
  177. */
  178. #define PWM_CMP_HRPWM_CMP_HR_MASK (0xFFU)
  179. #define PWM_CMP_HRPWM_CMP_HR_SHIFT (0U)
  180. #define PWM_CMP_HRPWM_CMP_HR_SET(x) (((uint32_t)(x) << PWM_CMP_HRPWM_CMP_HR_SHIFT) & PWM_CMP_HRPWM_CMP_HR_MASK)
  181. #define PWM_CMP_HRPWM_CMP_HR_GET(x) (((uint32_t)(x) & PWM_CMP_HRPWM_CMP_HR_MASK) >> PWM_CMP_HRPWM_CMP_HR_SHIFT)
  182. /* Bitfield definition for register: FRCMD */
  183. /*
  184. * FRCMD (RW)
  185. *
  186. * 2bit for each PWM output channel (0-7);
  187. * 00: force output 0
  188. * 01: force output 1
  189. * 10: output highz
  190. * 11: no force
  191. */
  192. #define PWM_FRCMD_FRCMD_MASK (0xFFFFU)
  193. #define PWM_FRCMD_FRCMD_SHIFT (0U)
  194. #define PWM_FRCMD_FRCMD_SET(x) (((uint32_t)(x) << PWM_FRCMD_FRCMD_SHIFT) & PWM_FRCMD_FRCMD_MASK)
  195. #define PWM_FRCMD_FRCMD_GET(x) (((uint32_t)(x) & PWM_FRCMD_FRCMD_MASK) >> PWM_FRCMD_FRCMD_SHIFT)
  196. /* Bitfield definition for register: SHLK */
  197. /*
  198. * SHLK (RW)
  199. *
  200. * write 1 to lock all shawdow register, wirte access is not permitted
  201. */
  202. #define PWM_SHLK_SHLK_MASK (0x80000000UL)
  203. #define PWM_SHLK_SHLK_SHIFT (31U)
  204. #define PWM_SHLK_SHLK_SET(x) (((uint32_t)(x) << PWM_SHLK_SHLK_SHIFT) & PWM_SHLK_SHLK_MASK)
  205. #define PWM_SHLK_SHLK_GET(x) (((uint32_t)(x) & PWM_SHLK_SHLK_MASK) >> PWM_SHLK_SHLK_SHIFT)
  206. /* Bitfield definition for register array: CHCFG */
  207. /*
  208. * CMPSELEND (RW)
  209. *
  210. * assign the last comparator for this output channel
  211. */
  212. #define PWM_CHCFG_CMPSELEND_MASK (0x1F000000UL)
  213. #define PWM_CHCFG_CMPSELEND_SHIFT (24U)
  214. #define PWM_CHCFG_CMPSELEND_SET(x) (((uint32_t)(x) << PWM_CHCFG_CMPSELEND_SHIFT) & PWM_CHCFG_CMPSELEND_MASK)
  215. #define PWM_CHCFG_CMPSELEND_GET(x) (((uint32_t)(x) & PWM_CHCFG_CMPSELEND_MASK) >> PWM_CHCFG_CMPSELEND_SHIFT)
  216. /*
  217. * CMPSELBEG (RW)
  218. *
  219. * assign the first comparator for this output channel
  220. */
  221. #define PWM_CHCFG_CMPSELBEG_MASK (0x1F0000UL)
  222. #define PWM_CHCFG_CMPSELBEG_SHIFT (16U)
  223. #define PWM_CHCFG_CMPSELBEG_SET(x) (((uint32_t)(x) << PWM_CHCFG_CMPSELBEG_SHIFT) & PWM_CHCFG_CMPSELBEG_MASK)
  224. #define PWM_CHCFG_CMPSELBEG_GET(x) (((uint32_t)(x) & PWM_CHCFG_CMPSELBEG_MASK) >> PWM_CHCFG_CMPSELBEG_SHIFT)
  225. /*
  226. * OUTPOL (RW)
  227. *
  228. * output polarity, set to 1 will invert the output
  229. */
  230. #define PWM_CHCFG_OUTPOL_MASK (0x2U)
  231. #define PWM_CHCFG_OUTPOL_SHIFT (1U)
  232. #define PWM_CHCFG_OUTPOL_SET(x) (((uint32_t)(x) << PWM_CHCFG_OUTPOL_SHIFT) & PWM_CHCFG_OUTPOL_MASK)
  233. #define PWM_CHCFG_OUTPOL_GET(x) (((uint32_t)(x) & PWM_CHCFG_OUTPOL_MASK) >> PWM_CHCFG_OUTPOL_SHIFT)
  234. /* Bitfield definition for register: GCR */
  235. /*
  236. * FAULTI3EN (RW)
  237. *
  238. * 1- enable the internal fault input 3
  239. */
  240. #define PWM_GCR_FAULTI3EN_MASK (0x80000000UL)
  241. #define PWM_GCR_FAULTI3EN_SHIFT (31U)
  242. #define PWM_GCR_FAULTI3EN_SET(x) (((uint32_t)(x) << PWM_GCR_FAULTI3EN_SHIFT) & PWM_GCR_FAULTI3EN_MASK)
  243. #define PWM_GCR_FAULTI3EN_GET(x) (((uint32_t)(x) & PWM_GCR_FAULTI3EN_MASK) >> PWM_GCR_FAULTI3EN_SHIFT)
  244. /*
  245. * FAULTI2EN (RW)
  246. *
  247. * 1- enable the internal fault input 2
  248. */
  249. #define PWM_GCR_FAULTI2EN_MASK (0x40000000UL)
  250. #define PWM_GCR_FAULTI2EN_SHIFT (30U)
  251. #define PWM_GCR_FAULTI2EN_SET(x) (((uint32_t)(x) << PWM_GCR_FAULTI2EN_SHIFT) & PWM_GCR_FAULTI2EN_MASK)
  252. #define PWM_GCR_FAULTI2EN_GET(x) (((uint32_t)(x) & PWM_GCR_FAULTI2EN_MASK) >> PWM_GCR_FAULTI2EN_SHIFT)
  253. /*
  254. * FAULTI1EN (RW)
  255. *
  256. * 1- enable the internal fault input 1
  257. */
  258. #define PWM_GCR_FAULTI1EN_MASK (0x20000000UL)
  259. #define PWM_GCR_FAULTI1EN_SHIFT (29U)
  260. #define PWM_GCR_FAULTI1EN_SET(x) (((uint32_t)(x) << PWM_GCR_FAULTI1EN_SHIFT) & PWM_GCR_FAULTI1EN_MASK)
  261. #define PWM_GCR_FAULTI1EN_GET(x) (((uint32_t)(x) & PWM_GCR_FAULTI1EN_MASK) >> PWM_GCR_FAULTI1EN_SHIFT)
  262. /*
  263. * FAULTI0EN (RW)
  264. *
  265. * 1- enable the internal fault input 0
  266. */
  267. #define PWM_GCR_FAULTI0EN_MASK (0x10000000UL)
  268. #define PWM_GCR_FAULTI0EN_SHIFT (28U)
  269. #define PWM_GCR_FAULTI0EN_SET(x) (((uint32_t)(x) << PWM_GCR_FAULTI0EN_SHIFT) & PWM_GCR_FAULTI0EN_MASK)
  270. #define PWM_GCR_FAULTI0EN_GET(x) (((uint32_t)(x) & PWM_GCR_FAULTI0EN_MASK) >> PWM_GCR_FAULTI0EN_SHIFT)
  271. /*
  272. * DEBUGFAULT (RW)
  273. *
  274. * 1- enable debug mode output protection
  275. */
  276. #define PWM_GCR_DEBUGFAULT_MASK (0x8000000UL)
  277. #define PWM_GCR_DEBUGFAULT_SHIFT (27U)
  278. #define PWM_GCR_DEBUGFAULT_SET(x) (((uint32_t)(x) << PWM_GCR_DEBUGFAULT_SHIFT) & PWM_GCR_DEBUGFAULT_MASK)
  279. #define PWM_GCR_DEBUGFAULT_GET(x) (((uint32_t)(x) & PWM_GCR_DEBUGFAULT_MASK) >> PWM_GCR_DEBUGFAULT_SHIFT)
  280. /*
  281. * FRCPOL (RW)
  282. *
  283. * polarity of input pwm_force,
  284. * 1- active low
  285. * 0- active high
  286. */
  287. #define PWM_GCR_FRCPOL_MASK (0x4000000UL)
  288. #define PWM_GCR_FRCPOL_SHIFT (26U)
  289. #define PWM_GCR_FRCPOL_SET(x) (((uint32_t)(x) << PWM_GCR_FRCPOL_SHIFT) & PWM_GCR_FRCPOL_MASK)
  290. #define PWM_GCR_FRCPOL_GET(x) (((uint32_t)(x) & PWM_GCR_FRCPOL_MASK) >> PWM_GCR_FRCPOL_SHIFT)
  291. /*
  292. * HWSHDWEDG (RW)
  293. *
  294. * When hardware event is selected as shawdow register effective time and the select comparator is configured as input capture mode.
  295. * This bit assign its which edge is used as compare shadow register hardware load event.
  296. * 1- Falling edge
  297. * 0- Rising edge
  298. */
  299. #define PWM_GCR_HWSHDWEDG_MASK (0x1000000UL)
  300. #define PWM_GCR_HWSHDWEDG_SHIFT (24U)
  301. #define PWM_GCR_HWSHDWEDG_SET(x) (((uint32_t)(x) << PWM_GCR_HWSHDWEDG_SHIFT) & PWM_GCR_HWSHDWEDG_MASK)
  302. #define PWM_GCR_HWSHDWEDG_GET(x) (((uint32_t)(x) & PWM_GCR_HWSHDWEDG_MASK) >> PWM_GCR_HWSHDWEDG_SHIFT)
  303. /*
  304. * CMPSHDWSEL (RW)
  305. *
  306. * This bitfield select one of the comparators as hardware event time to load comparator shadow registers
  307. */
  308. #define PWM_GCR_CMPSHDWSEL_MASK (0xF80000UL)
  309. #define PWM_GCR_CMPSHDWSEL_SHIFT (19U)
  310. #define PWM_GCR_CMPSHDWSEL_SET(x) (((uint32_t)(x) << PWM_GCR_CMPSHDWSEL_SHIFT) & PWM_GCR_CMPSHDWSEL_MASK)
  311. #define PWM_GCR_CMPSHDWSEL_GET(x) (((uint32_t)(x) & PWM_GCR_CMPSHDWSEL_MASK) >> PWM_GCR_CMPSHDWSEL_SHIFT)
  312. /*
  313. * FAULTRECEDG (RW)
  314. *
  315. * When hardware load is selected as output fault recover trigger and the selected channel is capture mode.
  316. * This bit assign its effective edge of fault recover trigger.
  317. * 1- Falling edge
  318. * 0- Rising edge
  319. */
  320. #define PWM_GCR_FAULTRECEDG_MASK (0x40000UL)
  321. #define PWM_GCR_FAULTRECEDG_SHIFT (18U)
  322. #define PWM_GCR_FAULTRECEDG_SET(x) (((uint32_t)(x) << PWM_GCR_FAULTRECEDG_SHIFT) & PWM_GCR_FAULTRECEDG_MASK)
  323. #define PWM_GCR_FAULTRECEDG_GET(x) (((uint32_t)(x) & PWM_GCR_FAULTRECEDG_MASK) >> PWM_GCR_FAULTRECEDG_SHIFT)
  324. /*
  325. * FAULTRECHWSEL (RW)
  326. *
  327. * Selec one of the 24 comparators as fault output recover trigger.
  328. */
  329. #define PWM_GCR_FAULTRECHWSEL_MASK (0x3E000UL)
  330. #define PWM_GCR_FAULTRECHWSEL_SHIFT (13U)
  331. #define PWM_GCR_FAULTRECHWSEL_SET(x) (((uint32_t)(x) << PWM_GCR_FAULTRECHWSEL_SHIFT) & PWM_GCR_FAULTRECHWSEL_MASK)
  332. #define PWM_GCR_FAULTRECHWSEL_GET(x) (((uint32_t)(x) & PWM_GCR_FAULTRECHWSEL_MASK) >> PWM_GCR_FAULTRECHWSEL_SHIFT)
  333. /*
  334. * FAULTE1EN (RW)
  335. *
  336. * 1- enable the external fault input 1
  337. */
  338. #define PWM_GCR_FAULTE1EN_MASK (0x1000U)
  339. #define PWM_GCR_FAULTE1EN_SHIFT (12U)
  340. #define PWM_GCR_FAULTE1EN_SET(x) (((uint32_t)(x) << PWM_GCR_FAULTE1EN_SHIFT) & PWM_GCR_FAULTE1EN_MASK)
  341. #define PWM_GCR_FAULTE1EN_GET(x) (((uint32_t)(x) & PWM_GCR_FAULTE1EN_MASK) >> PWM_GCR_FAULTE1EN_SHIFT)
  342. /*
  343. * FAULTE0EN (RW)
  344. *
  345. * 1- enable the external fault input 0
  346. */
  347. #define PWM_GCR_FAULTE0EN_MASK (0x800U)
  348. #define PWM_GCR_FAULTE0EN_SHIFT (11U)
  349. #define PWM_GCR_FAULTE0EN_SET(x) (((uint32_t)(x) << PWM_GCR_FAULTE0EN_SHIFT) & PWM_GCR_FAULTE0EN_MASK)
  350. #define PWM_GCR_FAULTE0EN_GET(x) (((uint32_t)(x) & PWM_GCR_FAULTE0EN_MASK) >> PWM_GCR_FAULTE0EN_SHIFT)
  351. /*
  352. * FAULTEXPOL (RW)
  353. *
  354. * external fault polarity
  355. * 1-active low
  356. * 0-active high
  357. */
  358. #define PWM_GCR_FAULTEXPOL_MASK (0x600U)
  359. #define PWM_GCR_FAULTEXPOL_SHIFT (9U)
  360. #define PWM_GCR_FAULTEXPOL_SET(x) (((uint32_t)(x) << PWM_GCR_FAULTEXPOL_SHIFT) & PWM_GCR_FAULTEXPOL_MASK)
  361. #define PWM_GCR_FAULTEXPOL_GET(x) (((uint32_t)(x) & PWM_GCR_FAULTEXPOL_MASK) >> PWM_GCR_FAULTEXPOL_SHIFT)
  362. /*
  363. * RLDSYNCEN (RW)
  364. *
  365. * 1- pwm timer counter reset to reload value (rld) by synci is enabled
  366. */
  367. #define PWM_GCR_RLDSYNCEN_MASK (0x100U)
  368. #define PWM_GCR_RLDSYNCEN_SHIFT (8U)
  369. #define PWM_GCR_RLDSYNCEN_SET(x) (((uint32_t)(x) << PWM_GCR_RLDSYNCEN_SHIFT) & PWM_GCR_RLDSYNCEN_MASK)
  370. #define PWM_GCR_RLDSYNCEN_GET(x) (((uint32_t)(x) & PWM_GCR_RLDSYNCEN_MASK) >> PWM_GCR_RLDSYNCEN_SHIFT)
  371. /*
  372. * CEN (RW)
  373. *
  374. * 1- enable the pwm timer counter
  375. * 0- stop the pwm timer counter
  376. */
  377. #define PWM_GCR_CEN_MASK (0x80U)
  378. #define PWM_GCR_CEN_SHIFT (7U)
  379. #define PWM_GCR_CEN_SET(x) (((uint32_t)(x) << PWM_GCR_CEN_SHIFT) & PWM_GCR_CEN_MASK)
  380. #define PWM_GCR_CEN_GET(x) (((uint32_t)(x) & PWM_GCR_CEN_MASK) >> PWM_GCR_CEN_SHIFT)
  381. /*
  382. * FAULTCLR (RW)
  383. *
  384. * 1- Write 1 to clear the fault condition. The output will recover if FAULTRECTIME is set to 2b'11.
  385. * User should write 1 to this bit after the active FAULT signal de-assert and before it re-assert again.
  386. */
  387. #define PWM_GCR_FAULTCLR_MASK (0x40U)
  388. #define PWM_GCR_FAULTCLR_SHIFT (6U)
  389. #define PWM_GCR_FAULTCLR_SET(x) (((uint32_t)(x) << PWM_GCR_FAULTCLR_SHIFT) & PWM_GCR_FAULTCLR_MASK)
  390. #define PWM_GCR_FAULTCLR_GET(x) (((uint32_t)(x) & PWM_GCR_FAULTCLR_MASK) >> PWM_GCR_FAULTCLR_SHIFT)
  391. /*
  392. * XRLDSYNCEN (RW)
  393. *
  394. * 1- pwm timer extended counter (xcnt) reset to extended reload value (xrld) by synci is enabled
  395. */
  396. #define PWM_GCR_XRLDSYNCEN_MASK (0x20U)
  397. #define PWM_GCR_XRLDSYNCEN_SHIFT (5U)
  398. #define PWM_GCR_XRLDSYNCEN_SET(x) (((uint32_t)(x) << PWM_GCR_XRLDSYNCEN_SHIFT) & PWM_GCR_XRLDSYNCEN_MASK)
  399. #define PWM_GCR_XRLDSYNCEN_GET(x) (((uint32_t)(x) & PWM_GCR_XRLDSYNCEN_MASK) >> PWM_GCR_XRLDSYNCEN_SHIFT)
  400. /*
  401. * HR_PWM_EN (RW)
  402. *
  403. * set to enable high resolution pwm, trig_cmp, start/reload register will have different definition.
  404. */
  405. #define PWM_GCR_HR_PWM_EN_MASK (0x10U)
  406. #define PWM_GCR_HR_PWM_EN_SHIFT (4U)
  407. #define PWM_GCR_HR_PWM_EN_SET(x) (((uint32_t)(x) << PWM_GCR_HR_PWM_EN_SHIFT) & PWM_GCR_HR_PWM_EN_MASK)
  408. #define PWM_GCR_HR_PWM_EN_GET(x) (((uint32_t)(x) & PWM_GCR_HR_PWM_EN_MASK) >> PWM_GCR_HR_PWM_EN_SHIFT)
  409. /*
  410. * TIMERRESET (RW)
  411. *
  412. * set to clear current timer(total 28bit, main counter and tmout_count ). Auto clear
  413. */
  414. #define PWM_GCR_TIMERRESET_MASK (0x8U)
  415. #define PWM_GCR_TIMERRESET_SHIFT (3U)
  416. #define PWM_GCR_TIMERRESET_SET(x) (((uint32_t)(x) << PWM_GCR_TIMERRESET_SHIFT) & PWM_GCR_TIMERRESET_MASK)
  417. #define PWM_GCR_TIMERRESET_GET(x) (((uint32_t)(x) & PWM_GCR_TIMERRESET_MASK) >> PWM_GCR_TIMERRESET_SHIFT)
  418. /*
  419. * FRCTIME (WO)
  420. *
  421. * This bit field select the force effective time
  422. * 00: force immediately
  423. * 01: force at main counter reload time
  424. * 10: force at FRCSYNCI
  425. * 11: no force
  426. */
  427. #define PWM_GCR_FRCTIME_MASK (0x6U)
  428. #define PWM_GCR_FRCTIME_SHIFT (1U)
  429. #define PWM_GCR_FRCTIME_SET(x) (((uint32_t)(x) << PWM_GCR_FRCTIME_SHIFT) & PWM_GCR_FRCTIME_MASK)
  430. #define PWM_GCR_FRCTIME_GET(x) (((uint32_t)(x) & PWM_GCR_FRCTIME_MASK) >> PWM_GCR_FRCTIME_SHIFT)
  431. /*
  432. * SWFRC (RW)
  433. *
  434. * 1- write 1 to enable software force, if the frcsrcsel is set to 0, force will take effect
  435. */
  436. #define PWM_GCR_SWFRC_MASK (0x1U)
  437. #define PWM_GCR_SWFRC_SHIFT (0U)
  438. #define PWM_GCR_SWFRC_SET(x) (((uint32_t)(x) << PWM_GCR_SWFRC_SHIFT) & PWM_GCR_SWFRC_MASK)
  439. #define PWM_GCR_SWFRC_GET(x) (((uint32_t)(x) & PWM_GCR_SWFRC_MASK) >> PWM_GCR_SWFRC_SHIFT)
  440. /* Bitfield definition for register: SHCR */
  441. /*
  442. * CNT_UPDATE_RELOAD (RW)
  443. *
  444. * set to update counter working register at reload point, clear to use cnt_update_time as old version.
  445. */
  446. #define PWM_SHCR_CNT_UPDATE_RELOAD_MASK (0x8000U)
  447. #define PWM_SHCR_CNT_UPDATE_RELOAD_SHIFT (15U)
  448. #define PWM_SHCR_CNT_UPDATE_RELOAD_SET(x) (((uint32_t)(x) << PWM_SHCR_CNT_UPDATE_RELOAD_SHIFT) & PWM_SHCR_CNT_UPDATE_RELOAD_MASK)
  449. #define PWM_SHCR_CNT_UPDATE_RELOAD_GET(x) (((uint32_t)(x) & PWM_SHCR_CNT_UPDATE_RELOAD_MASK) >> PWM_SHCR_CNT_UPDATE_RELOAD_SHIFT)
  450. /*
  451. * CNT_UPDATE_EDGE (RW)
  452. *
  453. * 0 for posedge; 1 for negedge if hardware trigger time is selected for update_time, and selected channel is capture mode, for counter shadow registers
  454. */
  455. #define PWM_SHCR_CNT_UPDATE_EDGE_MASK (0x4000U)
  456. #define PWM_SHCR_CNT_UPDATE_EDGE_SHIFT (14U)
  457. #define PWM_SHCR_CNT_UPDATE_EDGE_SET(x) (((uint32_t)(x) << PWM_SHCR_CNT_UPDATE_EDGE_SHIFT) & PWM_SHCR_CNT_UPDATE_EDGE_MASK)
  458. #define PWM_SHCR_CNT_UPDATE_EDGE_GET(x) (((uint32_t)(x) & PWM_SHCR_CNT_UPDATE_EDGE_MASK) >> PWM_SHCR_CNT_UPDATE_EDGE_SHIFT)
  459. /*
  460. * FORCE_UPDATE_EDGE (RW)
  461. *
  462. * 0 for posedge; 1 for negedge if hardware trigger time is selected for update_time, and selected channel is capture mode, for FRCMD shadow registers
  463. */
  464. #define PWM_SHCR_FORCE_UPDATE_EDGE_MASK (0x2000U)
  465. #define PWM_SHCR_FORCE_UPDATE_EDGE_SHIFT (13U)
  466. #define PWM_SHCR_FORCE_UPDATE_EDGE_SET(x) (((uint32_t)(x) << PWM_SHCR_FORCE_UPDATE_EDGE_SHIFT) & PWM_SHCR_FORCE_UPDATE_EDGE_MASK)
  467. #define PWM_SHCR_FORCE_UPDATE_EDGE_GET(x) (((uint32_t)(x) & PWM_SHCR_FORCE_UPDATE_EDGE_MASK) >> PWM_SHCR_FORCE_UPDATE_EDGE_SHIFT)
  468. /*
  469. * FRCSHDWSEL (RW)
  470. *
  471. * This bitfield select one of the comparators as hardware event time to load FRCMD shadow registers
  472. */
  473. #define PWM_SHCR_FRCSHDWSEL_MASK (0x1F00U)
  474. #define PWM_SHCR_FRCSHDWSEL_SHIFT (8U)
  475. #define PWM_SHCR_FRCSHDWSEL_SET(x) (((uint32_t)(x) << PWM_SHCR_FRCSHDWSEL_SHIFT) & PWM_SHCR_FRCSHDWSEL_MASK)
  476. #define PWM_SHCR_FRCSHDWSEL_GET(x) (((uint32_t)(x) & PWM_SHCR_FRCSHDWSEL_MASK) >> PWM_SHCR_FRCSHDWSEL_SHIFT)
  477. /*
  478. * CNTSHDWSEL (RW)
  479. *
  480. * This bitfield select one of the comparators as hardware event time to load the counter related shadow registers (STA and RLD)
  481. */
  482. #define PWM_SHCR_CNTSHDWSEL_MASK (0xF8U)
  483. #define PWM_SHCR_CNTSHDWSEL_SHIFT (3U)
  484. #define PWM_SHCR_CNTSHDWSEL_SET(x) (((uint32_t)(x) << PWM_SHCR_CNTSHDWSEL_SHIFT) & PWM_SHCR_CNTSHDWSEL_MASK)
  485. #define PWM_SHCR_CNTSHDWSEL_GET(x) (((uint32_t)(x) & PWM_SHCR_CNTSHDWSEL_MASK) >> PWM_SHCR_CNTSHDWSEL_SHIFT)
  486. /*
  487. * CNTSHDWUPT (RW)
  488. *
  489. * This bitfield select when the counter related shadow registers (STA and RLD) will be loaded to its work register
  490. * 00: after software set shlk bit of shlk register
  491. * 01: immediately after the register being modified
  492. * 10: after hardware event assert, user can select one of the comparators to generate this hardware event.
  493. * The comparator can be either output compare mode or input capture mode.
  494. * 11: after SHSYNCI assert
  495. */
  496. #define PWM_SHCR_CNTSHDWUPT_MASK (0x6U)
  497. #define PWM_SHCR_CNTSHDWUPT_SHIFT (1U)
  498. #define PWM_SHCR_CNTSHDWUPT_SET(x) (((uint32_t)(x) << PWM_SHCR_CNTSHDWUPT_SHIFT) & PWM_SHCR_CNTSHDWUPT_MASK)
  499. #define PWM_SHCR_CNTSHDWUPT_GET(x) (((uint32_t)(x) & PWM_SHCR_CNTSHDWUPT_MASK) >> PWM_SHCR_CNTSHDWUPT_SHIFT)
  500. /*
  501. * SHLKEN (RW)
  502. *
  503. * 1- enable shadow registers lock feature,
  504. * 0- disable shadow registers lock, shlk bit will always be 0
  505. */
  506. #define PWM_SHCR_SHLKEN_MASK (0x1U)
  507. #define PWM_SHCR_SHLKEN_SHIFT (0U)
  508. #define PWM_SHCR_SHLKEN_SET(x) (((uint32_t)(x) << PWM_SHCR_SHLKEN_SHIFT) & PWM_SHCR_SHLKEN_MASK)
  509. #define PWM_SHCR_SHLKEN_GET(x) (((uint32_t)(x) & PWM_SHCR_SHLKEN_MASK) >> PWM_SHCR_SHLKEN_SHIFT)
  510. /* Bitfield definition for register array: CAPPOS */
  511. /*
  512. * CAPPOS (RO)
  513. *
  514. * counter value captured at input posedge
  515. */
  516. #define PWM_CAPPOS_CAPPOS_MASK (0xFFFFFFF0UL)
  517. #define PWM_CAPPOS_CAPPOS_SHIFT (4U)
  518. #define PWM_CAPPOS_CAPPOS_GET(x) (((uint32_t)(x) & PWM_CAPPOS_CAPPOS_MASK) >> PWM_CAPPOS_CAPPOS_SHIFT)
  519. /* Bitfield definition for register: CNT */
  520. /*
  521. * XCNT (RO)
  522. *
  523. * current extended counter value
  524. */
  525. #define PWM_CNT_XCNT_MASK (0xF0000000UL)
  526. #define PWM_CNT_XCNT_SHIFT (28U)
  527. #define PWM_CNT_XCNT_GET(x) (((uint32_t)(x) & PWM_CNT_XCNT_MASK) >> PWM_CNT_XCNT_SHIFT)
  528. /*
  529. * CNT (RO)
  530. *
  531. * current clock counter value
  532. */
  533. #define PWM_CNT_CNT_MASK (0xFFFFFF0UL)
  534. #define PWM_CNT_CNT_SHIFT (4U)
  535. #define PWM_CNT_CNT_GET(x) (((uint32_t)(x) & PWM_CNT_CNT_MASK) >> PWM_CNT_CNT_SHIFT)
  536. /* Bitfield definition for register array: CAPNEG */
  537. /*
  538. * CAPNEG (RO)
  539. *
  540. * counter value captured at input signal falling edge
  541. */
  542. #define PWM_CAPNEG_CAPNEG_MASK (0xFFFFFFFFUL)
  543. #define PWM_CAPNEG_CAPNEG_SHIFT (0U)
  544. #define PWM_CAPNEG_CAPNEG_GET(x) (((uint32_t)(x) & PWM_CAPNEG_CAPNEG_MASK) >> PWM_CAPNEG_CAPNEG_SHIFT)
  545. /* Bitfield definition for register: CNTCOPY */
  546. /*
  547. * XCNT (RO)
  548. *
  549. * current extended counter value
  550. */
  551. #define PWM_CNTCOPY_XCNT_MASK (0xF0000000UL)
  552. #define PWM_CNTCOPY_XCNT_SHIFT (28U)
  553. #define PWM_CNTCOPY_XCNT_GET(x) (((uint32_t)(x) & PWM_CNTCOPY_XCNT_MASK) >> PWM_CNTCOPY_XCNT_SHIFT)
  554. /*
  555. * CNT (RO)
  556. *
  557. * current clock counter value
  558. */
  559. #define PWM_CNTCOPY_CNT_MASK (0xFFFFFF0UL)
  560. #define PWM_CNTCOPY_CNT_SHIFT (4U)
  561. #define PWM_CNTCOPY_CNT_GET(x) (((uint32_t)(x) & PWM_CNTCOPY_CNT_MASK) >> PWM_CNTCOPY_CNT_SHIFT)
  562. /* Bitfield definition for register array: PWMCFG */
  563. /*
  564. * HR_UPDATE_MODE (RW)
  565. *
  566. * 0: update the hr value for the first edge at reload point;
  567. * 1: update the hr value for the first edge at the last edge;
  568. * all others will be updated at previous edge
  569. * for pair mode, only pwm_cfg 0/2/4/6 are used
  570. */
  571. #define PWM_PWMCFG_HR_UPDATE_MODE_MASK (0x20000000UL)
  572. #define PWM_PWMCFG_HR_UPDATE_MODE_SHIFT (29U)
  573. #define PWM_PWMCFG_HR_UPDATE_MODE_SET(x) (((uint32_t)(x) << PWM_PWMCFG_HR_UPDATE_MODE_SHIFT) & PWM_PWMCFG_HR_UPDATE_MODE_MASK)
  574. #define PWM_PWMCFG_HR_UPDATE_MODE_GET(x) (((uint32_t)(x) & PWM_PWMCFG_HR_UPDATE_MODE_MASK) >> PWM_PWMCFG_HR_UPDATE_MODE_SHIFT)
  575. /*
  576. * OEN (RW)
  577. *
  578. * PWM output enable
  579. * 1- output is enabled
  580. * 0- output is disabled
  581. */
  582. #define PWM_PWMCFG_OEN_MASK (0x10000000UL)
  583. #define PWM_PWMCFG_OEN_SHIFT (28U)
  584. #define PWM_PWMCFG_OEN_SET(x) (((uint32_t)(x) << PWM_PWMCFG_OEN_SHIFT) & PWM_PWMCFG_OEN_MASK)
  585. #define PWM_PWMCFG_OEN_GET(x) (((uint32_t)(x) & PWM_PWMCFG_OEN_MASK) >> PWM_PWMCFG_OEN_SHIFT)
  586. /*
  587. * FRCSHDWUPT (RW)
  588. *
  589. * This bitfield select when the FRCMD shadow register will be loaded to its work register
  590. * 00: after software set shlk bit of shlk register
  591. * 01: immediately after the register being modified
  592. * 10: after hardware event assert, user can select one of the comparators to generate this hardware event.
  593. * The comparator can be either output compare mode or input capture mode.
  594. * 11: after SHSYNCI assert
  595. */
  596. #define PWM_PWMCFG_FRCSHDWUPT_MASK (0xC000000UL)
  597. #define PWM_PWMCFG_FRCSHDWUPT_SHIFT (26U)
  598. #define PWM_PWMCFG_FRCSHDWUPT_SET(x) (((uint32_t)(x) << PWM_PWMCFG_FRCSHDWUPT_SHIFT) & PWM_PWMCFG_FRCSHDWUPT_MASK)
  599. #define PWM_PWMCFG_FRCSHDWUPT_GET(x) (((uint32_t)(x) & PWM_PWMCFG_FRCSHDWUPT_MASK) >> PWM_PWMCFG_FRCSHDWUPT_SHIFT)
  600. /*
  601. * FAULTMODE (RW)
  602. *
  603. * This bitfield defines the PWM output status when fault condition happen
  604. * 00: force output 0
  605. * 01: force output 1
  606. * 1x: output highz
  607. */
  608. #define PWM_PWMCFG_FAULTMODE_MASK (0x3000000UL)
  609. #define PWM_PWMCFG_FAULTMODE_SHIFT (24U)
  610. #define PWM_PWMCFG_FAULTMODE_SET(x) (((uint32_t)(x) << PWM_PWMCFG_FAULTMODE_SHIFT) & PWM_PWMCFG_FAULTMODE_MASK)
  611. #define PWM_PWMCFG_FAULTMODE_GET(x) (((uint32_t)(x) & PWM_PWMCFG_FAULTMODE_MASK) >> PWM_PWMCFG_FAULTMODE_SHIFT)
  612. /*
  613. * FAULTRECTIME (RW)
  614. *
  615. * This bitfield select when to recover PWM output after fault condition removed.
  616. * 00: immediately
  617. * 01: after pwm timer counter reload time
  618. * 10: after hardware event assert, user can select one of the comparators to generate this hardware event.
  619. * The comparator can be either output compare mode or input capture mode.
  620. * 11: after software write faultclr bit in GCR register
  621. */
  622. #define PWM_PWMCFG_FAULTRECTIME_MASK (0xC00000UL)
  623. #define PWM_PWMCFG_FAULTRECTIME_SHIFT (22U)
  624. #define PWM_PWMCFG_FAULTRECTIME_SET(x) (((uint32_t)(x) << PWM_PWMCFG_FAULTRECTIME_SHIFT) & PWM_PWMCFG_FAULTRECTIME_MASK)
  625. #define PWM_PWMCFG_FAULTRECTIME_GET(x) (((uint32_t)(x) & PWM_PWMCFG_FAULTRECTIME_MASK) >> PWM_PWMCFG_FAULTRECTIME_SHIFT)
  626. /*
  627. * FRCSRCSEL (RW)
  628. *
  629. * Select sources for force output
  630. * 0- force output is enabled when FRCI assert
  631. * 1- force output is enabled by software write swfrc to 1
  632. */
  633. #define PWM_PWMCFG_FRCSRCSEL_MASK (0x200000UL)
  634. #define PWM_PWMCFG_FRCSRCSEL_SHIFT (21U)
  635. #define PWM_PWMCFG_FRCSRCSEL_SET(x) (((uint32_t)(x) << PWM_PWMCFG_FRCSRCSEL_SHIFT) & PWM_PWMCFG_FRCSRCSEL_MASK)
  636. #define PWM_PWMCFG_FRCSRCSEL_GET(x) (((uint32_t)(x) & PWM_PWMCFG_FRCSRCSEL_MASK) >> PWM_PWMCFG_FRCSRCSEL_SHIFT)
  637. /*
  638. * PAIR (RW)
  639. *
  640. * 1- PWM output is in pair mode. Note the two PWM outputs need to be both set to pair mode.
  641. * 0- PWM output is in indepandent mode.
  642. */
  643. #define PWM_PWMCFG_PAIR_MASK (0x100000UL)
  644. #define PWM_PWMCFG_PAIR_SHIFT (20U)
  645. #define PWM_PWMCFG_PAIR_SET(x) (((uint32_t)(x) << PWM_PWMCFG_PAIR_SHIFT) & PWM_PWMCFG_PAIR_MASK)
  646. #define PWM_PWMCFG_PAIR_GET(x) (((uint32_t)(x) & PWM_PWMCFG_PAIR_MASK) >> PWM_PWMCFG_PAIR_SHIFT)
  647. /*
  648. * DEADAREA (RW)
  649. *
  650. * This bitfield define the PWM pair deadarea length. The unit is 0.5 cycle. The minimum length of deadarea is 1 cycle.
  651. * Note: user should configure pair bit and this bitfield before PWM output is enabled.
  652. */
  653. #define PWM_PWMCFG_DEADAREA_MASK (0xFFFFFUL)
  654. #define PWM_PWMCFG_DEADAREA_SHIFT (0U)
  655. #define PWM_PWMCFG_DEADAREA_SET(x) (((uint32_t)(x) << PWM_PWMCFG_DEADAREA_SHIFT) & PWM_PWMCFG_DEADAREA_MASK)
  656. #define PWM_PWMCFG_DEADAREA_GET(x) (((uint32_t)(x) & PWM_PWMCFG_DEADAREA_MASK) >> PWM_PWMCFG_DEADAREA_SHIFT)
  657. /* Bitfield definition for register: SR */
  658. /*
  659. * FAULTF (W1C)
  660. *
  661. * fault condition flag
  662. */
  663. #define PWM_SR_FAULTF_MASK (0x8000000UL)
  664. #define PWM_SR_FAULTF_SHIFT (27U)
  665. #define PWM_SR_FAULTF_SET(x) (((uint32_t)(x) << PWM_SR_FAULTF_SHIFT) & PWM_SR_FAULTF_MASK)
  666. #define PWM_SR_FAULTF_GET(x) (((uint32_t)(x) & PWM_SR_FAULTF_MASK) >> PWM_SR_FAULTF_SHIFT)
  667. /*
  668. * XRLDF (W1C)
  669. *
  670. * extended reload flag, this flag set when xcnt count to xrld value or when SYNCI assert
  671. */
  672. #define PWM_SR_XRLDF_MASK (0x4000000UL)
  673. #define PWM_SR_XRLDF_SHIFT (26U)
  674. #define PWM_SR_XRLDF_SET(x) (((uint32_t)(x) << PWM_SR_XRLDF_SHIFT) & PWM_SR_XRLDF_MASK)
  675. #define PWM_SR_XRLDF_GET(x) (((uint32_t)(x) & PWM_SR_XRLDF_MASK) >> PWM_SR_XRLDF_SHIFT)
  676. /*
  677. * HALFRLDF (W1C)
  678. *
  679. * half reload flag, this flag set when cnt count to rld/2
  680. */
  681. #define PWM_SR_HALFRLDF_MASK (0x2000000UL)
  682. #define PWM_SR_HALFRLDF_SHIFT (25U)
  683. #define PWM_SR_HALFRLDF_SET(x) (((uint32_t)(x) << PWM_SR_HALFRLDF_SHIFT) & PWM_SR_HALFRLDF_MASK)
  684. #define PWM_SR_HALFRLDF_GET(x) (((uint32_t)(x) & PWM_SR_HALFRLDF_MASK) >> PWM_SR_HALFRLDF_SHIFT)
  685. /*
  686. * RLDF (W1C)
  687. *
  688. * reload flag, this flag set when cnt count to rld value or when SYNCI assert
  689. */
  690. #define PWM_SR_RLDF_MASK (0x1000000UL)
  691. #define PWM_SR_RLDF_SHIFT (24U)
  692. #define PWM_SR_RLDF_SET(x) (((uint32_t)(x) << PWM_SR_RLDF_SHIFT) & PWM_SR_RLDF_MASK)
  693. #define PWM_SR_RLDF_GET(x) (((uint32_t)(x) & PWM_SR_RLDF_MASK) >> PWM_SR_RLDF_SHIFT)
  694. /*
  695. * CMPFX (W1C)
  696. *
  697. * comparator output compare or input capture flag
  698. */
  699. #define PWM_SR_CMPFX_MASK (0xFFFFFFUL)
  700. #define PWM_SR_CMPFX_SHIFT (0U)
  701. #define PWM_SR_CMPFX_SET(x) (((uint32_t)(x) << PWM_SR_CMPFX_SHIFT) & PWM_SR_CMPFX_MASK)
  702. #define PWM_SR_CMPFX_GET(x) (((uint32_t)(x) & PWM_SR_CMPFX_MASK) >> PWM_SR_CMPFX_SHIFT)
  703. /* Bitfield definition for register: IRQEN */
  704. /*
  705. * FAULTIRQE (RW)
  706. *
  707. * fault condition interrupt enable
  708. */
  709. #define PWM_IRQEN_FAULTIRQE_MASK (0x8000000UL)
  710. #define PWM_IRQEN_FAULTIRQE_SHIFT (27U)
  711. #define PWM_IRQEN_FAULTIRQE_SET(x) (((uint32_t)(x) << PWM_IRQEN_FAULTIRQE_SHIFT) & PWM_IRQEN_FAULTIRQE_MASK)
  712. #define PWM_IRQEN_FAULTIRQE_GET(x) (((uint32_t)(x) & PWM_IRQEN_FAULTIRQE_MASK) >> PWM_IRQEN_FAULTIRQE_SHIFT)
  713. /*
  714. * XRLDIRQE (RW)
  715. *
  716. * extended reload flag interrupt enable
  717. */
  718. #define PWM_IRQEN_XRLDIRQE_MASK (0x4000000UL)
  719. #define PWM_IRQEN_XRLDIRQE_SHIFT (26U)
  720. #define PWM_IRQEN_XRLDIRQE_SET(x) (((uint32_t)(x) << PWM_IRQEN_XRLDIRQE_SHIFT) & PWM_IRQEN_XRLDIRQE_MASK)
  721. #define PWM_IRQEN_XRLDIRQE_GET(x) (((uint32_t)(x) & PWM_IRQEN_XRLDIRQE_MASK) >> PWM_IRQEN_XRLDIRQE_SHIFT)
  722. /*
  723. * HALFRLDIRQE (RW)
  724. *
  725. * half reload flag interrupt enable
  726. */
  727. #define PWM_IRQEN_HALFRLDIRQE_MASK (0x2000000UL)
  728. #define PWM_IRQEN_HALFRLDIRQE_SHIFT (25U)
  729. #define PWM_IRQEN_HALFRLDIRQE_SET(x) (((uint32_t)(x) << PWM_IRQEN_HALFRLDIRQE_SHIFT) & PWM_IRQEN_HALFRLDIRQE_MASK)
  730. #define PWM_IRQEN_HALFRLDIRQE_GET(x) (((uint32_t)(x) & PWM_IRQEN_HALFRLDIRQE_MASK) >> PWM_IRQEN_HALFRLDIRQE_SHIFT)
  731. /*
  732. * RLDIRQE (RW)
  733. *
  734. * reload flag interrupt enable
  735. */
  736. #define PWM_IRQEN_RLDIRQE_MASK (0x1000000UL)
  737. #define PWM_IRQEN_RLDIRQE_SHIFT (24U)
  738. #define PWM_IRQEN_RLDIRQE_SET(x) (((uint32_t)(x) << PWM_IRQEN_RLDIRQE_SHIFT) & PWM_IRQEN_RLDIRQE_MASK)
  739. #define PWM_IRQEN_RLDIRQE_GET(x) (((uint32_t)(x) & PWM_IRQEN_RLDIRQE_MASK) >> PWM_IRQEN_RLDIRQE_SHIFT)
  740. /*
  741. * CMPIRQEX (RW)
  742. *
  743. * comparator output compare or input capture flag interrupt enable
  744. */
  745. #define PWM_IRQEN_CMPIRQEX_MASK (0xFFFFFFUL)
  746. #define PWM_IRQEN_CMPIRQEX_SHIFT (0U)
  747. #define PWM_IRQEN_CMPIRQEX_SET(x) (((uint32_t)(x) << PWM_IRQEN_CMPIRQEX_SHIFT) & PWM_IRQEN_CMPIRQEX_MASK)
  748. #define PWM_IRQEN_CMPIRQEX_GET(x) (((uint32_t)(x) & PWM_IRQEN_CMPIRQEX_MASK) >> PWM_IRQEN_CMPIRQEX_SHIFT)
  749. /* Bitfield definition for register: DMAEN */
  750. /*
  751. * FAULTEN (RW)
  752. *
  753. * fault condition DMA request enable
  754. */
  755. #define PWM_DMAEN_FAULTEN_MASK (0x8000000UL)
  756. #define PWM_DMAEN_FAULTEN_SHIFT (27U)
  757. #define PWM_DMAEN_FAULTEN_SET(x) (((uint32_t)(x) << PWM_DMAEN_FAULTEN_SHIFT) & PWM_DMAEN_FAULTEN_MASK)
  758. #define PWM_DMAEN_FAULTEN_GET(x) (((uint32_t)(x) & PWM_DMAEN_FAULTEN_MASK) >> PWM_DMAEN_FAULTEN_SHIFT)
  759. /*
  760. * XRLDEN (RW)
  761. *
  762. * extended reload flag DMA request enable
  763. */
  764. #define PWM_DMAEN_XRLDEN_MASK (0x4000000UL)
  765. #define PWM_DMAEN_XRLDEN_SHIFT (26U)
  766. #define PWM_DMAEN_XRLDEN_SET(x) (((uint32_t)(x) << PWM_DMAEN_XRLDEN_SHIFT) & PWM_DMAEN_XRLDEN_MASK)
  767. #define PWM_DMAEN_XRLDEN_GET(x) (((uint32_t)(x) & PWM_DMAEN_XRLDEN_MASK) >> PWM_DMAEN_XRLDEN_SHIFT)
  768. /*
  769. * HALFRLDEN (RW)
  770. *
  771. * half reload flag DMA request enable
  772. */
  773. #define PWM_DMAEN_HALFRLDEN_MASK (0x2000000UL)
  774. #define PWM_DMAEN_HALFRLDEN_SHIFT (25U)
  775. #define PWM_DMAEN_HALFRLDEN_SET(x) (((uint32_t)(x) << PWM_DMAEN_HALFRLDEN_SHIFT) & PWM_DMAEN_HALFRLDEN_MASK)
  776. #define PWM_DMAEN_HALFRLDEN_GET(x) (((uint32_t)(x) & PWM_DMAEN_HALFRLDEN_MASK) >> PWM_DMAEN_HALFRLDEN_SHIFT)
  777. /*
  778. * RLDEN (RW)
  779. *
  780. * reload flag DMA request enable
  781. */
  782. #define PWM_DMAEN_RLDEN_MASK (0x1000000UL)
  783. #define PWM_DMAEN_RLDEN_SHIFT (24U)
  784. #define PWM_DMAEN_RLDEN_SET(x) (((uint32_t)(x) << PWM_DMAEN_RLDEN_SHIFT) & PWM_DMAEN_RLDEN_MASK)
  785. #define PWM_DMAEN_RLDEN_GET(x) (((uint32_t)(x) & PWM_DMAEN_RLDEN_MASK) >> PWM_DMAEN_RLDEN_SHIFT)
  786. /*
  787. * CMPENX (RW)
  788. *
  789. * comparator output compare or input capture flag DMA request enable
  790. */
  791. #define PWM_DMAEN_CMPENX_MASK (0xFFFFFFUL)
  792. #define PWM_DMAEN_CMPENX_SHIFT (0U)
  793. #define PWM_DMAEN_CMPENX_SET(x) (((uint32_t)(x) << PWM_DMAEN_CMPENX_SHIFT) & PWM_DMAEN_CMPENX_MASK)
  794. #define PWM_DMAEN_CMPENX_GET(x) (((uint32_t)(x) & PWM_DMAEN_CMPENX_MASK) >> PWM_DMAEN_CMPENX_SHIFT)
  795. /* Bitfield definition for register array: CMPCFG */
  796. /*
  797. * XCNTCMPEN (RW)
  798. *
  799. * This bitfield enable the comparator to compare xcmp with xcnt.
  800. */
  801. #define PWM_CMPCFG_XCNTCMPEN_MASK (0xF0U)
  802. #define PWM_CMPCFG_XCNTCMPEN_SHIFT (4U)
  803. #define PWM_CMPCFG_XCNTCMPEN_SET(x) (((uint32_t)(x) << PWM_CMPCFG_XCNTCMPEN_SHIFT) & PWM_CMPCFG_XCNTCMPEN_MASK)
  804. #define PWM_CMPCFG_XCNTCMPEN_GET(x) (((uint32_t)(x) & PWM_CMPCFG_XCNTCMPEN_MASK) >> PWM_CMPCFG_XCNTCMPEN_SHIFT)
  805. /*
  806. * CMPSHDWUPT (RW)
  807. *
  808. * This bitfield select when the comparator shadow register will be loaded to its work register
  809. * 00: after software set shlk bit of shlk register
  810. * 01: immediately after the register being modified
  811. * 10: after hardware event assert, user can select one of the comparators to generate this hardware event.
  812. * The comparator can be either output compare mode or input capture mode.
  813. * 11: after SHSYNCI assert
  814. */
  815. #define PWM_CMPCFG_CMPSHDWUPT_MASK (0xCU)
  816. #define PWM_CMPCFG_CMPSHDWUPT_SHIFT (2U)
  817. #define PWM_CMPCFG_CMPSHDWUPT_SET(x) (((uint32_t)(x) << PWM_CMPCFG_CMPSHDWUPT_SHIFT) & PWM_CMPCFG_CMPSHDWUPT_MASK)
  818. #define PWM_CMPCFG_CMPSHDWUPT_GET(x) (((uint32_t)(x) & PWM_CMPCFG_CMPSHDWUPT_MASK) >> PWM_CMPCFG_CMPSHDWUPT_SHIFT)
  819. /*
  820. * CMPMODE (RW)
  821. *
  822. * comparator mode
  823. * 0- output compare mode
  824. * 1- input capture mode
  825. */
  826. #define PWM_CMPCFG_CMPMODE_MASK (0x2U)
  827. #define PWM_CMPCFG_CMPMODE_SHIFT (1U)
  828. #define PWM_CMPCFG_CMPMODE_SET(x) (((uint32_t)(x) << PWM_CMPCFG_CMPMODE_SHIFT) & PWM_CMPCFG_CMPMODE_MASK)
  829. #define PWM_CMPCFG_CMPMODE_GET(x) (((uint32_t)(x) & PWM_CMPCFG_CMPMODE_MASK) >> PWM_CMPCFG_CMPMODE_SHIFT)
  830. /* Bitfield definition for register array: ANASTS */
  831. /*
  832. * CALON (RO)
  833. *
  834. * calibration status.
  835. * will be set by hardware after setting cal_start.
  836. * cleared after calibration finished
  837. */
  838. #define PWM_ANASTS_CALON_MASK (0x80000000UL)
  839. #define PWM_ANASTS_CALON_SHIFT (31U)
  840. #define PWM_ANASTS_CALON_GET(x) (((uint32_t)(x) & PWM_ANASTS_CALON_MASK) >> PWM_ANASTS_CALON_SHIFT)
  841. /* Bitfield definition for register: HRPWM_CFG */
  842. /*
  843. * CAL_START (WO)
  844. *
  845. * calibration start.
  846. * software setting this bit to start calibration process.
  847. * each bit for one channel.
  848. */
  849. #define PWM_HRPWM_CFG_CAL_START_MASK (0xFFU)
  850. #define PWM_HRPWM_CFG_CAL_START_SHIFT (0U)
  851. #define PWM_HRPWM_CFG_CAL_START_SET(x) (((uint32_t)(x) << PWM_HRPWM_CFG_CAL_START_SHIFT) & PWM_HRPWM_CFG_CAL_START_MASK)
  852. #define PWM_HRPWM_CFG_CAL_START_GET(x) (((uint32_t)(x) & PWM_HRPWM_CFG_CAL_START_MASK) >> PWM_HRPWM_CFG_CAL_START_SHIFT)
  853. /* CMP register group index macro definition */
  854. #define PWM_CMP_0 (0UL)
  855. #define PWM_CMP_1 (1UL)
  856. #define PWM_CMP_2 (2UL)
  857. #define PWM_CMP_3 (3UL)
  858. #define PWM_CMP_4 (4UL)
  859. #define PWM_CMP_5 (5UL)
  860. #define PWM_CMP_6 (6UL)
  861. #define PWM_CMP_7 (7UL)
  862. #define PWM_CMP_8 (8UL)
  863. #define PWM_CMP_9 (9UL)
  864. #define PWM_CMP_10 (10UL)
  865. #define PWM_CMP_11 (11UL)
  866. #define PWM_CMP_12 (12UL)
  867. #define PWM_CMP_13 (13UL)
  868. #define PWM_CMP_14 (14UL)
  869. #define PWM_CMP_15 (15UL)
  870. #define PWM_CMP_16 (16UL)
  871. #define PWM_CMP_17 (17UL)
  872. #define PWM_CMP_18 (18UL)
  873. #define PWM_CMP_19 (19UL)
  874. #define PWM_CMP_20 (20UL)
  875. #define PWM_CMP_21 (21UL)
  876. #define PWM_CMP_22 (22UL)
  877. #define PWM_CMP_23 (23UL)
  878. /* CMP_HRPWM register group index macro definition */
  879. #define PWM_CMP_HRPWM_0 (0UL)
  880. #define PWM_CMP_HRPWM_1 (1UL)
  881. #define PWM_CMP_HRPWM_2 (2UL)
  882. #define PWM_CMP_HRPWM_3 (3UL)
  883. #define PWM_CMP_HRPWM_4 (4UL)
  884. #define PWM_CMP_HRPWM_5 (5UL)
  885. #define PWM_CMP_HRPWM_6 (6UL)
  886. #define PWM_CMP_HRPWM_7 (7UL)
  887. #define PWM_CMP_HRPWM_8 (8UL)
  888. #define PWM_CMP_HRPWM_9 (9UL)
  889. #define PWM_CMP_HRPWM_10 (10UL)
  890. #define PWM_CMP_HRPWM_11 (11UL)
  891. #define PWM_CMP_HRPWM_12 (12UL)
  892. #define PWM_CMP_HRPWM_13 (13UL)
  893. #define PWM_CMP_HRPWM_14 (14UL)
  894. #define PWM_CMP_HRPWM_15 (15UL)
  895. #define PWM_CMP_HRPWM_16 (16UL)
  896. #define PWM_CMP_HRPWM_17 (17UL)
  897. #define PWM_CMP_HRPWM_18 (18UL)
  898. #define PWM_CMP_HRPWM_19 (19UL)
  899. #define PWM_CMP_HRPWM_20 (20UL)
  900. #define PWM_CMP_HRPWM_21 (21UL)
  901. #define PWM_CMP_HRPWM_22 (22UL)
  902. #define PWM_CMP_HRPWM_23 (23UL)
  903. /* CHCFG register group index macro definition */
  904. #define PWM_CHCFG_0 (0UL)
  905. #define PWM_CHCFG_1 (1UL)
  906. #define PWM_CHCFG_2 (2UL)
  907. #define PWM_CHCFG_3 (3UL)
  908. #define PWM_CHCFG_4 (4UL)
  909. #define PWM_CHCFG_5 (5UL)
  910. #define PWM_CHCFG_6 (6UL)
  911. #define PWM_CHCFG_7 (7UL)
  912. #define PWM_CHCFG_8 (8UL)
  913. #define PWM_CHCFG_9 (9UL)
  914. #define PWM_CHCFG_10 (10UL)
  915. #define PWM_CHCFG_11 (11UL)
  916. #define PWM_CHCFG_12 (12UL)
  917. #define PWM_CHCFG_13 (13UL)
  918. #define PWM_CHCFG_14 (14UL)
  919. #define PWM_CHCFG_15 (15UL)
  920. #define PWM_CHCFG_16 (16UL)
  921. #define PWM_CHCFG_17 (17UL)
  922. #define PWM_CHCFG_18 (18UL)
  923. #define PWM_CHCFG_19 (19UL)
  924. #define PWM_CHCFG_20 (20UL)
  925. #define PWM_CHCFG_21 (21UL)
  926. #define PWM_CHCFG_22 (22UL)
  927. #define PWM_CHCFG_23 (23UL)
  928. /* CAPPOS register group index macro definition */
  929. #define PWM_CAPPOS_0 (0UL)
  930. #define PWM_CAPPOS_1 (1UL)
  931. #define PWM_CAPPOS_2 (2UL)
  932. #define PWM_CAPPOS_3 (3UL)
  933. #define PWM_CAPPOS_4 (4UL)
  934. #define PWM_CAPPOS_5 (5UL)
  935. #define PWM_CAPPOS_6 (6UL)
  936. #define PWM_CAPPOS_7 (7UL)
  937. #define PWM_CAPPOS_8 (8UL)
  938. #define PWM_CAPPOS_9 (9UL)
  939. #define PWM_CAPPOS_10 (10UL)
  940. #define PWM_CAPPOS_11 (11UL)
  941. #define PWM_CAPPOS_12 (12UL)
  942. #define PWM_CAPPOS_13 (13UL)
  943. #define PWM_CAPPOS_14 (14UL)
  944. #define PWM_CAPPOS_15 (15UL)
  945. #define PWM_CAPPOS_16 (16UL)
  946. #define PWM_CAPPOS_17 (17UL)
  947. #define PWM_CAPPOS_18 (18UL)
  948. #define PWM_CAPPOS_19 (19UL)
  949. #define PWM_CAPPOS_20 (20UL)
  950. #define PWM_CAPPOS_21 (21UL)
  951. #define PWM_CAPPOS_22 (22UL)
  952. #define PWM_CAPPOS_23 (23UL)
  953. /* CAPNEG register group index macro definition */
  954. #define PWM_CAPNEG_0 (0UL)
  955. #define PWM_CAPNEG_1 (1UL)
  956. #define PWM_CAPNEG_2 (2UL)
  957. #define PWM_CAPNEG_3 (3UL)
  958. #define PWM_CAPNEG_4 (4UL)
  959. #define PWM_CAPNEG_5 (5UL)
  960. #define PWM_CAPNEG_6 (6UL)
  961. #define PWM_CAPNEG_7 (7UL)
  962. #define PWM_CAPNEG_8 (8UL)
  963. #define PWM_CAPNEG_9 (9UL)
  964. #define PWM_CAPNEG_10 (10UL)
  965. #define PWM_CAPNEG_11 (11UL)
  966. #define PWM_CAPNEG_12 (12UL)
  967. #define PWM_CAPNEG_13 (13UL)
  968. #define PWM_CAPNEG_14 (14UL)
  969. #define PWM_CAPNEG_15 (15UL)
  970. #define PWM_CAPNEG_16 (16UL)
  971. #define PWM_CAPNEG_17 (17UL)
  972. #define PWM_CAPNEG_18 (18UL)
  973. #define PWM_CAPNEG_19 (19UL)
  974. #define PWM_CAPNEG_20 (20UL)
  975. #define PWM_CAPNEG_21 (21UL)
  976. #define PWM_CAPNEG_22 (22UL)
  977. #define PWM_CAPNEG_23 (23UL)
  978. /* PWMCFG register group index macro definition */
  979. #define PWM_PWMCFG_0 (0UL)
  980. #define PWM_PWMCFG_1 (1UL)
  981. #define PWM_PWMCFG_2 (2UL)
  982. #define PWM_PWMCFG_3 (3UL)
  983. #define PWM_PWMCFG_4 (4UL)
  984. #define PWM_PWMCFG_5 (5UL)
  985. #define PWM_PWMCFG_6 (6UL)
  986. #define PWM_PWMCFG_7 (7UL)
  987. /* CMPCFG register group index macro definition */
  988. #define PWM_CMPCFG_CMPCFG0 (0UL)
  989. #define PWM_CMPCFG_1 (1UL)
  990. #define PWM_CMPCFG_2 (2UL)
  991. #define PWM_CMPCFG_3 (3UL)
  992. #define PWM_CMPCFG_4 (4UL)
  993. #define PWM_CMPCFG_5 (5UL)
  994. #define PWM_CMPCFG_6 (6UL)
  995. #define PWM_CMPCFG_7 (7UL)
  996. #define PWM_CMPCFG_8 (8UL)
  997. #define PWM_CMPCFG_9 (9UL)
  998. #define PWM_CMPCFG_10 (10UL)
  999. #define PWM_CMPCFG_11 (11UL)
  1000. #define PWM_CMPCFG_12 (12UL)
  1001. #define PWM_CMPCFG_13 (13UL)
  1002. #define PWM_CMPCFG_14 (14UL)
  1003. #define PWM_CMPCFG_15 (15UL)
  1004. #define PWM_CMPCFG_16 (16UL)
  1005. #define PWM_CMPCFG_17 (17UL)
  1006. #define PWM_CMPCFG_18 (18UL)
  1007. #define PWM_CMPCFG_19 (19UL)
  1008. #define PWM_CMPCFG_20 (20UL)
  1009. #define PWM_CMPCFG_21 (21UL)
  1010. #define PWM_CMPCFG_22 (22UL)
  1011. #define PWM_CMPCFG_23 (23UL)
  1012. /* ANASTS register group index macro definition */
  1013. #define PWM_ANASTS_0 (0UL)
  1014. #define PWM_ANASTS_1 (1UL)
  1015. #define PWM_ANASTS_2 (2UL)
  1016. #define PWM_ANASTS_3 (3UL)
  1017. #define PWM_ANASTS_4 (4UL)
  1018. #define PWM_ANASTS_5 (5UL)
  1019. #define PWM_ANASTS_6 (6UL)
  1020. #define PWM_ANASTS_7 (7UL)
  1021. #endif /* HPM_PWM_H */