hpm_dac_regs.h 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629
  1. /*
  2. * Copyright (c) 2021-2023 HPMicro
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. *
  6. */
  7. #ifndef HPM_DAC_H
  8. #define HPM_DAC_H
  9. typedef struct {
  10. __W uint32_t CFG0; /* 0x0: */
  11. __RW uint32_t CFG1; /* 0x4: */
  12. __RW uint32_t CFG2; /* 0x8: */
  13. __R uint8_t RESERVED0[4]; /* 0xC - 0xF: Reserved */
  14. __RW uint32_t STEP_CFG[4]; /* 0x10 - 0x1C: */
  15. __RW uint32_t BUF_ADDR[2]; /* 0x20 - 0x24: */
  16. __RW uint32_t BUF_LENGTH; /* 0x28: */
  17. __R uint8_t RESERVED1[4]; /* 0x2C - 0x2F: Reserved */
  18. __W uint32_t IRQ_STS; /* 0x30: */
  19. __RW uint32_t IRQ_EN; /* 0x34: */
  20. __RW uint32_t DMA_EN; /* 0x38: */
  21. __R uint8_t RESERVED2[4]; /* 0x3C - 0x3F: Reserved */
  22. __RW uint32_t ANA_CFG0; /* 0x40: */
  23. __RW uint32_t CFG0_BAK; /* 0x44: */
  24. __RW uint32_t STATUS0; /* 0x48: */
  25. } DAC_Type;
  26. /* Bitfield definition for register: CFG0 */
  27. /*
  28. * SW_DAC_DATA (WO)
  29. *
  30. * dac data used in direct mode(dac_mode==2'b10)
  31. */
  32. #define DAC_CFG0_SW_DAC_DATA_MASK (0xFFF0000UL)
  33. #define DAC_CFG0_SW_DAC_DATA_SHIFT (16U)
  34. #define DAC_CFG0_SW_DAC_DATA_SET(x) (((uint32_t)(x) << DAC_CFG0_SW_DAC_DATA_SHIFT) & DAC_CFG0_SW_DAC_DATA_MASK)
  35. #define DAC_CFG0_SW_DAC_DATA_GET(x) (((uint32_t)(x) & DAC_CFG0_SW_DAC_DATA_MASK) >> DAC_CFG0_SW_DAC_DATA_SHIFT)
  36. /*
  37. * DMA_AHB_EN (WO)
  38. *
  39. * set to enable internal DMA, it will read one burst if enough space in FIFO.
  40. * Should only be used in buffer mode.
  41. */
  42. #define DAC_CFG0_DMA_AHB_EN_MASK (0x200U)
  43. #define DAC_CFG0_DMA_AHB_EN_SHIFT (9U)
  44. #define DAC_CFG0_DMA_AHB_EN_SET(x) (((uint32_t)(x) << DAC_CFG0_DMA_AHB_EN_SHIFT) & DAC_CFG0_DMA_AHB_EN_MASK)
  45. #define DAC_CFG0_DMA_AHB_EN_GET(x) (((uint32_t)(x) & DAC_CFG0_DMA_AHB_EN_MASK) >> DAC_CFG0_DMA_AHB_EN_SHIFT)
  46. /*
  47. * SYNC_MODE (WO)
  48. *
  49. * 1: sync dac clock and ahb clock.
  50. * all HW trigger signals are pulse in sync mode, can get faster response;
  51. * 0: async dac clock and ahb_clock
  52. * all HW trigger signals should be level and should be more than one dac clock cycle, used to get accurate output frequency(which may not be divided from AHB clock)
  53. */
  54. #define DAC_CFG0_SYNC_MODE_MASK (0x100U)
  55. #define DAC_CFG0_SYNC_MODE_SHIFT (8U)
  56. #define DAC_CFG0_SYNC_MODE_SET(x) (((uint32_t)(x) << DAC_CFG0_SYNC_MODE_SHIFT) & DAC_CFG0_SYNC_MODE_MASK)
  57. #define DAC_CFG0_SYNC_MODE_GET(x) (((uint32_t)(x) & DAC_CFG0_SYNC_MODE_MASK) >> DAC_CFG0_SYNC_MODE_SHIFT)
  58. /*
  59. * TRIG_MODE (WO)
  60. *
  61. * 0: single mode, one trigger pulse will send one 12bit data to DAC analog;
  62. * 1: continual mode, if trigger signal(either or HW) is set, DAC will send data if FIFO is not empty, if trigger signal is clear, DAC will stop send data.
  63. */
  64. #define DAC_CFG0_TRIG_MODE_MASK (0x80U)
  65. #define DAC_CFG0_TRIG_MODE_SHIFT (7U)
  66. #define DAC_CFG0_TRIG_MODE_SET(x) (((uint32_t)(x) << DAC_CFG0_TRIG_MODE_SHIFT) & DAC_CFG0_TRIG_MODE_MASK)
  67. #define DAC_CFG0_TRIG_MODE_GET(x) (((uint32_t)(x) & DAC_CFG0_TRIG_MODE_MASK) >> DAC_CFG0_TRIG_MODE_SHIFT)
  68. /*
  69. * HW_TRIG_EN (WO)
  70. *
  71. * set to use trigger signal from trigger_mux, user should config it to pulse in single mode, and level in continual mode
  72. */
  73. #define DAC_CFG0_HW_TRIG_EN_MASK (0x40U)
  74. #define DAC_CFG0_HW_TRIG_EN_SHIFT (6U)
  75. #define DAC_CFG0_HW_TRIG_EN_SET(x) (((uint32_t)(x) << DAC_CFG0_HW_TRIG_EN_SHIFT) & DAC_CFG0_HW_TRIG_EN_MASK)
  76. #define DAC_CFG0_HW_TRIG_EN_GET(x) (((uint32_t)(x) & DAC_CFG0_HW_TRIG_EN_MASK) >> DAC_CFG0_HW_TRIG_EN_SHIFT)
  77. /*
  78. * DAC_MODE (WO)
  79. *
  80. * 00: direct mode, DAC output the fixed configured data(from sw_dac_data)
  81. * 01: step mode, DAC output from start_point to end point, with configured step, can step up or step down
  82. * 10: buffer mode, read data from buffer, then output to analog, internal DMA will load next burst if enough space in local FIFO;
  83. */
  84. #define DAC_CFG0_DAC_MODE_MASK (0x30U)
  85. #define DAC_CFG0_DAC_MODE_SHIFT (4U)
  86. #define DAC_CFG0_DAC_MODE_SET(x) (((uint32_t)(x) << DAC_CFG0_DAC_MODE_SHIFT) & DAC_CFG0_DAC_MODE_MASK)
  87. #define DAC_CFG0_DAC_MODE_GET(x) (((uint32_t)(x) & DAC_CFG0_DAC_MODE_MASK) >> DAC_CFG0_DAC_MODE_SHIFT)
  88. /*
  89. * BUF_DATA_MODE (WO)
  90. *
  91. * data structure for buffer mode,
  92. * 0: each 32-bit data contains 2 points, b11:0 for first, b27:16 for second.
  93. * 1: each 32-bit data contains 1 point, b11:0 for first
  94. */
  95. #define DAC_CFG0_BUF_DATA_MODE_MASK (0x8U)
  96. #define DAC_CFG0_BUF_DATA_MODE_SHIFT (3U)
  97. #define DAC_CFG0_BUF_DATA_MODE_SET(x) (((uint32_t)(x) << DAC_CFG0_BUF_DATA_MODE_SHIFT) & DAC_CFG0_BUF_DATA_MODE_MASK)
  98. #define DAC_CFG0_BUF_DATA_MODE_GET(x) (((uint32_t)(x) & DAC_CFG0_BUF_DATA_MODE_MASK) >> DAC_CFG0_BUF_DATA_MODE_SHIFT)
  99. /*
  100. * HBURST_CFG (WO)
  101. *
  102. * DAC support following fixed burst only
  103. * 000-SINGLE; 011-INCR4; 101: INCR8
  104. * others are reserved
  105. */
  106. #define DAC_CFG0_HBURST_CFG_MASK (0x7U)
  107. #define DAC_CFG0_HBURST_CFG_SHIFT (0U)
  108. #define DAC_CFG0_HBURST_CFG_SET(x) (((uint32_t)(x) << DAC_CFG0_HBURST_CFG_SHIFT) & DAC_CFG0_HBURST_CFG_MASK)
  109. #define DAC_CFG0_HBURST_CFG_GET(x) (((uint32_t)(x) & DAC_CFG0_HBURST_CFG_MASK) >> DAC_CFG0_HBURST_CFG_SHIFT)
  110. /* Bitfield definition for register: CFG1 */
  111. /*
  112. * ANA_CLK_EN (RW)
  113. *
  114. * set to enable analog clock(divided by ana_div_cfg)
  115. */
  116. #define DAC_CFG1_ANA_CLK_EN_MASK (0x40000UL)
  117. #define DAC_CFG1_ANA_CLK_EN_SHIFT (18U)
  118. #define DAC_CFG1_ANA_CLK_EN_SET(x) (((uint32_t)(x) << DAC_CFG1_ANA_CLK_EN_SHIFT) & DAC_CFG1_ANA_CLK_EN_MASK)
  119. #define DAC_CFG1_ANA_CLK_EN_GET(x) (((uint32_t)(x) & DAC_CFG1_ANA_CLK_EN_MASK) >> DAC_CFG1_ANA_CLK_EN_SHIFT)
  120. /*
  121. * ANA_DIV_CFG (RW)
  122. *
  123. * clock divider config for ana_clk to dac analog;
  124. * 00: div2
  125. * 01: div4
  126. * 10: div6
  127. * 11: div8
  128. */
  129. #define DAC_CFG1_ANA_DIV_CFG_MASK (0x30000UL)
  130. #define DAC_CFG1_ANA_DIV_CFG_SHIFT (16U)
  131. #define DAC_CFG1_ANA_DIV_CFG_SET(x) (((uint32_t)(x) << DAC_CFG1_ANA_DIV_CFG_SHIFT) & DAC_CFG1_ANA_DIV_CFG_MASK)
  132. #define DAC_CFG1_ANA_DIV_CFG_GET(x) (((uint32_t)(x) & DAC_CFG1_ANA_DIV_CFG_MASK) >> DAC_CFG1_ANA_DIV_CFG_SHIFT)
  133. /*
  134. * DIV_CFG (RW)
  135. *
  136. * how many clk_dac cycles to change data to analog, should configured to less than 1MHz data rate.
  137. * Used for step mode and buffer mode, if set to continual trigger mode
  138. */
  139. #define DAC_CFG1_DIV_CFG_MASK (0xFFFFU)
  140. #define DAC_CFG1_DIV_CFG_SHIFT (0U)
  141. #define DAC_CFG1_DIV_CFG_SET(x) (((uint32_t)(x) << DAC_CFG1_DIV_CFG_SHIFT) & DAC_CFG1_DIV_CFG_MASK)
  142. #define DAC_CFG1_DIV_CFG_GET(x) (((uint32_t)(x) & DAC_CFG1_DIV_CFG_MASK) >> DAC_CFG1_DIV_CFG_SHIFT)
  143. /* Bitfield definition for register: CFG2 */
  144. /*
  145. * DMA_RST1 (WO)
  146. *
  147. * set to reset dma read pointer to buf1_start_addr;
  148. * if set both dma_rst0&dma_rst1, will set to buf0_start_addr
  149. * user can set fifo_clr bit when use dma_rst*
  150. */
  151. #define DAC_CFG2_DMA_RST1_MASK (0x80U)
  152. #define DAC_CFG2_DMA_RST1_SHIFT (7U)
  153. #define DAC_CFG2_DMA_RST1_SET(x) (((uint32_t)(x) << DAC_CFG2_DMA_RST1_SHIFT) & DAC_CFG2_DMA_RST1_MASK)
  154. #define DAC_CFG2_DMA_RST1_GET(x) (((uint32_t)(x) & DAC_CFG2_DMA_RST1_MASK) >> DAC_CFG2_DMA_RST1_SHIFT)
  155. /*
  156. * DMA_RST0 (WO)
  157. *
  158. * set to reset dma read pointer to buf0_start_addr
  159. */
  160. #define DAC_CFG2_DMA_RST0_MASK (0x40U)
  161. #define DAC_CFG2_DMA_RST0_SHIFT (6U)
  162. #define DAC_CFG2_DMA_RST0_SET(x) (((uint32_t)(x) << DAC_CFG2_DMA_RST0_SHIFT) & DAC_CFG2_DMA_RST0_MASK)
  163. #define DAC_CFG2_DMA_RST0_GET(x) (((uint32_t)(x) & DAC_CFG2_DMA_RST0_MASK) >> DAC_CFG2_DMA_RST0_SHIFT)
  164. /*
  165. * FIFO_CLR (WO)
  166. *
  167. * set to clear FIFO content(set both read/write pointer to 0)
  168. */
  169. #define DAC_CFG2_FIFO_CLR_MASK (0x20U)
  170. #define DAC_CFG2_FIFO_CLR_SHIFT (5U)
  171. #define DAC_CFG2_FIFO_CLR_SET(x) (((uint32_t)(x) << DAC_CFG2_FIFO_CLR_SHIFT) & DAC_CFG2_FIFO_CLR_MASK)
  172. #define DAC_CFG2_FIFO_CLR_GET(x) (((uint32_t)(x) & DAC_CFG2_FIFO_CLR_MASK) >> DAC_CFG2_FIFO_CLR_SHIFT)
  173. /*
  174. * BUF_SW_TRIG (RW)
  175. *
  176. * software trigger for buffer mode,
  177. * W1C in single mode.
  178. * RW in continual mode
  179. */
  180. #define DAC_CFG2_BUF_SW_TRIG_MASK (0x10U)
  181. #define DAC_CFG2_BUF_SW_TRIG_SHIFT (4U)
  182. #define DAC_CFG2_BUF_SW_TRIG_SET(x) (((uint32_t)(x) << DAC_CFG2_BUF_SW_TRIG_SHIFT) & DAC_CFG2_BUF_SW_TRIG_MASK)
  183. #define DAC_CFG2_BUF_SW_TRIG_GET(x) (((uint32_t)(x) & DAC_CFG2_BUF_SW_TRIG_MASK) >> DAC_CFG2_BUF_SW_TRIG_SHIFT)
  184. /*
  185. * STEP_SW_TRIG3 (RW)
  186. *
  187. */
  188. #define DAC_CFG2_STEP_SW_TRIG3_MASK (0x8U)
  189. #define DAC_CFG2_STEP_SW_TRIG3_SHIFT (3U)
  190. #define DAC_CFG2_STEP_SW_TRIG3_SET(x) (((uint32_t)(x) << DAC_CFG2_STEP_SW_TRIG3_SHIFT) & DAC_CFG2_STEP_SW_TRIG3_MASK)
  191. #define DAC_CFG2_STEP_SW_TRIG3_GET(x) (((uint32_t)(x) & DAC_CFG2_STEP_SW_TRIG3_MASK) >> DAC_CFG2_STEP_SW_TRIG3_SHIFT)
  192. /*
  193. * STEP_SW_TRIG2 (RW)
  194. *
  195. */
  196. #define DAC_CFG2_STEP_SW_TRIG2_MASK (0x4U)
  197. #define DAC_CFG2_STEP_SW_TRIG2_SHIFT (2U)
  198. #define DAC_CFG2_STEP_SW_TRIG2_SET(x) (((uint32_t)(x) << DAC_CFG2_STEP_SW_TRIG2_SHIFT) & DAC_CFG2_STEP_SW_TRIG2_MASK)
  199. #define DAC_CFG2_STEP_SW_TRIG2_GET(x) (((uint32_t)(x) & DAC_CFG2_STEP_SW_TRIG2_MASK) >> DAC_CFG2_STEP_SW_TRIG2_SHIFT)
  200. /*
  201. * STEP_SW_TRIG1 (RW)
  202. *
  203. */
  204. #define DAC_CFG2_STEP_SW_TRIG1_MASK (0x2U)
  205. #define DAC_CFG2_STEP_SW_TRIG1_SHIFT (1U)
  206. #define DAC_CFG2_STEP_SW_TRIG1_SET(x) (((uint32_t)(x) << DAC_CFG2_STEP_SW_TRIG1_SHIFT) & DAC_CFG2_STEP_SW_TRIG1_MASK)
  207. #define DAC_CFG2_STEP_SW_TRIG1_GET(x) (((uint32_t)(x) & DAC_CFG2_STEP_SW_TRIG1_MASK) >> DAC_CFG2_STEP_SW_TRIG1_SHIFT)
  208. /*
  209. * STEP_SW_TRIG0 (RW)
  210. *
  211. * software trigger0 for step mode,
  212. * W1C in single mode.
  213. * RW in continual mode
  214. */
  215. #define DAC_CFG2_STEP_SW_TRIG0_MASK (0x1U)
  216. #define DAC_CFG2_STEP_SW_TRIG0_SHIFT (0U)
  217. #define DAC_CFG2_STEP_SW_TRIG0_SET(x) (((uint32_t)(x) << DAC_CFG2_STEP_SW_TRIG0_SHIFT) & DAC_CFG2_STEP_SW_TRIG0_MASK)
  218. #define DAC_CFG2_STEP_SW_TRIG0_GET(x) (((uint32_t)(x) & DAC_CFG2_STEP_SW_TRIG0_MASK) >> DAC_CFG2_STEP_SW_TRIG0_SHIFT)
  219. /* Bitfield definition for register array: STEP_CFG */
  220. /*
  221. * ROUND_MODE (RW)
  222. *
  223. * 0: stop at end point;
  224. * 1: reload start point, step again
  225. */
  226. #define DAC_STEP_CFG_ROUND_MODE_MASK (0x20000000UL)
  227. #define DAC_STEP_CFG_ROUND_MODE_SHIFT (29U)
  228. #define DAC_STEP_CFG_ROUND_MODE_SET(x) (((uint32_t)(x) << DAC_STEP_CFG_ROUND_MODE_SHIFT) & DAC_STEP_CFG_ROUND_MODE_MASK)
  229. #define DAC_STEP_CFG_ROUND_MODE_GET(x) (((uint32_t)(x) & DAC_STEP_CFG_ROUND_MODE_MASK) >> DAC_STEP_CFG_ROUND_MODE_SHIFT)
  230. /*
  231. * UP_DOWN (RW)
  232. *
  233. * 0 for up, 1 for down
  234. */
  235. #define DAC_STEP_CFG_UP_DOWN_MASK (0x10000000UL)
  236. #define DAC_STEP_CFG_UP_DOWN_SHIFT (28U)
  237. #define DAC_STEP_CFG_UP_DOWN_SET(x) (((uint32_t)(x) << DAC_STEP_CFG_UP_DOWN_SHIFT) & DAC_STEP_CFG_UP_DOWN_MASK)
  238. #define DAC_STEP_CFG_UP_DOWN_GET(x) (((uint32_t)(x) & DAC_STEP_CFG_UP_DOWN_MASK) >> DAC_STEP_CFG_UP_DOWN_SHIFT)
  239. /*
  240. * END_POINT (RW)
  241. *
  242. */
  243. #define DAC_STEP_CFG_END_POINT_MASK (0xFFF0000UL)
  244. #define DAC_STEP_CFG_END_POINT_SHIFT (16U)
  245. #define DAC_STEP_CFG_END_POINT_SET(x) (((uint32_t)(x) << DAC_STEP_CFG_END_POINT_SHIFT) & DAC_STEP_CFG_END_POINT_MASK)
  246. #define DAC_STEP_CFG_END_POINT_GET(x) (((uint32_t)(x) & DAC_STEP_CFG_END_POINT_MASK) >> DAC_STEP_CFG_END_POINT_SHIFT)
  247. /*
  248. * STEP_NUM (RW)
  249. *
  250. * output data change step_num each DAC clock cycle.
  251. * Ex: if step_num=3, output data sequence is 0,3,6,9
  252. * NOTE: user should make sure end_point can be reached if step_num is not 1
  253. * if step_num is 0, output data will always at start point
  254. */
  255. #define DAC_STEP_CFG_STEP_NUM_MASK (0xF000U)
  256. #define DAC_STEP_CFG_STEP_NUM_SHIFT (12U)
  257. #define DAC_STEP_CFG_STEP_NUM_SET(x) (((uint32_t)(x) << DAC_STEP_CFG_STEP_NUM_SHIFT) & DAC_STEP_CFG_STEP_NUM_MASK)
  258. #define DAC_STEP_CFG_STEP_NUM_GET(x) (((uint32_t)(x) & DAC_STEP_CFG_STEP_NUM_MASK) >> DAC_STEP_CFG_STEP_NUM_SHIFT)
  259. /*
  260. * START_POINT (RW)
  261. *
  262. */
  263. #define DAC_STEP_CFG_START_POINT_MASK (0xFFFU)
  264. #define DAC_STEP_CFG_START_POINT_SHIFT (0U)
  265. #define DAC_STEP_CFG_START_POINT_SET(x) (((uint32_t)(x) << DAC_STEP_CFG_START_POINT_SHIFT) & DAC_STEP_CFG_START_POINT_MASK)
  266. #define DAC_STEP_CFG_START_POINT_GET(x) (((uint32_t)(x) & DAC_STEP_CFG_START_POINT_MASK) >> DAC_STEP_CFG_START_POINT_SHIFT)
  267. /* Bitfield definition for register array: BUF_ADDR */
  268. /*
  269. * BUF_START_ADDR (RW)
  270. *
  271. * buffer start address, should be 4-byte aligned
  272. * AHB burst can't cross 1K-byte boundary, user should config the address/length/burst to avoid such issue.
  273. */
  274. #define DAC_BUF_ADDR_BUF_START_ADDR_MASK (0xFFFFFFFCUL)
  275. #define DAC_BUF_ADDR_BUF_START_ADDR_SHIFT (2U)
  276. #define DAC_BUF_ADDR_BUF_START_ADDR_SET(x) (((uint32_t)(x) << DAC_BUF_ADDR_BUF_START_ADDR_SHIFT) & DAC_BUF_ADDR_BUF_START_ADDR_MASK)
  277. #define DAC_BUF_ADDR_BUF_START_ADDR_GET(x) (((uint32_t)(x) & DAC_BUF_ADDR_BUF_START_ADDR_MASK) >> DAC_BUF_ADDR_BUF_START_ADDR_SHIFT)
  278. /*
  279. * BUF_STOP (RW)
  280. *
  281. * set to stop read point at end of bufffer0
  282. */
  283. #define DAC_BUF_ADDR_BUF_STOP_MASK (0x1U)
  284. #define DAC_BUF_ADDR_BUF_STOP_SHIFT (0U)
  285. #define DAC_BUF_ADDR_BUF_STOP_SET(x) (((uint32_t)(x) << DAC_BUF_ADDR_BUF_STOP_SHIFT) & DAC_BUF_ADDR_BUF_STOP_MASK)
  286. #define DAC_BUF_ADDR_BUF_STOP_GET(x) (((uint32_t)(x) & DAC_BUF_ADDR_BUF_STOP_MASK) >> DAC_BUF_ADDR_BUF_STOP_SHIFT)
  287. /* Bitfield definition for register: BUF_LENGTH */
  288. /*
  289. * BUF1_LEN (RW)
  290. *
  291. * buffer length, 1 indicate one 32bit date, 256K-byte max for one buffer
  292. */
  293. #define DAC_BUF_LENGTH_BUF1_LEN_MASK (0xFFFF0000UL)
  294. #define DAC_BUF_LENGTH_BUF1_LEN_SHIFT (16U)
  295. #define DAC_BUF_LENGTH_BUF1_LEN_SET(x) (((uint32_t)(x) << DAC_BUF_LENGTH_BUF1_LEN_SHIFT) & DAC_BUF_LENGTH_BUF1_LEN_MASK)
  296. #define DAC_BUF_LENGTH_BUF1_LEN_GET(x) (((uint32_t)(x) & DAC_BUF_LENGTH_BUF1_LEN_MASK) >> DAC_BUF_LENGTH_BUF1_LEN_SHIFT)
  297. /*
  298. * BUF0_LEN (RW)
  299. *
  300. */
  301. #define DAC_BUF_LENGTH_BUF0_LEN_MASK (0xFFFFU)
  302. #define DAC_BUF_LENGTH_BUF0_LEN_SHIFT (0U)
  303. #define DAC_BUF_LENGTH_BUF0_LEN_SET(x) (((uint32_t)(x) << DAC_BUF_LENGTH_BUF0_LEN_SHIFT) & DAC_BUF_LENGTH_BUF0_LEN_MASK)
  304. #define DAC_BUF_LENGTH_BUF0_LEN_GET(x) (((uint32_t)(x) & DAC_BUF_LENGTH_BUF0_LEN_MASK) >> DAC_BUF_LENGTH_BUF0_LEN_SHIFT)
  305. /* Bitfield definition for register: IRQ_STS */
  306. /*
  307. * STEP_CMPT (W1C)
  308. *
  309. */
  310. #define DAC_IRQ_STS_STEP_CMPT_MASK (0x10U)
  311. #define DAC_IRQ_STS_STEP_CMPT_SHIFT (4U)
  312. #define DAC_IRQ_STS_STEP_CMPT_SET(x) (((uint32_t)(x) << DAC_IRQ_STS_STEP_CMPT_SHIFT) & DAC_IRQ_STS_STEP_CMPT_MASK)
  313. #define DAC_IRQ_STS_STEP_CMPT_GET(x) (((uint32_t)(x) & DAC_IRQ_STS_STEP_CMPT_MASK) >> DAC_IRQ_STS_STEP_CMPT_SHIFT)
  314. /*
  315. * AHB_ERROR (W1C)
  316. *
  317. * set if hresp==2'b01(ERROR)
  318. */
  319. #define DAC_IRQ_STS_AHB_ERROR_MASK (0x8U)
  320. #define DAC_IRQ_STS_AHB_ERROR_SHIFT (3U)
  321. #define DAC_IRQ_STS_AHB_ERROR_SET(x) (((uint32_t)(x) << DAC_IRQ_STS_AHB_ERROR_SHIFT) & DAC_IRQ_STS_AHB_ERROR_MASK)
  322. #define DAC_IRQ_STS_AHB_ERROR_GET(x) (((uint32_t)(x) & DAC_IRQ_STS_AHB_ERROR_MASK) >> DAC_IRQ_STS_AHB_ERROR_SHIFT)
  323. /*
  324. * FIFO_EMPTY (W1C)
  325. *
  326. */
  327. #define DAC_IRQ_STS_FIFO_EMPTY_MASK (0x4U)
  328. #define DAC_IRQ_STS_FIFO_EMPTY_SHIFT (2U)
  329. #define DAC_IRQ_STS_FIFO_EMPTY_SET(x) (((uint32_t)(x) << DAC_IRQ_STS_FIFO_EMPTY_SHIFT) & DAC_IRQ_STS_FIFO_EMPTY_MASK)
  330. #define DAC_IRQ_STS_FIFO_EMPTY_GET(x) (((uint32_t)(x) & DAC_IRQ_STS_FIFO_EMPTY_MASK) >> DAC_IRQ_STS_FIFO_EMPTY_SHIFT)
  331. /*
  332. * BUF1_CMPT (W1C)
  333. *
  334. */
  335. #define DAC_IRQ_STS_BUF1_CMPT_MASK (0x2U)
  336. #define DAC_IRQ_STS_BUF1_CMPT_SHIFT (1U)
  337. #define DAC_IRQ_STS_BUF1_CMPT_SET(x) (((uint32_t)(x) << DAC_IRQ_STS_BUF1_CMPT_SHIFT) & DAC_IRQ_STS_BUF1_CMPT_MASK)
  338. #define DAC_IRQ_STS_BUF1_CMPT_GET(x) (((uint32_t)(x) & DAC_IRQ_STS_BUF1_CMPT_MASK) >> DAC_IRQ_STS_BUF1_CMPT_SHIFT)
  339. /*
  340. * BUF0_CMPT (W1C)
  341. *
  342. */
  343. #define DAC_IRQ_STS_BUF0_CMPT_MASK (0x1U)
  344. #define DAC_IRQ_STS_BUF0_CMPT_SHIFT (0U)
  345. #define DAC_IRQ_STS_BUF0_CMPT_SET(x) (((uint32_t)(x) << DAC_IRQ_STS_BUF0_CMPT_SHIFT) & DAC_IRQ_STS_BUF0_CMPT_MASK)
  346. #define DAC_IRQ_STS_BUF0_CMPT_GET(x) (((uint32_t)(x) & DAC_IRQ_STS_BUF0_CMPT_MASK) >> DAC_IRQ_STS_BUF0_CMPT_SHIFT)
  347. /* Bitfield definition for register: IRQ_EN */
  348. /*
  349. * STEP_CMPT (RW)
  350. *
  351. */
  352. #define DAC_IRQ_EN_STEP_CMPT_MASK (0x10U)
  353. #define DAC_IRQ_EN_STEP_CMPT_SHIFT (4U)
  354. #define DAC_IRQ_EN_STEP_CMPT_SET(x) (((uint32_t)(x) << DAC_IRQ_EN_STEP_CMPT_SHIFT) & DAC_IRQ_EN_STEP_CMPT_MASK)
  355. #define DAC_IRQ_EN_STEP_CMPT_GET(x) (((uint32_t)(x) & DAC_IRQ_EN_STEP_CMPT_MASK) >> DAC_IRQ_EN_STEP_CMPT_SHIFT)
  356. /*
  357. * AHB_ERROR (RW)
  358. *
  359. */
  360. #define DAC_IRQ_EN_AHB_ERROR_MASK (0x8U)
  361. #define DAC_IRQ_EN_AHB_ERROR_SHIFT (3U)
  362. #define DAC_IRQ_EN_AHB_ERROR_SET(x) (((uint32_t)(x) << DAC_IRQ_EN_AHB_ERROR_SHIFT) & DAC_IRQ_EN_AHB_ERROR_MASK)
  363. #define DAC_IRQ_EN_AHB_ERROR_GET(x) (((uint32_t)(x) & DAC_IRQ_EN_AHB_ERROR_MASK) >> DAC_IRQ_EN_AHB_ERROR_SHIFT)
  364. /*
  365. * FIFO_EMPTY (RW)
  366. *
  367. */
  368. #define DAC_IRQ_EN_FIFO_EMPTY_MASK (0x4U)
  369. #define DAC_IRQ_EN_FIFO_EMPTY_SHIFT (2U)
  370. #define DAC_IRQ_EN_FIFO_EMPTY_SET(x) (((uint32_t)(x) << DAC_IRQ_EN_FIFO_EMPTY_SHIFT) & DAC_IRQ_EN_FIFO_EMPTY_MASK)
  371. #define DAC_IRQ_EN_FIFO_EMPTY_GET(x) (((uint32_t)(x) & DAC_IRQ_EN_FIFO_EMPTY_MASK) >> DAC_IRQ_EN_FIFO_EMPTY_SHIFT)
  372. /*
  373. * BUF1_CMPT (RW)
  374. *
  375. */
  376. #define DAC_IRQ_EN_BUF1_CMPT_MASK (0x2U)
  377. #define DAC_IRQ_EN_BUF1_CMPT_SHIFT (1U)
  378. #define DAC_IRQ_EN_BUF1_CMPT_SET(x) (((uint32_t)(x) << DAC_IRQ_EN_BUF1_CMPT_SHIFT) & DAC_IRQ_EN_BUF1_CMPT_MASK)
  379. #define DAC_IRQ_EN_BUF1_CMPT_GET(x) (((uint32_t)(x) & DAC_IRQ_EN_BUF1_CMPT_MASK) >> DAC_IRQ_EN_BUF1_CMPT_SHIFT)
  380. /*
  381. * BUF0_CMPT (RW)
  382. *
  383. */
  384. #define DAC_IRQ_EN_BUF0_CMPT_MASK (0x1U)
  385. #define DAC_IRQ_EN_BUF0_CMPT_SHIFT (0U)
  386. #define DAC_IRQ_EN_BUF0_CMPT_SET(x) (((uint32_t)(x) << DAC_IRQ_EN_BUF0_CMPT_SHIFT) & DAC_IRQ_EN_BUF0_CMPT_MASK)
  387. #define DAC_IRQ_EN_BUF0_CMPT_GET(x) (((uint32_t)(x) & DAC_IRQ_EN_BUF0_CMPT_MASK) >> DAC_IRQ_EN_BUF0_CMPT_SHIFT)
  388. /* Bitfield definition for register: DMA_EN */
  389. /*
  390. * STEP_CMPT (RW)
  391. *
  392. */
  393. #define DAC_DMA_EN_STEP_CMPT_MASK (0x10U)
  394. #define DAC_DMA_EN_STEP_CMPT_SHIFT (4U)
  395. #define DAC_DMA_EN_STEP_CMPT_SET(x) (((uint32_t)(x) << DAC_DMA_EN_STEP_CMPT_SHIFT) & DAC_DMA_EN_STEP_CMPT_MASK)
  396. #define DAC_DMA_EN_STEP_CMPT_GET(x) (((uint32_t)(x) & DAC_DMA_EN_STEP_CMPT_MASK) >> DAC_DMA_EN_STEP_CMPT_SHIFT)
  397. /*
  398. * BUF1_CMPT (RW)
  399. *
  400. */
  401. #define DAC_DMA_EN_BUF1_CMPT_MASK (0x2U)
  402. #define DAC_DMA_EN_BUF1_CMPT_SHIFT (1U)
  403. #define DAC_DMA_EN_BUF1_CMPT_SET(x) (((uint32_t)(x) << DAC_DMA_EN_BUF1_CMPT_SHIFT) & DAC_DMA_EN_BUF1_CMPT_MASK)
  404. #define DAC_DMA_EN_BUF1_CMPT_GET(x) (((uint32_t)(x) & DAC_DMA_EN_BUF1_CMPT_MASK) >> DAC_DMA_EN_BUF1_CMPT_SHIFT)
  405. /*
  406. * BUF0_CMPT (RW)
  407. *
  408. */
  409. #define DAC_DMA_EN_BUF0_CMPT_MASK (0x1U)
  410. #define DAC_DMA_EN_BUF0_CMPT_SHIFT (0U)
  411. #define DAC_DMA_EN_BUF0_CMPT_SET(x) (((uint32_t)(x) << DAC_DMA_EN_BUF0_CMPT_SHIFT) & DAC_DMA_EN_BUF0_CMPT_MASK)
  412. #define DAC_DMA_EN_BUF0_CMPT_GET(x) (((uint32_t)(x) & DAC_DMA_EN_BUF0_CMPT_MASK) >> DAC_DMA_EN_BUF0_CMPT_SHIFT)
  413. /* Bitfield definition for register: ANA_CFG0 */
  414. /*
  415. * DAC12BIT_LP_MODE (RW)
  416. *
  417. */
  418. #define DAC_ANA_CFG0_DAC12BIT_LP_MODE_MASK (0x100U)
  419. #define DAC_ANA_CFG0_DAC12BIT_LP_MODE_SHIFT (8U)
  420. #define DAC_ANA_CFG0_DAC12BIT_LP_MODE_SET(x) (((uint32_t)(x) << DAC_ANA_CFG0_DAC12BIT_LP_MODE_SHIFT) & DAC_ANA_CFG0_DAC12BIT_LP_MODE_MASK)
  421. #define DAC_ANA_CFG0_DAC12BIT_LP_MODE_GET(x) (((uint32_t)(x) & DAC_ANA_CFG0_DAC12BIT_LP_MODE_MASK) >> DAC_ANA_CFG0_DAC12BIT_LP_MODE_SHIFT)
  422. /*
  423. * DAC_CONFIG (RW)
  424. *
  425. */
  426. #define DAC_ANA_CFG0_DAC_CONFIG_MASK (0xF0U)
  427. #define DAC_ANA_CFG0_DAC_CONFIG_SHIFT (4U)
  428. #define DAC_ANA_CFG0_DAC_CONFIG_SET(x) (((uint32_t)(x) << DAC_ANA_CFG0_DAC_CONFIG_SHIFT) & DAC_ANA_CFG0_DAC_CONFIG_MASK)
  429. #define DAC_ANA_CFG0_DAC_CONFIG_GET(x) (((uint32_t)(x) & DAC_ANA_CFG0_DAC_CONFIG_MASK) >> DAC_ANA_CFG0_DAC_CONFIG_SHIFT)
  430. /*
  431. * CALI_DELTA_V_CFG (RW)
  432. *
  433. */
  434. #define DAC_ANA_CFG0_CALI_DELTA_V_CFG_MASK (0xCU)
  435. #define DAC_ANA_CFG0_CALI_DELTA_V_CFG_SHIFT (2U)
  436. #define DAC_ANA_CFG0_CALI_DELTA_V_CFG_SET(x) (((uint32_t)(x) << DAC_ANA_CFG0_CALI_DELTA_V_CFG_SHIFT) & DAC_ANA_CFG0_CALI_DELTA_V_CFG_MASK)
  437. #define DAC_ANA_CFG0_CALI_DELTA_V_CFG_GET(x) (((uint32_t)(x) & DAC_ANA_CFG0_CALI_DELTA_V_CFG_MASK) >> DAC_ANA_CFG0_CALI_DELTA_V_CFG_SHIFT)
  438. /*
  439. * BYPASS_CALI_GM (RW)
  440. *
  441. */
  442. #define DAC_ANA_CFG0_BYPASS_CALI_GM_MASK (0x2U)
  443. #define DAC_ANA_CFG0_BYPASS_CALI_GM_SHIFT (1U)
  444. #define DAC_ANA_CFG0_BYPASS_CALI_GM_SET(x) (((uint32_t)(x) << DAC_ANA_CFG0_BYPASS_CALI_GM_SHIFT) & DAC_ANA_CFG0_BYPASS_CALI_GM_MASK)
  445. #define DAC_ANA_CFG0_BYPASS_CALI_GM_GET(x) (((uint32_t)(x) & DAC_ANA_CFG0_BYPASS_CALI_GM_MASK) >> DAC_ANA_CFG0_BYPASS_CALI_GM_SHIFT)
  446. /*
  447. * DAC12BIT_EN (RW)
  448. *
  449. */
  450. #define DAC_ANA_CFG0_DAC12BIT_EN_MASK (0x1U)
  451. #define DAC_ANA_CFG0_DAC12BIT_EN_SHIFT (0U)
  452. #define DAC_ANA_CFG0_DAC12BIT_EN_SET(x) (((uint32_t)(x) << DAC_ANA_CFG0_DAC12BIT_EN_SHIFT) & DAC_ANA_CFG0_DAC12BIT_EN_MASK)
  453. #define DAC_ANA_CFG0_DAC12BIT_EN_GET(x) (((uint32_t)(x) & DAC_ANA_CFG0_DAC12BIT_EN_MASK) >> DAC_ANA_CFG0_DAC12BIT_EN_SHIFT)
  454. /* Bitfield definition for register: CFG0_BAK */
  455. /*
  456. * SW_DAC_DATA (RW)
  457. *
  458. * dac data used in direct mode(dac_mode==2'b10)
  459. */
  460. #define DAC_CFG0_BAK_SW_DAC_DATA_MASK (0xFFF0000UL)
  461. #define DAC_CFG0_BAK_SW_DAC_DATA_SHIFT (16U)
  462. #define DAC_CFG0_BAK_SW_DAC_DATA_SET(x) (((uint32_t)(x) << DAC_CFG0_BAK_SW_DAC_DATA_SHIFT) & DAC_CFG0_BAK_SW_DAC_DATA_MASK)
  463. #define DAC_CFG0_BAK_SW_DAC_DATA_GET(x) (((uint32_t)(x) & DAC_CFG0_BAK_SW_DAC_DATA_MASK) >> DAC_CFG0_BAK_SW_DAC_DATA_SHIFT)
  464. /*
  465. * DMA_AHB_EN (RW)
  466. *
  467. * set to enable internal DMA, it will read one burst if enough space in FIFO.
  468. * Should only be used in buffer mode.
  469. */
  470. #define DAC_CFG0_BAK_DMA_AHB_EN_MASK (0x200U)
  471. #define DAC_CFG0_BAK_DMA_AHB_EN_SHIFT (9U)
  472. #define DAC_CFG0_BAK_DMA_AHB_EN_SET(x) (((uint32_t)(x) << DAC_CFG0_BAK_DMA_AHB_EN_SHIFT) & DAC_CFG0_BAK_DMA_AHB_EN_MASK)
  473. #define DAC_CFG0_BAK_DMA_AHB_EN_GET(x) (((uint32_t)(x) & DAC_CFG0_BAK_DMA_AHB_EN_MASK) >> DAC_CFG0_BAK_DMA_AHB_EN_SHIFT)
  474. /*
  475. * SYNC_MODE (RW)
  476. *
  477. * 1: sync dac clock and ahb clock.
  478. * all HW trigger signals are pulse in sync mode, can get faster response;
  479. * 0: async dac clock and ahb_clock
  480. * all HW trigger signals should be level and should be more than one dac clock cycle, used to get accurate output frequency(which may not be divided from AHB clock)
  481. */
  482. #define DAC_CFG0_BAK_SYNC_MODE_MASK (0x100U)
  483. #define DAC_CFG0_BAK_SYNC_MODE_SHIFT (8U)
  484. #define DAC_CFG0_BAK_SYNC_MODE_SET(x) (((uint32_t)(x) << DAC_CFG0_BAK_SYNC_MODE_SHIFT) & DAC_CFG0_BAK_SYNC_MODE_MASK)
  485. #define DAC_CFG0_BAK_SYNC_MODE_GET(x) (((uint32_t)(x) & DAC_CFG0_BAK_SYNC_MODE_MASK) >> DAC_CFG0_BAK_SYNC_MODE_SHIFT)
  486. /*
  487. * TRIG_MODE (RW)
  488. *
  489. * 0: single mode, one trigger pulse will send one 12bit data to DAC analog;
  490. * 1: continual mode, if trigger signal(either or HW) is set, DAC will send data if FIFO is not empty, if trigger signal is clear, DAC will stop send data.
  491. */
  492. #define DAC_CFG0_BAK_TRIG_MODE_MASK (0x80U)
  493. #define DAC_CFG0_BAK_TRIG_MODE_SHIFT (7U)
  494. #define DAC_CFG0_BAK_TRIG_MODE_SET(x) (((uint32_t)(x) << DAC_CFG0_BAK_TRIG_MODE_SHIFT) & DAC_CFG0_BAK_TRIG_MODE_MASK)
  495. #define DAC_CFG0_BAK_TRIG_MODE_GET(x) (((uint32_t)(x) & DAC_CFG0_BAK_TRIG_MODE_MASK) >> DAC_CFG0_BAK_TRIG_MODE_SHIFT)
  496. /*
  497. * HW_TRIG_EN (RW)
  498. *
  499. * set to use trigger signal from trigger_mux, user should config it to pulse in single mode, and level in continual mode
  500. */
  501. #define DAC_CFG0_BAK_HW_TRIG_EN_MASK (0x40U)
  502. #define DAC_CFG0_BAK_HW_TRIG_EN_SHIFT (6U)
  503. #define DAC_CFG0_BAK_HW_TRIG_EN_SET(x) (((uint32_t)(x) << DAC_CFG0_BAK_HW_TRIG_EN_SHIFT) & DAC_CFG0_BAK_HW_TRIG_EN_MASK)
  504. #define DAC_CFG0_BAK_HW_TRIG_EN_GET(x) (((uint32_t)(x) & DAC_CFG0_BAK_HW_TRIG_EN_MASK) >> DAC_CFG0_BAK_HW_TRIG_EN_SHIFT)
  505. /*
  506. * DAC_MODE (RW)
  507. *
  508. * 00: direct mode, DAC output the fixed configured data(from sw_dac_data)
  509. * 01: step mode, DAC output from start_point to end point, with configured step, can step up or step down
  510. * 10: buffer mode, read data from buffer, then output to analog, internal DMA will load next burst if enough space in local FIFO;
  511. */
  512. #define DAC_CFG0_BAK_DAC_MODE_MASK (0x30U)
  513. #define DAC_CFG0_BAK_DAC_MODE_SHIFT (4U)
  514. #define DAC_CFG0_BAK_DAC_MODE_SET(x) (((uint32_t)(x) << DAC_CFG0_BAK_DAC_MODE_SHIFT) & DAC_CFG0_BAK_DAC_MODE_MASK)
  515. #define DAC_CFG0_BAK_DAC_MODE_GET(x) (((uint32_t)(x) & DAC_CFG0_BAK_DAC_MODE_MASK) >> DAC_CFG0_BAK_DAC_MODE_SHIFT)
  516. /*
  517. * BUF_DATA_MODE (RW)
  518. *
  519. * data structure for buffer mode,
  520. * 0: each 32-bit data contains 2 points, b11:0 for first, b27:16 for second.
  521. * 1: each 32-bit data contains 1 point, b11:0 for first
  522. */
  523. #define DAC_CFG0_BAK_BUF_DATA_MODE_MASK (0x8U)
  524. #define DAC_CFG0_BAK_BUF_DATA_MODE_SHIFT (3U)
  525. #define DAC_CFG0_BAK_BUF_DATA_MODE_SET(x) (((uint32_t)(x) << DAC_CFG0_BAK_BUF_DATA_MODE_SHIFT) & DAC_CFG0_BAK_BUF_DATA_MODE_MASK)
  526. #define DAC_CFG0_BAK_BUF_DATA_MODE_GET(x) (((uint32_t)(x) & DAC_CFG0_BAK_BUF_DATA_MODE_MASK) >> DAC_CFG0_BAK_BUF_DATA_MODE_SHIFT)
  527. /*
  528. * HBURST_CFG (RW)
  529. *
  530. * DAC support following fixed burst only
  531. * 000-SINGLE; 011-INCR4; 101: INCR8
  532. * others are reserved
  533. */
  534. #define DAC_CFG0_BAK_HBURST_CFG_MASK (0x7U)
  535. #define DAC_CFG0_BAK_HBURST_CFG_SHIFT (0U)
  536. #define DAC_CFG0_BAK_HBURST_CFG_SET(x) (((uint32_t)(x) << DAC_CFG0_BAK_HBURST_CFG_SHIFT) & DAC_CFG0_BAK_HBURST_CFG_MASK)
  537. #define DAC_CFG0_BAK_HBURST_CFG_GET(x) (((uint32_t)(x) & DAC_CFG0_BAK_HBURST_CFG_MASK) >> DAC_CFG0_BAK_HBURST_CFG_SHIFT)
  538. /* Bitfield definition for register: STATUS0 */
  539. /*
  540. * CUR_BUF_OFFSET (RW)
  541. *
  542. */
  543. #define DAC_STATUS0_CUR_BUF_OFFSET_MASK (0xFFFF00UL)
  544. #define DAC_STATUS0_CUR_BUF_OFFSET_SHIFT (8U)
  545. #define DAC_STATUS0_CUR_BUF_OFFSET_SET(x) (((uint32_t)(x) << DAC_STATUS0_CUR_BUF_OFFSET_SHIFT) & DAC_STATUS0_CUR_BUF_OFFSET_MASK)
  546. #define DAC_STATUS0_CUR_BUF_OFFSET_GET(x) (((uint32_t)(x) & DAC_STATUS0_CUR_BUF_OFFSET_MASK) >> DAC_STATUS0_CUR_BUF_OFFSET_SHIFT)
  547. /*
  548. * CUR_BUF_INDEX (RW)
  549. *
  550. */
  551. #define DAC_STATUS0_CUR_BUF_INDEX_MASK (0x80U)
  552. #define DAC_STATUS0_CUR_BUF_INDEX_SHIFT (7U)
  553. #define DAC_STATUS0_CUR_BUF_INDEX_SET(x) (((uint32_t)(x) << DAC_STATUS0_CUR_BUF_INDEX_SHIFT) & DAC_STATUS0_CUR_BUF_INDEX_MASK)
  554. #define DAC_STATUS0_CUR_BUF_INDEX_GET(x) (((uint32_t)(x) & DAC_STATUS0_CUR_BUF_INDEX_MASK) >> DAC_STATUS0_CUR_BUF_INDEX_SHIFT)
  555. /* STEP_CFG register group index macro definition */
  556. #define DAC_STEP_CFG_STEP0 (0UL)
  557. #define DAC_STEP_CFG_STEP1 (1UL)
  558. #define DAC_STEP_CFG_STEP2 (2UL)
  559. #define DAC_STEP_CFG_STEP3 (3UL)
  560. /* BUF_ADDR register group index macro definition */
  561. #define DAC_BUF_ADDR_BUF0 (0UL)
  562. #define DAC_BUF_ADDR_BUF1 (1UL)
  563. #endif /* HPM_DAC_H */