r_pdl_mtu2.h 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522
  1. /*""FILE COMMENT""*******************************************************
  2. * System Name : Multi-function Timer Pulse Unit API for RX62N
  3. * File Name : r_pdl_mtu2.h
  4. * Version : 1.02
  5. * Contents : MTU2 API header
  6. * Customer :
  7. * Model :
  8. * Order :
  9. * CPU : RX
  10. * Compiler : RXC
  11. * OS : Nothing
  12. * Programmer :
  13. * Note :
  14. ************************************************************************
  15. * Copyright, 2011. Renesas Electronics Corporation
  16. * and Renesas Solutions Corporation
  17. ************************************************************************
  18. * History : 2011.04.08
  19. * : Ver 1.02
  20. * : CS-5 release.
  21. *""FILE COMMENT END""**************************************************/
  22. #ifndef R_PDL_MTU2_H
  23. #define R_PDL_MTU2_H
  24. #include "r_pdl_common_defs_RX62Nxx.h"
  25. /* Function prototypes */
  26. bool R_MTU2_Set(
  27. uint16_t
  28. );
  29. bool R_MTU2_Create(
  30. uint8_t,
  31. void *
  32. );
  33. bool R_MTU2_Destroy(
  34. uint8_t
  35. );
  36. bool R_MTU2_ControlChannel(
  37. uint8_t,
  38. void *
  39. );
  40. bool R_MTU2_ControlUnit(
  41. uint8_t,
  42. void *
  43. );
  44. bool R_MTU2_ReadChannel(
  45. uint8_t,
  46. uint8_t *,
  47. uint16_t *,
  48. uint16_t *,
  49. uint16_t *,
  50. uint16_t *,
  51. uint16_t *,
  52. uint16_t *,
  53. uint16_t *
  54. );
  55. bool R_MTU2_ReadUnit(
  56. uint8_t,
  57. uint16_t *,
  58. uint8_t *
  59. );
  60. /* Pin selection */
  61. #define PDL_MTU2_PIN_3C_A 0x0001u
  62. #define PDL_MTU2_PIN_3C_B 0x0002u
  63. #define PDL_MTU2_PIN_3BD_A 0x0004u
  64. #define PDL_MTU2_PIN_3BD_B 0x0008u
  65. #define PDL_MTU2_PIN_4AC_A 0x0010u
  66. #define PDL_MTU2_PIN_4AC_B 0x0020u
  67. #define PDL_MTU2_PIN_4BD_A 0x0040u
  68. #define PDL_MTU2_PIN_4BD_B 0x0080u
  69. #define PDL_MTU2_PIN_5UVW_A 0x0100u
  70. #define PDL_MTU2_PIN_5UVW_B 0x0200u
  71. #define PDL_MTU2_PIN_CLKABCD_A 0x0400u
  72. #define PDL_MTU2_PIN_CLKABCD_B 0x0800u
  73. #define PDL_MTU2_PIN_11UVW_A 0x1000u
  74. #define PDL_MTU2_PIN_11UVW_B 0x2000u
  75. #define PDL_MTU2_PIN_CLKEFGH_A 0x4000u
  76. #define PDL_MTU2_PIN_CLKEFGH_B 0x8000u
  77. /* Operation mode */
  78. #define PDL_MTU2_MODE_NORMAL 0x00000001u
  79. #define PDL_MTU2_MODE_PWM1 0x00000002u
  80. #define PDL_MTU2_MODE_PWM2 0x00000004u
  81. #define PDL_MTU2_MODE_PHASE1 0x00000008u
  82. #define PDL_MTU2_MODE_PHASE2 0x00000010u
  83. #define PDL_MTU2_MODE_PHASE3 0x00000020u
  84. #define PDL_MTU2_MODE_PHASE4 0x00000040u
  85. #define PDL_MTU2_MODE_PWM_RS 0x00000080u
  86. #define PDL_MTU2_MODE_PWM_COMP1 0x00000100u
  87. #define PDL_MTU2_MODE_PWM_COMP2 0x00000200u
  88. #define PDL_MTU2_MODE_PWM_COMP3 0x00000400u
  89. /* Synchronous mode control */
  90. #define PDL_MTU2_SYNC_DISABLE 0x00000800u
  91. #define PDL_MTU2_SYNC_ENABLE 0x00001000u
  92. /* TGRA DMAC / DTC trigger control */
  93. #define PDL_MTU2_TGRA_DMAC_DTC_TRIGGER_DISABLE 0x00002000u
  94. #define PDL_MTU2_TGRA_DMAC_TRIGGER_ENABLE 0x00004000u
  95. #define PDL_MTU2_TGRA_DTC_TRIGGER_ENABLE 0x00008000u
  96. /* TGRB DTC trigger control */
  97. #define PDL_MTU2_TGRB_DTC_TRIGGER_DISABLE 0x00010000u
  98. #define PDL_MTU2_TGRB_DTC_TRIGGER_ENABLE 0x00020000u
  99. /* TGRC DTC trigger control */
  100. #define PDL_MTU2_TGRC_DTC_TRIGGER_DISABLE 0x00040000u
  101. #define PDL_MTU2_TGRC_DTC_TRIGGER_ENABLE 0x00080000u
  102. /* TGRD DTC trigger control */
  103. #define PDL_MTU2_TGRD_DTC_TRIGGER_DISABLE 0x00100000u
  104. #define PDL_MTU2_TGRD_DTC_TRIGGER_ENABLE 0x00200000u
  105. /* TGRU DTC trigger control */
  106. #define PDL_MTU2_TGRU_DTC_TRIGGER_DISABLE 0x00400000u
  107. #define PDL_MTU2_TGRU_DTC_TRIGGER_ENABLE 0x00800000u
  108. /* TGRV DTC trigger control */
  109. #define PDL_MTU2_TGRV_DTC_TRIGGER_DISABLE 0x01000000u
  110. #define PDL_MTU2_TGRV_DTC_TRIGGER_ENABLE 0x02000000u
  111. /* TGRW DTC trigger control */
  112. #define PDL_MTU2_TGRW_DTC_TRIGGER_DISABLE 0x04000000u
  113. #define PDL_MTU2_TGRW_DTC_TRIGGER_ENABLE 0x08000000u
  114. /* TCIV DTC trigger control */
  115. #define PDL_MTU2_TCIV_DTC_TRIGGER_DISABLE 0x10000000u
  116. #define PDL_MTU2_TCIV_DTC_TRIGGER_ENABLE 0x20000000u
  117. /* TCNT counter clock sources */
  118. #define PDL_MTU2_CLK_PCLK_DIV_1 0x00000001ul
  119. #define PDL_MTU2_CLK_PCLK_DIV_4 0x00000002ul
  120. #define PDL_MTU2_CLK_PCLK_DIV_16 0x00000004ul
  121. #define PDL_MTU2_CLK_PCLK_DIV_64 0x00000008ul
  122. #define PDL_MTU2_CLK_PCLK_DIV_256 0x00000010ul
  123. #define PDL_MTU2_CLK_PCLK_DIV_1024 0x00000020ul
  124. #define PDL_MTU2_CLK_MTCLKA 0x00000040ul
  125. #define PDL_MTU2_CLK_MTCLKB 0x00000080ul
  126. #define PDL_MTU2_CLK_MTCLKC 0x00000100ul
  127. #define PDL_MTU2_CLK_MTCLKD 0x00000200ul
  128. #define PDL_MTU2_CLK_MTCLKE 0x00000400ul
  129. #define PDL_MTU2_CLK_MTCLKF 0x00000800ul
  130. #define PDL_MTU2_CLK_MTCLKG 0x00001000ul
  131. #define PDL_MTU2_CLK_MTCLKH 0x00002000ul
  132. #define PDL_MTU2_CLK_CASCADE 0x00004000ul
  133. /* TNCT counter clock edge selection */
  134. #define PDL_MTU2_CLK_RISING 0x00008000ul
  135. #define PDL_MTU2_CLK_FALLING 0x00010000ul
  136. #define PDL_MTU2_CLK_BOTH 0x00020000ul
  137. /* TCNT counter clearing options */
  138. #define PDL_MTU2_CLEAR_DISABLE 0x00040000ul
  139. #define PDL_MTU2_CLEAR_TGRA 0x00080000ul
  140. #define PDL_MTU2_CLEAR_TGRB 0x00100000ul
  141. #define PDL_MTU2_CLEAR_SYNC 0x00200000ul
  142. #define PDL_MTU2_CLEAR_TGRC 0x00400000ul
  143. #define PDL_MTU2_CLEAR_TGRD 0x00800000ul
  144. /* TCNTU counter clock sources */
  145. #define PDL_MTU2_CLKU_PCLK_DIV_1 0x00000001ul
  146. #define PDL_MTU2_CLKU_PCLK_DIV_4 0x00000002ul
  147. #define PDL_MTU2_CLKU_PCLK_DIV_16 0x00000004ul
  148. #define PDL_MTU2_CLKU_PCLK_DIV_64 0x00000008ul
  149. /* TCNTV counter clock sources */
  150. #define PDL_MTU2_CLKV_PCLK_DIV_1 0x00000010ul
  151. #define PDL_MTU2_CLKV_PCLK_DIV_4 0x00000020ul
  152. #define PDL_MTU2_CLKV_PCLK_DIV_16 0x00000040ul
  153. #define PDL_MTU2_CLKV_PCLK_DIV_64 0x00000080ul
  154. /* TCNTW counter clock sources */
  155. #define PDL_MTU2_CLKW_PCLK_DIV_1 0x00000100ul
  156. #define PDL_MTU2_CLKW_PCLK_DIV_4 0x00000200ul
  157. #define PDL_MTU2_CLKW_PCLK_DIV_16 0x00000400ul
  158. #define PDL_MTU2_CLKW_PCLK_DIV_64 0x00000800ul
  159. /* U,V,W counter clearing options */
  160. #define PDL_MTU2_CLEAR_TGRU_DISABLE 0x00001000ul
  161. #define PDL_MTU2_CLEAR_TGRU_ENABLE 0x00002000ul
  162. #define PDL_MTU2_CLEAR_TGRV_DISABLE 0x00004000ul
  163. #define PDL_MTU2_CLEAR_TGRV_ENABLE 0x00008000ul
  164. #define PDL_MTU2_CLEAR_TGRW_DISABLE 0x00010000ul
  165. #define PDL_MTU2_CLEAR_TGRW_ENABLE 0x00020000ul
  166. /* ADC conversion trigger control */
  167. #define PDL_MTU2_ADC_TRIG_TGRA_DISABLE 0x00000001ul
  168. #define PDL_MTU2_ADC_TRIG_TGRA_ENABLE 0x00000002ul
  169. #define PDL_MTU2_ADC_TRIG_TROUGH_DISABLE 0x00000004ul
  170. #define PDL_MTU2_ADC_TRIG_TROUGH_ENABLE 0x00000008ul
  171. /* ADC trigger interrupt skipping */
  172. #define PDL_MTU2_ADC_TRIG_A_TROUGH_INT_SKIP_DISABLE 0x00000010ul
  173. #define PDL_MTU2_ADC_TRIG_A_TROUGH_INT_SKIP_ENABLE 0x00000020ul
  174. #define PDL_MTU2_ADC_TRIG_B_TROUGH_INT_SKIP_DISABLE 0x00000040ul
  175. #define PDL_MTU2_ADC_TRIG_B_TROUGH_INT_SKIP_ENABLE 0x00000080ul
  176. #define PDL_MTU2_ADC_TRIG_A_CREST_INT_SKIP_DISABLE 0x00000100ul
  177. #define PDL_MTU2_ADC_TRIG_A_CREST_INT_SKIP_ENABLE 0x00000200ul
  178. #define PDL_MTU2_ADC_TRIG_B_CREST_INT_SKIP_DISABLE 0x00000400ul
  179. #define PDL_MTU2_ADC_TRIG_B_CREST_INT_SKIP_ENABLE 0x00000800ul
  180. /* ADC trigger control */
  181. #define PDL_MTU2_ADC_TRIG_A_DOWN_DISABLE 0x00001000ul
  182. #define PDL_MTU2_ADC_TRIG_A_DOWN_ENABLE 0x00002000ul
  183. #define PDL_MTU2_ADC_TRIG_B_DOWN_DISABLE 0x00004000ul
  184. #define PDL_MTU2_ADC_TRIG_B_DOWN_ENABLE 0x00008000ul
  185. #define PDL_MTU2_ADC_TRIG_A_UP_DISABLE 0x00010000ul
  186. #define PDL_MTU2_ADC_TRIG_A_UP_ENABLE 0x00020000ul
  187. #define PDL_MTU2_ADC_TRIG_B_UP_DISABLE 0x00040000ul
  188. #define PDL_MTU2_ADC_TRIG_B_UP_ENABLE 0x00080000ul
  189. /* Cycle set buffer transfer timing */
  190. #define PDL_MTU2_CSB_DISABLE 0x0001u
  191. #define PDL_MTU2_CSB_CREST 0x0002u
  192. #define PDL_MTU2_CSB_TROUGH 0x0004u
  193. #define PDL_MTU2_CSB_BOTH 0x0008u
  194. /* Buffer operation */
  195. #define PDL_MTU2_BUFFER_AC_DISABLE 0x0010u
  196. #define PDL_MTU2_BUFFER_AC_ENABLE 0x0020u
  197. #define PDL_MTU2_BUFFER_BD_DISABLE 0x0040u
  198. #define PDL_MTU2_BUFFER_BD_ENABLE 0x0080u
  199. #define PDL_MTU2_BUFFER_EF_DISABLE 0x0100u
  200. #define PDL_MTU2_BUFFER_EF_ENABLE 0x0200u
  201. /* Buffer data transfer */
  202. #define PDL_MTU2_BUFFER_AC_CM_A 0x0400u
  203. #define PDL_MTU2_BUFFER_AC_TCNT_CLR 0x0800u
  204. #define PDL_MTU2_BUFFER_BD_CM_B 0x1000u
  205. #define PDL_MTU2_BUFFER_BD_TCNT_CLR 0x2000u
  206. #define PDL_MTU2_BUFFER_EF_CM_E 0x4000u
  207. #define PDL_MTU2_BUFFER_EF_TCNT_CLR 0x8000u
  208. /* TGRA options */
  209. #define PDL_MTU2_A_OC_DISABLED 0x00000001ul
  210. #define PDL_MTU2_A_OC_LOW 0x00000002ul
  211. #define PDL_MTU2_A_OC_LOW_CM_HIGH 0x00000004ul
  212. #define PDL_MTU2_A_OC_LOW_CM_INV 0x00000008ul
  213. #define PDL_MTU2_A_OC_HIGH_CM_LOW 0x00000010ul
  214. #define PDL_MTU2_A_OC_HIGH 0x00000020ul
  215. #define PDL_MTU2_A_OC_HIGH_CM_INV 0x00000040ul
  216. #define PDL_MTU2_A_IC_RISING_EDGE 0x00000080ul
  217. #define PDL_MTU2_A_IC_FALLING_EDGE 0x00000100ul
  218. #define PDL_MTU2_A_IC_BOTH_EDGES 0x00000200ul
  219. #define PDL_MTU2_A_IC_COUNT 0x00000400ul
  220. #define PDL_MTU2_A_IC_CM_IC 0x00000800ul
  221. /* TGRB options */
  222. #define PDL_MTU2_B_OC_DISABLED 0x00001000ul
  223. #define PDL_MTU2_B_OC_LOW 0x00002000ul
  224. #define PDL_MTU2_B_OC_LOW_CM_HIGH 0x00004000ul
  225. #define PDL_MTU2_B_OC_LOW_CM_INV 0x00008000ul
  226. #define PDL_MTU2_B_OC_HIGH_CM_LOW 0x00010000ul
  227. #define PDL_MTU2_B_OC_HIGH 0x00020000ul
  228. #define PDL_MTU2_B_OC_HIGH_CM_INV 0x00040000ul
  229. #define PDL_MTU2_B_IC_RISING_EDGE 0x00080000ul
  230. #define PDL_MTU2_B_IC_FALLING_EDGE 0x00100000ul
  231. #define PDL_MTU2_B_IC_BOTH_EDGES 0x00200000ul
  232. #define PDL_MTU2_B_IC_COUNT 0x00400000ul
  233. #define PDL_MTU2_B_IC_CM_IC 0x00800000ul
  234. /* Cascade input capture control */
  235. #define PDL_MTU2_CASCADE_AL_IC_EXC_H 0x01000000ul
  236. #define PDL_MTU2_CASCADE_AL_IC_INC_H 0x02000000ul
  237. #define PDL_MTU2_CASCADE_BL_IC_EXC_H 0x04000000ul
  238. #define PDL_MTU2_CASCADE_BL_IC_INC_H 0x08000000ul
  239. #define PDL_MTU2_CASCADE_AH_IC_EXC_L 0x10000000ul
  240. #define PDL_MTU2_CASCADE_AH_IC_INC_L 0x20000000ul
  241. #define PDL_MTU2_CASCADE_BH_IC_EXC_L 0x40000000ul
  242. #define PDL_MTU2_CASCADE_BH_IC_INC_L 0x80000000ul
  243. /* TGRC options */
  244. #define PDL_MTU2_C_OC_DISABLED 0x00000001ul
  245. #define PDL_MTU2_C_OC_LOW 0x00000002ul
  246. #define PDL_MTU2_C_OC_LOW_CM_HIGH 0x00000004ul
  247. #define PDL_MTU2_C_OC_LOW_CM_INV 0x00000008ul
  248. #define PDL_MTU2_C_OC_HIGH_CM_LOW 0x00000010ul
  249. #define PDL_MTU2_C_OC_HIGH 0x00000020ul
  250. #define PDL_MTU2_C_OC_HIGH_CM_INV 0x00000040ul
  251. #define PDL_MTU2_C_IC_RISING_EDGE 0x00000080ul
  252. #define PDL_MTU2_C_IC_FALLING_EDGE 0x00000100ul
  253. #define PDL_MTU2_C_IC_BOTH_EDGES 0x00000200ul
  254. #define PDL_MTU2_C_IC_COUNT 0x00000400ul
  255. /* TGRD options */
  256. #define PDL_MTU2_D_OC_DISABLED 0x00000800ul
  257. #define PDL_MTU2_D_OC_LOW 0x00001000ul
  258. #define PDL_MTU2_D_OC_LOW_CM_HIGH 0x00002000ul
  259. #define PDL_MTU2_D_OC_LOW_CM_INV 0x00004000ul
  260. #define PDL_MTU2_D_OC_HIGH_CM_LOW 0x00008000ul
  261. #define PDL_MTU2_D_OC_HIGH 0x00010000ul
  262. #define PDL_MTU2_D_OC_HIGH_CM_INV 0x00020000ul
  263. #define PDL_MTU2_D_IC_RISING_EDGE 0x00040000ul
  264. #define PDL_MTU2_D_IC_FALLING_EDGE 0x00080000ul
  265. #define PDL_MTU2_D_IC_BOTH_EDGES 0x00100000ul
  266. #define PDL_MTU2_D_IC_COUNT 0x00200000ul
  267. /* TGRU options */
  268. #define PDL_MTU2_U_CM 0x00000001ul
  269. #define PDL_MTU2_U_IC_RISING_EDGE 0x00000002ul
  270. #define PDL_MTU2_U_IC_FALLING_EDGE 0x00000004ul
  271. #define PDL_MTU2_U_IC_BOTH_EDGES 0x00000008ul
  272. #define PDL_MTU2_U_IC_PWM_LOW_TROUGH 0x00000010ul
  273. #define PDL_MTU2_U_IC_PWM_LOW_CREST 0x00000020ul
  274. #define PDL_MTU2_U_IC_PWM_LOW_BOTH 0x00000040ul
  275. #define PDL_MTU2_U_IC_PWM_HIGH_TROUGH 0x00000080ul
  276. #define PDL_MTU2_U_IC_PWM_HIGH_CREST 0x00000100ul
  277. #define PDL_MTU2_U_IC_PWM_HIGH_BOTH 0x00000200ul
  278. /* TGRV options */
  279. #define PDL_MTU2_V_CM 0x00000400ul
  280. #define PDL_MTU2_V_IC_RISING_EDGE 0x00000800ul
  281. #define PDL_MTU2_V_IC_FALLING_EDGE 0x00001000ul
  282. #define PDL_MTU2_V_IC_BOTH_EDGES 0x00002000ul
  283. #define PDL_MTU2_V_IC_PWM_LOW_TROUGH 0x00004000ul
  284. #define PDL_MTU2_V_IC_PWM_LOW_CREST 0x00008000ul
  285. #define PDL_MTU2_V_IC_PWM_LOW_BOTH 0x00010000ul
  286. #define PDL_MTU2_V_IC_PWM_HIGH_TROUGH 0x00020000ul
  287. #define PDL_MTU2_V_IC_PWM_HIGH_CREST 0x00040000ul
  288. #define PDL_MTU2_V_IC_PWM_HIGH_BOTH 0x00080000ul
  289. /* TGRW options */
  290. #define PDL_MTU2_W_CM 0x00100000ul
  291. #define PDL_MTU2_W_IC_RISING_EDGE 0x00200000ul
  292. #define PDL_MTU2_W_IC_FALLING_EDGE 0x00400000ul
  293. #define PDL_MTU2_W_IC_BOTH_EDGES 0x00800000ul
  294. #define PDL_MTU2_W_IC_PWM_LOW_TROUGH 0x01000000ul
  295. #define PDL_MTU2_W_IC_PWM_LOW_CREST 0x02000000ul
  296. #define PDL_MTU2_W_IC_PWM_LOW_BOTH 0x04000000ul
  297. #define PDL_MTU2_W_IC_PWM_HIGH_TROUGH 0x08000000ul
  298. #define PDL_MTU2_W_IC_PWM_HIGH_CREST 0x10000000ul
  299. #define PDL_MTU2_W_IC_PWM_HIGH_BOTH 0x20000000ul
  300. /* Counter stop / re-start */
  301. #define PDL_MTU2_STOP 0x01u
  302. #define PDL_MTU2_START 0x02u
  303. #define PDL_MTU2_STOP_U 0x04u
  304. #define PDL_MTU2_START_U 0x08u
  305. #define PDL_MTU2_STOP_V 0x10u
  306. #define PDL_MTU2_START_V 0x20u
  307. #define PDL_MTU2_STOP_W 0x40u
  308. #define PDL_MTU2_START_W 0x80u
  309. /* The registers to be modified (n = 0 to 4 or 6 to 10) */
  310. #define PDL_MTU2_REGISTER_COUNTER 0x0001u
  311. #define PDL_MTU2_REGISTER_TGRA 0x0002u
  312. #define PDL_MTU2_REGISTER_TGRB 0x0004u
  313. #define PDL_MTU2_REGISTER_TGRC 0x0008u
  314. #define PDL_MTU2_REGISTER_TGRD 0x0010u
  315. #define PDL_MTU2_REGISTER_TGRE 0x0020u
  316. #define PDL_MTU2_REGISTER_TGRF 0x0040u
  317. #define PDL_MTU2_REGISTER_TADCOBRA 0x0080u
  318. #define PDL_MTU2_REGISTER_TADCOBRB 0x0100u
  319. /* The registers to be modified (n = 5 or 11) */
  320. #define PDL_MTU2_REGISTER_COUNTER_U 0x01u
  321. #define PDL_MTU2_REGISTER_COUNTER_V 0x02u
  322. #define PDL_MTU2_REGISTER_COUNTER_W 0x04u
  323. #define PDL_MTU2_REGISTER_TGRU 0x08u
  324. #define PDL_MTU2_REGISTER_TGRV 0x10u
  325. #define PDL_MTU2_REGISTER_TGRW 0x20u
  326. /* Simultaneous stop control */
  327. #define PDL_MTU2_STOP_CH_0 0x0001u
  328. #define PDL_MTU2_STOP_CH_1 0x0002u
  329. #define PDL_MTU2_STOP_CH_2 0x0004u
  330. #define PDL_MTU2_STOP_CH_3 0x0008u
  331. #define PDL_MTU2_STOP_CH_4 0x0010u
  332. #define PDL_MTU2_STOP_CH_6 PDL_MTU2_STOP_CH_0
  333. #define PDL_MTU2_STOP_CH_7 PDL_MTU2_STOP_CH_1
  334. #define PDL_MTU2_STOP_CH_8 PDL_MTU2_STOP_CH_2
  335. #define PDL_MTU2_STOP_CH_9 PDL_MTU2_STOP_CH_3
  336. #define PDL_MTU2_STOP_CH_10 PDL_MTU2_STOP_CH_4
  337. /* Simultaneous start control */
  338. #define PDL_MTU2_START_CH_0 0x0020u
  339. #define PDL_MTU2_START_CH_1 0x0040u
  340. #define PDL_MTU2_START_CH_2 0x0080u
  341. #define PDL_MTU2_START_CH_3 0x0100u
  342. #define PDL_MTU2_START_CH_4 0x0200u
  343. #define PDL_MTU2_START_CH_6 PDL_MTU2_START_CH_0
  344. #define PDL_MTU2_START_CH_7 PDL_MTU2_START_CH_1
  345. #define PDL_MTU2_START_CH_8 PDL_MTU2_START_CH_2
  346. #define PDL_MTU2_START_CH_9 PDL_MTU2_START_CH_3
  347. #define PDL_MTU2_START_CH_10 PDL_MTU2_START_CH_4
  348. /* Output control */
  349. #define PDL_MTU2_OUT_P_PHASE_1_ENABLE 0x00000001ul
  350. #define PDL_MTU2_OUT_P_PHASE_1_DISABLE 0x00000002ul
  351. #define PDL_MTU2_OUT_N_PHASE_1_ENABLE 0x00000004ul
  352. #define PDL_MTU2_OUT_N_PHASE_1_DISABLE 0x00000008ul
  353. #define PDL_MTU2_OUT_P_PHASE_2_ENABLE 0x00000010ul
  354. #define PDL_MTU2_OUT_P_PHASE_2_DISABLE 0x00000020ul
  355. #define PDL_MTU2_OUT_N_PHASE_2_ENABLE 0x00000040ul
  356. #define PDL_MTU2_OUT_N_PHASE_2_DISABLE 0x00000080ul
  357. #define PDL_MTU2_OUT_P_PHASE_3_ENABLE 0x00000100ul
  358. #define PDL_MTU2_OUT_P_PHASE_3_DISABLE 0x00000200ul
  359. #define PDL_MTU2_OUT_N_PHASE_3_ENABLE 0x00000400ul
  360. #define PDL_MTU2_OUT_N_PHASE_3_DISABLE 0x00000800ul
  361. #define PDL_MTU2_OUT_P_PHASE_ALL_ENABLE (PDL_MTU2_OUT_P_PHASE_1_ENABLE | PDL_MTU2_OUT_P_PHASE_2_ENABLE | PDL_MTU2_OUT_P_PHASE_3_ENABLE)
  362. #define PDL_MTU2_OUT_P_PHASE_ALL_DISABLE (PDL_MTU2_OUT_P_PHASE_1_DISABLE | PDL_MTU2_OUT_P_PHASE_2_DISABLE | PDL_MTU2_OUT_P_PHASE_3_DISABLE)
  363. #define PDL_MTU2_OUT_N_PHASE_ALL_ENABLE (PDL_MTU2_OUT_N_PHASE_1_ENABLE | PDL_MTU2_OUT_N_PHASE_2_ENABLE | PDL_MTU2_OUT_N_PHASE_3_ENABLE)
  364. #define PDL_MTU2_OUT_N_PHASE_ALL_DISABLE (PDL_MTU2_OUT_N_PHASE_1_DISABLE | PDL_MTU2_OUT_N_PHASE_2_DISABLE | PDL_MTU2_OUT_N_PHASE_3_DISABLE)
  365. /* Inversion control */
  366. #define PDL_MTU2_OUT_P_PHASE_ALL_HIGH_LOW 0x00001000ul
  367. #define PDL_MTU2_OUT_P_PHASE_ALL_LOW_HIGH 0x00002000ul
  368. #define PDL_MTU2_OUT_N_PHASE_ALL_HIGH_LOW 0x00004000ul
  369. #define PDL_MTU2_OUT_N_PHASE_ALL_LOW_HIGH 0x00008000ul
  370. #define PDL_MTU2_OUT_P_PHASE_1_HIGH_LOW 0x00010000ul
  371. #define PDL_MTU2_OUT_P_PHASE_1_LOW_HIGH 0x00020000ul
  372. #define PDL_MTU2_OUT_N_PHASE_1_HIGH_LOW 0x00040000ul
  373. #define PDL_MTU2_OUT_N_PHASE_1_LOW_HIGH 0x00080000ul
  374. #define PDL_MTU2_OUT_P_PHASE_2_HIGH_LOW 0x00100000ul
  375. #define PDL_MTU2_OUT_P_PHASE_2_LOW_HIGH 0x00200000ul
  376. #define PDL_MTU2_OUT_N_PHASE_2_HIGH_LOW 0x00400000ul
  377. #define PDL_MTU2_OUT_N_PHASE_2_LOW_HIGH 0x00800000ul
  378. #define PDL_MTU2_OUT_P_PHASE_3_HIGH_LOW 0x01000000ul
  379. #define PDL_MTU2_OUT_P_PHASE_3_LOW_HIGH 0x02000000ul
  380. #define PDL_MTU2_OUT_N_PHASE_3_HIGH_LOW 0x04000000ul
  381. #define PDL_MTU2_OUT_N_PHASE_3_LOW_HIGH 0x08000000ul
  382. /* Write access control */
  383. #define PDL_MTU2_OUT_LOCK_ENABLE 0x10000000ul
  384. /* Toggle output control */
  385. #define PDL_MTU2_OUT_TOGGLE_ENABLE 0x20000000ul
  386. #define PDL_MTU2_OUT_TOGGLE_DISABLE 0x40000000ul
  387. /* Output level buffer control */
  388. #define PDL_MTU2_OUT_BUFFER_P_PHASE_1_LOW 0x00000001ul
  389. #define PDL_MTU2_OUT_BUFFER_P_PHASE_1_HIGH 0x00000002ul
  390. #define PDL_MTU2_OUT_BUFFER_N_PHASE_1_LOW 0x00000004ul
  391. #define PDL_MTU2_OUT_BUFFER_N_PHASE_1_HIGH 0x00000008ul
  392. #define PDL_MTU2_OUT_BUFFER_P_PHASE_2_LOW 0x00000010ul
  393. #define PDL_MTU2_OUT_BUFFER_P_PHASE_2_HIGH 0x00000020ul
  394. #define PDL_MTU2_OUT_BUFFER_N_PHASE_2_LOW 0x00000040ul
  395. #define PDL_MTU2_OUT_BUFFER_N_PHASE_2_HIGH 0x00000080ul
  396. #define PDL_MTU2_OUT_BUFFER_P_PHASE_3_LOW 0x00000100ul
  397. #define PDL_MTU2_OUT_BUFFER_P_PHASE_3_HIGH 0x00000200ul
  398. #define PDL_MTU2_OUT_BUFFER_N_PHASE_3_LOW 0x00000400ul
  399. #define PDL_MTU2_OUT_BUFFER_N_PHASE_3_HIGH 0x00000800ul
  400. /* Transfer timing (complementary PWM) */
  401. #define PDL_MTU2_OUT_BUFFER_TRANSFER_DISABLE 0x00001000ul
  402. #define PDL_MTU2_OUT_BUFFER_TRANSFER_CREST 0x00002000ul
  403. #define PDL_MTU2_OUT_BUFFER_TRANSFER_TROUGH 0x00004000ul
  404. #define PDL_MTU2_OUT_BUFFER_TRANSFER_BOTH 0x00008000ul
  405. /* Transfer timing (reset-synchronised PWM) */
  406. #define PDL_MTU2_OUT_BUFFER_TRANSFER_CLEAR PDL_MTU2_OUT_BUFFER_TRANSFER_CREST
  407. /* Buffer transfer to temporary transfer control */
  408. #define PDL_MTU2_BUFFER_TRANSFER_DISABLE 0x00020000ul
  409. #define PDL_MTU2_BUFFER_TRANSFER_ENABLE 0x00040000ul
  410. #define PDL_MTU2_BUFFER_TRANSFER_LINK 0x00080000ul
  411. /* Brushless DC motor waveform control */
  412. #define PDL_MTU2_BDCM_ENABLE 0x0001u
  413. #define PDL_MTU2_BDCM_DISABLE 0x0002u
  414. #define PDL_MTU2_BDCM_P_PHASE_ENABLE 0x0004u
  415. #define PDL_MTU2_BDCM_P_PHASE_DISABLE 0x0008u
  416. #define PDL_MTU2_BDCM_N_PHASE_ENABLE 0x0010u
  417. #define PDL_MTU2_BDCM_N_PHASE_DISABLE 0x0020u
  418. #define PDL_MTU2_BDCM_OPS_FB 0x0040u
  419. #define PDL_MTU2_BDCM_OPS_000 0x0080u
  420. #define PDL_MTU2_BDCM_OPS_001 0x0100u
  421. #define PDL_MTU2_BDCM_OPS_010 0x0200u
  422. #define PDL_MTU2_BDCM_OPS_011 0x0400u
  423. #define PDL_MTU2_BDCM_OPS_100 0x0800u
  424. #define PDL_MTU2_BDCM_OPS_101 0x1000u
  425. #define PDL_MTU2_BDCM_OPS_110 0x2000u
  426. #define PDL_MTU2_BDCM_OPS_111 0x4000u
  427. /* Interrupt skipping control */
  428. #define PDL_MTU2_INT_SKIP_TROUGH_DISABLE 0x00000001ul
  429. #define PDL_MTU2_INT_SKIP_TROUGH_1 0x00000002ul
  430. #define PDL_MTU2_INT_SKIP_TROUGH_2 0x00000004ul
  431. #define PDL_MTU2_INT_SKIP_TROUGH_3 0x00000008ul
  432. #define PDL_MTU2_INT_SKIP_TROUGH_4 0x00000010ul
  433. #define PDL_MTU2_INT_SKIP_TROUGH_5 0x00000020ul
  434. #define PDL_MTU2_INT_SKIP_TROUGH_6 0x00000040ul
  435. #define PDL_MTU2_INT_SKIP_TROUGH_7 0x00000080ul
  436. #define PDL_MTU2_INT_SKIP_CREST_DISABLE 0x00000100ul
  437. #define PDL_MTU2_INT_SKIP_CREST_1 0x00000200ul
  438. #define PDL_MTU2_INT_SKIP_CREST_2 0x00000400ul
  439. #define PDL_MTU2_INT_SKIP_CREST_3 0x00000800ul
  440. #define PDL_MTU2_INT_SKIP_CREST_4 0x00001000ul
  441. #define PDL_MTU2_INT_SKIP_CREST_5 0x00002000ul
  442. #define PDL_MTU2_INT_SKIP_CREST_6 0x00004000ul
  443. #define PDL_MTU2_INT_SKIP_CREST_7 0x00008000ul
  444. /* Dead time generation control */
  445. #define PDL_MTU2_DEAD_TIME_DISABLE 0x00010000ul
  446. #define PDL_MTU2_DEAD_TIME_ENABLE 0x00020000ul
  447. /* Waveform retention control */
  448. #define PDL_MTU2_WAVEFORM_RETAIN_DISABLE 0x00040000ul
  449. #define PDL_MTU2_WAVEFORM_RETAIN_ENABLE 0x00080000ul
  450. /* Compare match clearing control */
  451. #define PDL_MTU2_CNT_CLEAR_CM_A_DISABLE 0x00100000ul
  452. #define PDL_MTU2_CNT_CLEAR_CM_A_ENABLE 0x00200000ul
  453. /* Reset-synchronised or complementary PWM control */
  454. #define PDL_MTU2_PWM_RS_COMP_ENABLE 0x00400000ul
  455. /* Register protection */
  456. #define PDL_MTU2_ACCESS_DISABLE 0x00800000ul
  457. #define PDL_MTU2_ACCESS_ENABLE 0x01000000ul
  458. /* Unit registers to be modified */
  459. #define PDL_MTU2_REGISTER_DEAD_TIME 0x01u
  460. #define PDL_MTU2_REGISTER_CYCLE_DATA 0x02u
  461. #define PDL_MTU2_REGISTER_CYCLE_BUFFER 0x04u
  462. #endif
  463. /* End of file */