pwm_tmr_config.h 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881
  1. /*
  2. * Copyright (C) 2022-2024, Xiaohua Semiconductor Co., Ltd.
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2023-02-22 CDT first version
  9. */
  10. #ifndef __PWM_TMR_CONFIG_H__
  11. #define __PWM_TMR_CONFIG_H__
  12. #include <rtthread.h>
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. #ifdef BSP_USING_PWM_TMRA
  17. #ifdef BSP_USING_PWM_TMRA_1
  18. #ifndef PWM_TMRA_1_CONFIG
  19. #define PWM_TMRA_1_CONFIG \
  20. { \
  21. .name = "pwm_a1", \
  22. .instance = CM_TMRA_1, \
  23. .channel = 0, \
  24. .stcTmraInit = \
  25. { \
  26. .u8CountSrc = TMRA_CNT_SRC_SW, \
  27. .u32PeriodValue = 0xFFFF, \
  28. .sw_count = \
  29. { \
  30. .u8ClockDiv = TMRA_CLK_DIV1, \
  31. .u8CountMode = TMRA_MD_SAWTOOTH, \
  32. .u8CountDir = TMRA_DIR_DOWN, \
  33. }, \
  34. .u8CountReload = TMRA_CNT_RELOAD_ENABLE\
  35. }, \
  36. .stcPwmInit = \
  37. { \
  38. .u32CompareValue = 0x0000, \
  39. .u16StartPolarity = TMRA_PWM_LOW, \
  40. .u16StopPolarity = TMRA_PWM_LOW, \
  41. .u16CompareMatchPolarity = TMRA_PWM_HIGH, \
  42. .u16PeriodMatchPolarity = TMRA_PWM_LOW, \
  43. }, \
  44. }
  45. #endif /* PWM_TMRA_1_CONFIG */
  46. #endif /* BSP_USING_PWM_TMRA_1 */
  47. #ifdef BSP_USING_PWM_TMRA_2
  48. #ifndef PWM_TMRA_2_CONFIG
  49. #define PWM_TMRA_2_CONFIG \
  50. { \
  51. .name = "pwm_a2", \
  52. .instance = CM_TMRA_2, \
  53. .channel = 0, \
  54. .stcTmraInit = \
  55. { \
  56. .u8CountSrc = TMRA_CNT_SRC_SW, \
  57. .u32PeriodValue = 0xFFFF, \
  58. .sw_count = \
  59. { \
  60. .u8ClockDiv = TMRA_CLK_DIV1, \
  61. .u8CountMode = TMRA_MD_SAWTOOTH, \
  62. .u8CountDir = TMRA_DIR_DOWN, \
  63. }, \
  64. .u8CountReload = TMRA_CNT_RELOAD_ENABLE\
  65. }, \
  66. .stcPwmInit = \
  67. { \
  68. .u32CompareValue = 0x0000, \
  69. .u16StartPolarity = TMRA_PWM_LOW, \
  70. .u16StopPolarity = TMRA_PWM_LOW, \
  71. .u16CompareMatchPolarity = TMRA_PWM_HIGH, \
  72. .u16PeriodMatchPolarity = TMRA_PWM_LOW, \
  73. }, \
  74. }
  75. #endif /* PWM_TMRA_2_CONFIG */
  76. #endif /* BSP_USING_PWM_TMRA_2 */
  77. #ifdef BSP_USING_PWM_TMRA_3
  78. #ifndef PWM_TMRA_3_CONFIG
  79. #define PWM_TMRA_3_CONFIG \
  80. { \
  81. .name = "pwm_a3", \
  82. .instance = CM_TMRA_3, \
  83. .channel = 0, \
  84. .stcTmraInit = \
  85. { \
  86. .u8CountSrc = TMRA_CNT_SRC_SW, \
  87. .u32PeriodValue = 0xFFFF, \
  88. .sw_count = \
  89. { \
  90. .u8ClockDiv = TMRA_CLK_DIV1, \
  91. .u8CountMode = TMRA_MD_SAWTOOTH, \
  92. .u8CountDir = TMRA_DIR_DOWN, \
  93. }, \
  94. .u8CountReload = TMRA_CNT_RELOAD_ENABLE\
  95. }, \
  96. .stcPwmInit = \
  97. { \
  98. .u32CompareValue = 0x0000, \
  99. .u16StartPolarity = TMRA_PWM_LOW, \
  100. .u16StopPolarity = TMRA_PWM_LOW, \
  101. .u16CompareMatchPolarity = TMRA_PWM_HIGH, \
  102. .u16PeriodMatchPolarity = TMRA_PWM_LOW, \
  103. }, \
  104. }
  105. #endif /* PWM_TMRA_3_CONFIG */
  106. #endif /* BSP_USING_PWM_TMRA_3 */
  107. #ifdef BSP_USING_PWM_TMRA_4
  108. #ifndef PWM_TMRA_4_CONFIG
  109. #define PWM_TMRA_4_CONFIG \
  110. { \
  111. .name = "pwm_a4", \
  112. .instance = CM_TMRA_4, \
  113. .channel = 0, \
  114. .stcTmraInit = \
  115. { \
  116. .u8CountSrc = TMRA_CNT_SRC_SW, \
  117. .u32PeriodValue = 0xFFFF, \
  118. .sw_count = \
  119. { \
  120. .u8ClockDiv = TMRA_CLK_DIV1, \
  121. .u8CountMode = TMRA_MD_SAWTOOTH, \
  122. .u8CountDir = TMRA_DIR_DOWN, \
  123. }, \
  124. .u8CountReload = TMRA_CNT_RELOAD_ENABLE\
  125. }, \
  126. .stcPwmInit = \
  127. { \
  128. .u32CompareValue = 0x0000, \
  129. .u16StartPolarity = TMRA_PWM_LOW, \
  130. .u16StopPolarity = TMRA_PWM_LOW, \
  131. .u16CompareMatchPolarity = TMRA_PWM_HIGH, \
  132. .u16PeriodMatchPolarity = TMRA_PWM_LOW, \
  133. }, \
  134. }
  135. #endif /* PWM_TMRA_4_CONFIG */
  136. #endif /* BSP_USING_PWM_TMRA_4 */
  137. #ifdef BSP_USING_PWM_TMRA_5
  138. #ifndef PWM_TMRA_5_CONFIG
  139. #define PWM_TMRA_5_CONFIG \
  140. { \
  141. .name = "pwm_a5", \
  142. .instance = CM_TMRA_5, \
  143. .channel = 0, \
  144. .stcTmraInit = \
  145. { \
  146. .u8CountSrc = TMRA_CNT_SRC_SW, \
  147. .u32PeriodValue = 0xFFFF, \
  148. .sw_count = \
  149. { \
  150. .u8ClockDiv = TMRA_CLK_DIV1, \
  151. .u8CountMode = TMRA_MD_SAWTOOTH, \
  152. .u8CountDir = TMRA_DIR_DOWN, \
  153. }, \
  154. .u8CountReload = TMRA_CNT_RELOAD_ENABLE\
  155. }, \
  156. .stcPwmInit = \
  157. { \
  158. .u32CompareValue = 0x0000, \
  159. .u16StartPolarity = TMRA_PWM_LOW, \
  160. .u16StopPolarity = TMRA_PWM_LOW, \
  161. .u16CompareMatchPolarity = TMRA_PWM_HIGH, \
  162. .u16PeriodMatchPolarity = TMRA_PWM_LOW, \
  163. }, \
  164. }
  165. #endif /* PWM_TMRA_5_CONFIG */
  166. #endif /* BSP_USING_PWM_TMRA_5 */
  167. #ifdef BSP_USING_PWM_TMRA_6
  168. #ifndef PWM_TMRA_6_CONFIG
  169. #define PWM_TMRA_6_CONFIG \
  170. { \
  171. .name = "pwm_a6", \
  172. .instance = CM_TMRA_6, \
  173. .channel = 0, \
  174. .stcTmraInit = \
  175. { \
  176. .u8CountSrc = TMRA_CNT_SRC_SW, \
  177. .u32PeriodValue = 0xFFFF, \
  178. .sw_count = \
  179. { \
  180. .u8ClockDiv = TMRA_CLK_DIV1, \
  181. .u8CountMode = TMRA_MD_SAWTOOTH, \
  182. .u8CountDir = TMRA_DIR_DOWN, \
  183. }, \
  184. .u8CountReload = TMRA_CNT_RELOAD_ENABLE\
  185. }, \
  186. .stcPwmInit = \
  187. { \
  188. .u32CompareValue = 0x0000, \
  189. .u16StartPolarity = TMRA_PWM_LOW, \
  190. .u16StopPolarity = TMRA_PWM_LOW, \
  191. .u16CompareMatchPolarity = TMRA_PWM_HIGH, \
  192. .u16PeriodMatchPolarity = TMRA_PWM_LOW, \
  193. }, \
  194. }
  195. #endif /* PWM_TMRA_6_CONFIG */
  196. #endif /* BSP_USING_PWM_TMRA_6 */
  197. #ifdef BSP_USING_PWM_TMRA_7
  198. #ifndef PWM_TMRA_7_CONFIG
  199. #define PWM_TMRA_7_CONFIG \
  200. { \
  201. .name = "pwm_a7", \
  202. .instance = CM_TMRA_7, \
  203. .channel = 0, \
  204. .stcTmraInit = \
  205. { \
  206. .u8CountSrc = TMRA_CNT_SRC_SW, \
  207. .u32PeriodValue = 0xFFFF, \
  208. .sw_count = \
  209. { \
  210. .u8ClockDiv = TMRA_CLK_DIV1, \
  211. .u8CountMode = TMRA_MD_SAWTOOTH, \
  212. .u8CountDir = TMRA_DIR_DOWN, \
  213. }, \
  214. .u8CountReload = TMRA_CNT_RELOAD_ENABLE\
  215. }, \
  216. .stcPwmInit = \
  217. { \
  218. .u32CompareValue = 0x0000, \
  219. .u16StartPolarity = TMRA_PWM_LOW, \
  220. .u16StopPolarity = TMRA_PWM_LOW, \
  221. .u16CompareMatchPolarity = TMRA_PWM_HIGH, \
  222. .u16PeriodMatchPolarity = TMRA_PWM_LOW, \
  223. }, \
  224. }
  225. #endif /* PWM_TMRA_7_CONFIG */
  226. #endif /* BSP_USING_PWM_TMRA_7 */
  227. #ifdef BSP_USING_PWM_TMRA_8
  228. #ifndef PWM_TMRA_8_CONFIG
  229. #define PWM_TMRA_8_CONFIG \
  230. { \
  231. .name = "pwm_a8", \
  232. .instance = CM_TMRA_8, \
  233. .channel = 0, \
  234. .stcTmraInit = \
  235. { \
  236. .u8CountSrc = TMRA_CNT_SRC_SW, \
  237. .u32PeriodValue = 0xFFFF, \
  238. .sw_count = \
  239. { \
  240. .u8ClockDiv = TMRA_CLK_DIV1, \
  241. .u8CountMode = TMRA_MD_SAWTOOTH, \
  242. .u8CountDir = TMRA_DIR_DOWN, \
  243. }, \
  244. .u8CountReload = TMRA_CNT_RELOAD_ENABLE\
  245. }, \
  246. .stcPwmInit = \
  247. { \
  248. .u32CompareValue = 0x0000, \
  249. .u16StartPolarity = TMRA_PWM_LOW, \
  250. .u16StopPolarity = TMRA_PWM_LOW, \
  251. .u16CompareMatchPolarity = TMRA_PWM_HIGH, \
  252. .u16PeriodMatchPolarity = TMRA_PWM_LOW, \
  253. }, \
  254. }
  255. #endif /* PWM_TMRA_8_CONFIG */
  256. #endif /* BSP_USING_PWM_TMRA_8 */
  257. #ifdef BSP_USING_PWM_TMRA_9
  258. #ifndef PWM_TMRA_9_CONFIG
  259. #define PWM_TMRA_9_CONFIG \
  260. { \
  261. .name = "pwm_a9", \
  262. .instance = CM_TMRA_9, \
  263. .channel = 0, \
  264. .stcTmraInit = \
  265. { \
  266. .u8CountSrc = TMRA_CNT_SRC_SW, \
  267. .u32PeriodValue = 0xFFFF, \
  268. .sw_count = \
  269. { \
  270. .u8ClockDiv = TMRA_CLK_DIV1, \
  271. .u8CountMode = TMRA_MD_SAWTOOTH, \
  272. .u8CountDir = TMRA_DIR_DOWN, \
  273. }, \
  274. .u8CountReload = TMRA_CNT_RELOAD_ENABLE\
  275. }, \
  276. .stcPwmInit = \
  277. { \
  278. .u32CompareValue = 0x0000, \
  279. .u16StartPolarity = TMRA_PWM_LOW, \
  280. .u16StopPolarity = TMRA_PWM_LOW, \
  281. .u16CompareMatchPolarity = TMRA_PWM_HIGH, \
  282. .u16PeriodMatchPolarity = TMRA_PWM_LOW, \
  283. }, \
  284. }
  285. #endif /* PWM_TMRA_9_CONFIG */
  286. #endif /* BSP_USING_PWM_TMRA_9 */
  287. #ifdef BSP_USING_PWM_TMRA_10
  288. #ifndef PWM_TMRA_10_CONFIG
  289. #define PWM_TMRA_10_CONFIG \
  290. { \
  291. .name = "pwm_a10", \
  292. .instance = CM_TMRA_10, \
  293. .channel = 0, \
  294. .stcTmraInit = \
  295. { \
  296. .u8CountSrc = TMRA_CNT_SRC_SW, \
  297. .u32PeriodValue = 0xFFFF, \
  298. .sw_count = \
  299. { \
  300. .u8ClockDiv = TMRA_CLK_DIV1, \
  301. .u8CountMode = TMRA_MD_SAWTOOTH, \
  302. .u8CountDir = TMRA_DIR_DOWN, \
  303. }, \
  304. .u8CountReload = TMRA_CNT_RELOAD_ENABLE\
  305. }, \
  306. .stcPwmInit = \
  307. { \
  308. .u32CompareValue = 0x0000, \
  309. .u16StartPolarity = TMRA_PWM_LOW, \
  310. .u16StopPolarity = TMRA_PWM_LOW, \
  311. .u16CompareMatchPolarity = TMRA_PWM_HIGH, \
  312. .u16PeriodMatchPolarity = TMRA_PWM_LOW, \
  313. }, \
  314. }
  315. #endif /* PWM_TMRA_10_CONFIG */
  316. #endif /* BSP_USING_PWM_TMRA_10 */
  317. #ifdef BSP_USING_PWM_TMRA_11
  318. #ifndef PWM_TMRA_11_CONFIG
  319. #define PWM_TMRA_11_CONFIG \
  320. { \
  321. .name = "pwm_a11", \
  322. .instance = CM_TMRA_11, \
  323. .channel = 0, \
  324. .stcTmraInit = \
  325. { \
  326. .u8CountSrc = TMRA_CNT_SRC_SW, \
  327. .u32PeriodValue = 0xFFFF, \
  328. .sw_count = \
  329. { \
  330. .u8ClockDiv = TMRA_CLK_DIV1, \
  331. .u8CountMode = TMRA_MD_SAWTOOTH, \
  332. .u8CountDir = TMRA_DIR_DOWN, \
  333. }, \
  334. .u8CountReload = TMRA_CNT_RELOAD_ENABLE\
  335. }, \
  336. .stcPwmInit = \
  337. { \
  338. .u32CompareValue = 0x0000, \
  339. .u16StartPolarity = TMRA_PWM_LOW, \
  340. .u16StopPolarity = TMRA_PWM_LOW, \
  341. .u16CompareMatchPolarity = TMRA_PWM_HIGH, \
  342. .u16PeriodMatchPolarity = TMRA_PWM_LOW, \
  343. }, \
  344. }
  345. #endif /* PWM_TMRA_11_CONFIG */
  346. #endif /* BSP_USING_PWM_TMRA_11 */
  347. #ifdef BSP_USING_PWM_TMRA_12
  348. #ifndef PWM_TMRA_12_CONFIG
  349. #define PWM_TMRA_12_CONFIG \
  350. { \
  351. .name = "pwm_a12", \
  352. .instance = CM_TMRA_12, \
  353. .channel = 0, \
  354. .stcTmraInit = \
  355. { \
  356. .u8CountSrc = TMRA_CNT_SRC_SW, \
  357. .u32PeriodValue = 0xFFFF, \
  358. .sw_count = \
  359. { \
  360. .u8ClockDiv = TMRA_CLK_DIV1, \
  361. .u8CountMode = TMRA_MD_SAWTOOTH, \
  362. .u8CountDir = TMRA_DIR_DOWN, \
  363. }, \
  364. .u8CountReload = TMRA_CNT_RELOAD_ENABLE\
  365. }, \
  366. .stcPwmInit = \
  367. { \
  368. .u32CompareValue = 0x0000, \
  369. .u16StartPolarity = TMRA_PWM_LOW, \
  370. .u16StopPolarity = TMRA_PWM_LOW, \
  371. .u16CompareMatchPolarity = TMRA_PWM_HIGH, \
  372. .u16PeriodMatchPolarity = TMRA_PWM_LOW, \
  373. }, \
  374. }
  375. #endif /* PWM_TMRA_12_CONFIG */
  376. #endif /* BSP_USING_PWM_TMRA_12 */
  377. #endif /* BSP_USING_PWM_TMRA */
  378. #ifdef BSP_USING_PWM_TMR4
  379. #ifdef BSP_USING_PWM_TMR4_1
  380. #ifndef PWM_TMR4_1_CONFIG
  381. #define PWM_TMR4_1_CONFIG \
  382. { \
  383. .name = "pwm_t41", \
  384. .instance = CM_TMR4_1, \
  385. .channel = 0, \
  386. .stcTmr4Init = \
  387. { \
  388. .u16ClockDiv = TMR4_CLK_DIV1, \
  389. .u16PeriodValue = 0xFFFFU, \
  390. .u16CountMode = TMR4_MD_SAWTOOTH, \
  391. .u16ClockSrc = TMR4_CLK_SRC_INTERNCLK,\
  392. }, \
  393. .stcTmr4OcInit = \
  394. { \
  395. .u16CompareValue = 0x0000, \
  396. .u16OcInvalidPolarity = TMR4_OC_INVD_LOW, \
  397. .u16CompareModeBufCond = TMR4_OC_BUF_COND_IMMED,\
  398. .u16CompareValueBufCond = TMR4_OC_BUF_COND_IMMED, \
  399. .u16BufLinkTransObject = 0U, \
  400. }, \
  401. .stcTmr4PwmInit = \
  402. { \
  403. .u16Mode = TMR4_PWM_MD_THROUGH, \
  404. .u16ClockDiv = TMR4_PWM_CLK_DIV1, \
  405. .u16Polarity = TMR4_PWM_OXH_HOLD_OXL_HOLD,\
  406. }, \
  407. }
  408. #endif /* PWM_TMR4_1_CONFIG */
  409. #endif /* BSP_USING_PWM_TMR4_1 */
  410. #ifdef BSP_USING_PWM_TMR4_2
  411. #ifndef PWM_TMR4_2_CONFIG
  412. #define PWM_TMR4_2_CONFIG \
  413. { \
  414. .name = "pwm_t42", \
  415. .instance = CM_TMR4_2, \
  416. .channel = 0, \
  417. .stcTmr4Init = \
  418. { \
  419. .u16ClockDiv = TMR4_CLK_DIV1, \
  420. .u16PeriodValue = 0xFFFFU, \
  421. .u16CountMode = TMR4_MD_SAWTOOTH, \
  422. .u16ClockSrc = TMR4_CLK_SRC_INTERNCLK,\
  423. }, \
  424. .stcTmr4OcInit = \
  425. { \
  426. .u16CompareValue = 0x0000, \
  427. .u16OcInvalidPolarity = TMR4_OC_INVD_LOW, \
  428. .u16CompareModeBufCond = TMR4_OC_BUF_COND_IMMED,\
  429. .u16CompareValueBufCond = TMR4_OC_BUF_COND_IMMED, \
  430. .u16BufLinkTransObject = 0U, \
  431. }, \
  432. .stcTmr4PwmInit = \
  433. { \
  434. .u16Mode = TMR4_PWM_MD_THROUGH, \
  435. .u16ClockDiv = TMR4_PWM_CLK_DIV1, \
  436. .u16Polarity = TMR4_PWM_OXH_HOLD_OXL_HOLD,\
  437. }, \
  438. }
  439. #endif /* PWM_TMR4_2_CONFIG */
  440. #endif /* BSP_USING_PWM_TMR4_2 */
  441. #ifdef BSP_USING_PWM_TMR4_3
  442. #ifndef PWM_TMR4_3_CONFIG
  443. #define PWM_TMR4_3_CONFIG \
  444. { \
  445. .name = "pwm_t43", \
  446. .instance = CM_TMR4_3, \
  447. .channel = 0, \
  448. .stcTmr4Init = \
  449. { \
  450. .u16ClockDiv = TMR4_CLK_DIV1, \
  451. .u16PeriodValue = 0xFFFFU, \
  452. .u16CountMode = TMR4_MD_SAWTOOTH, \
  453. .u16ClockSrc = TMR4_CLK_SRC_INTERNCLK,\
  454. }, \
  455. .stcTmr4OcInit = \
  456. { \
  457. .u16CompareValue = 0x0000, \
  458. .u16OcInvalidPolarity = TMR4_OC_INVD_LOW, \
  459. .u16CompareModeBufCond = TMR4_OC_BUF_COND_IMMED,\
  460. .u16CompareValueBufCond = TMR4_OC_BUF_COND_IMMED, \
  461. .u16BufLinkTransObject = 0U, \
  462. }, \
  463. .stcTmr4PwmInit = \
  464. { \
  465. .u16Mode = TMR4_PWM_MD_THROUGH, \
  466. .u16ClockDiv = TMR4_PWM_CLK_DIV1, \
  467. .u16Polarity = TMR4_PWM_OXH_HOLD_OXL_HOLD,\
  468. }, \
  469. }
  470. #endif /* PWM_TMR4_3_CONFIG */
  471. #endif /* BSP_USING_PWM_TMR4_3 */
  472. #endif /* BSP_USING_PWM_TMR4 */
  473. #ifdef BSP_USING_PWM_TMR6
  474. #ifdef BSP_USING_PWM_TMR6_1
  475. #ifndef PWM_TMR6_1_CONFIG
  476. #define PWM_TMR6_1_CONFIG \
  477. { \
  478. .name = "pwm_t61", \
  479. .instance = CM_TMR6_1, \
  480. .channel = 0, \
  481. .stcTmr6Init = \
  482. { \
  483. .u8CountSrc = TMR6_CNT_SRC_SW, \
  484. .sw_count = \
  485. { \
  486. .u32ClockDiv = TMR6_CLK_DIV1, \
  487. .u32CountMode = TMR6_MD_SAWTOOTH, \
  488. .u32CountDir = TMR6_CNT_UP, \
  489. }, \
  490. .u32PeriodValue = 0xFFFF, \
  491. .u32CountReload = TMR6_CNT_RELOAD_ON, \
  492. }, \
  493. .stcPwmInit = \
  494. { \
  495. { \
  496. .u32CompareValue = 0x0000, \
  497. .u32StartPolarity = TMR6_PWM_HIGH, \
  498. .u32StopPolarity = TMR6_PWM_HIGH, \
  499. .u32CountUpMatchAPolarity = TMR6_PWM_LOW, \
  500. .u32CountDownMatchAPolarity = TMR6_PWM_HOLD, \
  501. .u32CountUpMatchBPolarity = TMR6_PWM_HOLD, \
  502. .u32CountDownMatchBPolarity = TMR6_PWM_HOLD, \
  503. .u32UdfPolarity = TMR6_PWM_HOLD, \
  504. .u32OvfPolarity = TMR6_PWM_HIGH, \
  505. }, \
  506. { \
  507. .u32CompareValue = 0x0000, \
  508. .u32StartPolarity = TMR6_PWM_HIGH, \
  509. .u32StopPolarity = TMR6_PWM_HIGH, \
  510. .u32CountUpMatchAPolarity = TMR6_PWM_HOLD, \
  511. .u32CountDownMatchAPolarity = TMR6_PWM_HOLD, \
  512. .u32CountUpMatchBPolarity = TMR6_PWM_LOW, \
  513. .u32CountDownMatchBPolarity = TMR6_PWM_HOLD, \
  514. .u32UdfPolarity = TMR6_PWM_HOLD, \
  515. .u32OvfPolarity = TMR6_PWM_HIGH, \
  516. } \
  517. }, \
  518. }
  519. #endif /* PWM_TMR6_1_CONFIG */
  520. #endif /* BSP_USING_PWM_TMR6_1 */
  521. #ifdef BSP_USING_PWM_TMR6_2
  522. #ifndef PWM_TMR6_2_CONFIG
  523. #define PWM_TMR6_2_CONFIG \
  524. { \
  525. .name = "pwm_t62", \
  526. .instance = CM_TMR6_2, \
  527. .channel = 0, \
  528. .stcTmr6Init = \
  529. { \
  530. .u8CountSrc = TMR6_CNT_SRC_SW, \
  531. .sw_count = \
  532. { \
  533. .u32ClockDiv = TMR6_CLK_DIV1, \
  534. .u32CountMode = TMR6_MD_SAWTOOTH, \
  535. .u32CountDir = TMR6_CNT_UP, \
  536. }, \
  537. .u32PeriodValue = 0xFFFF, \
  538. .u32CountReload = TMR6_CNT_RELOAD_ON, \
  539. }, \
  540. .stcPwmInit = \
  541. { \
  542. { \
  543. .u32CompareValue = 0x0000, \
  544. .u32StartPolarity = TMR6_PWM_HIGH, \
  545. .u32StopPolarity = TMR6_PWM_HIGH, \
  546. .u32CountUpMatchAPolarity = TMR6_PWM_LOW, \
  547. .u32CountDownMatchAPolarity = TMR6_PWM_HOLD, \
  548. .u32CountUpMatchBPolarity = TMR6_PWM_HOLD, \
  549. .u32CountDownMatchBPolarity = TMR6_PWM_HOLD, \
  550. .u32UdfPolarity = TMR6_PWM_HOLD, \
  551. .u32OvfPolarity = TMR6_PWM_HIGH, \
  552. }, \
  553. { \
  554. .u32CompareValue = 0x0000, \
  555. .u32StartPolarity = TMR6_PWM_HIGH, \
  556. .u32StopPolarity = TMR6_PWM_HIGH, \
  557. .u32CountUpMatchAPolarity = TMR6_PWM_HOLD, \
  558. .u32CountDownMatchAPolarity = TMR6_PWM_HOLD, \
  559. .u32CountUpMatchBPolarity = TMR6_PWM_LOW, \
  560. .u32CountDownMatchBPolarity = TMR6_PWM_HOLD, \
  561. .u32UdfPolarity = TMR6_PWM_HOLD, \
  562. .u32OvfPolarity = TMR6_PWM_HIGH, \
  563. } \
  564. }, \
  565. }
  566. #endif /* PWM_TMR6_2_CONFIG */
  567. #endif /* BSP_USING_PWM_TMR6_2 */
  568. #ifdef BSP_USING_PWM_TMR6_3
  569. #ifndef PWM_TMR6_3_CONFIG
  570. #define PWM_TMR6_3_CONFIG \
  571. { \
  572. .name = "pwm_t63", \
  573. .instance = CM_TMR6_3, \
  574. .channel = 0, \
  575. .stcTmr6Init = \
  576. { \
  577. .u8CountSrc = TMR6_CNT_SRC_SW, \
  578. .sw_count = \
  579. { \
  580. .u32ClockDiv = TMR6_CLK_DIV1, \
  581. .u32CountMode = TMR6_MD_SAWTOOTH, \
  582. .u32CountDir = TMR6_CNT_UP, \
  583. }, \
  584. .u32PeriodValue = 0xFFFF, \
  585. .u32CountReload = TMR6_CNT_RELOAD_ON, \
  586. }, \
  587. .stcPwmInit = \
  588. { \
  589. { \
  590. .u32CompareValue = 0x0000, \
  591. .u32StartPolarity = TMR6_PWM_HIGH, \
  592. .u32StopPolarity = TMR6_PWM_HIGH, \
  593. .u32CountUpMatchAPolarity = TMR6_PWM_LOW, \
  594. .u32CountDownMatchAPolarity = TMR6_PWM_HOLD, \
  595. .u32CountUpMatchBPolarity = TMR6_PWM_HOLD, \
  596. .u32CountDownMatchBPolarity = TMR6_PWM_HOLD, \
  597. .u32UdfPolarity = TMR6_PWM_HOLD, \
  598. .u32OvfPolarity = TMR6_PWM_HIGH, \
  599. }, \
  600. { \
  601. .u32CompareValue = 0x0000, \
  602. .u32StartPolarity = TMR6_PWM_HIGH, \
  603. .u32StopPolarity = TMR6_PWM_HIGH, \
  604. .u32CountUpMatchAPolarity = TMR6_PWM_HOLD, \
  605. .u32CountDownMatchAPolarity = TMR6_PWM_HOLD, \
  606. .u32CountUpMatchBPolarity = TMR6_PWM_LOW, \
  607. .u32CountDownMatchBPolarity = TMR6_PWM_HOLD, \
  608. .u32UdfPolarity = TMR6_PWM_HOLD, \
  609. .u32OvfPolarity = TMR6_PWM_HIGH, \
  610. } \
  611. }, \
  612. }
  613. #endif /* PWM_TMR6_3_CONFIG */
  614. #endif /* BSP_USING_PWM_TMR6_3 */
  615. #ifdef BSP_USING_PWM_TMR6_4
  616. #ifndef PWM_TMR6_4_CONFIG
  617. #define PWM_TMR6_4_CONFIG \
  618. { \
  619. .name = "pwm_t64", \
  620. .instance = CM_TMR6_4, \
  621. .channel = 0, \
  622. .stcTmr6Init = \
  623. { \
  624. .u8CountSrc = TMR6_CNT_SRC_SW, \
  625. .sw_count = \
  626. { \
  627. .u32ClockDiv = TMR6_CLK_DIV1, \
  628. .u32CountMode = TMR6_MD_SAWTOOTH, \
  629. .u32CountDir = TMR6_CNT_UP, \
  630. }, \
  631. .u32PeriodValue = 0xFFFF, \
  632. .u32CountReload = TMR6_CNT_RELOAD_ON, \
  633. }, \
  634. .stcPwmInit = \
  635. { \
  636. { \
  637. .u32CompareValue = 0x0000, \
  638. .u32StartPolarity = TMR6_PWM_HIGH, \
  639. .u32StopPolarity = TMR6_PWM_HIGH, \
  640. .u32CountUpMatchAPolarity = TMR6_PWM_LOW, \
  641. .u32CountDownMatchAPolarity = TMR6_PWM_HOLD, \
  642. .u32CountUpMatchBPolarity = TMR6_PWM_HOLD, \
  643. .u32CountDownMatchBPolarity = TMR6_PWM_HOLD, \
  644. .u32UdfPolarity = TMR6_PWM_HOLD, \
  645. .u32OvfPolarity = TMR6_PWM_HIGH, \
  646. }, \
  647. { \
  648. .u32CompareValue = 0x0000, \
  649. .u32StartPolarity = TMR6_PWM_HIGH, \
  650. .u32StopPolarity = TMR6_PWM_HIGH, \
  651. .u32CountUpMatchAPolarity = TMR6_PWM_HOLD, \
  652. .u32CountDownMatchAPolarity = TMR6_PWM_HOLD, \
  653. .u32CountUpMatchBPolarity = TMR6_PWM_LOW, \
  654. .u32CountDownMatchBPolarity = TMR6_PWM_HOLD, \
  655. .u32UdfPolarity = TMR6_PWM_HOLD, \
  656. .u32OvfPolarity = TMR6_PWM_HIGH, \
  657. } \
  658. }, \
  659. }
  660. #endif /* PWM_TMR6_4_CONFIG */
  661. #endif /* BSP_USING_PWM_TMR6_4 */
  662. #ifdef BSP_USING_PWM_TMR6_5
  663. #ifndef PWM_TMR6_5_CONFIG
  664. #define PWM_TMR6_5_CONFIG \
  665. { \
  666. .name = "pwm_t65", \
  667. .instance = CM_TMR6_5, \
  668. .channel = 0, \
  669. .stcTmr6Init = \
  670. { \
  671. .u8CountSrc = TMR6_CNT_SRC_SW, \
  672. .sw_count = \
  673. { \
  674. .u32ClockDiv = TMR6_CLK_DIV1, \
  675. .u32CountMode = TMR6_MD_SAWTOOTH, \
  676. .u32CountDir = TMR6_CNT_UP, \
  677. }, \
  678. .u32PeriodValue = 0xFFFF, \
  679. .u32CountReload = TMR6_CNT_RELOAD_ON, \
  680. }, \
  681. .stcPwmInit = \
  682. { \
  683. { \
  684. .u32CompareValue = 0x0000, \
  685. .u32StartPolarity = TMR6_PWM_HIGH, \
  686. .u32StopPolarity = TMR6_PWM_HIGH, \
  687. .u32CountUpMatchAPolarity = TMR6_PWM_LOW, \
  688. .u32CountDownMatchAPolarity = TMR6_PWM_HOLD, \
  689. .u32CountUpMatchBPolarity = TMR6_PWM_HOLD, \
  690. .u32CountDownMatchBPolarity = TMR6_PWM_HOLD, \
  691. .u32UdfPolarity = TMR6_PWM_HOLD, \
  692. .u32OvfPolarity = TMR6_PWM_HIGH, \
  693. }, \
  694. { \
  695. .u32CompareValue = 0x0000, \
  696. .u32StartPolarity = TMR6_PWM_HIGH, \
  697. .u32StopPolarity = TMR6_PWM_HIGH, \
  698. .u32CountUpMatchAPolarity = TMR6_PWM_HOLD, \
  699. .u32CountDownMatchAPolarity = TMR6_PWM_HOLD, \
  700. .u32CountUpMatchBPolarity = TMR6_PWM_LOW, \
  701. .u32CountDownMatchBPolarity = TMR6_PWM_HOLD, \
  702. .u32UdfPolarity = TMR6_PWM_HOLD, \
  703. .u32OvfPolarity = TMR6_PWM_HIGH, \
  704. } \
  705. }, \
  706. }
  707. #endif /* PWM_TMR6_5_CONFIG */
  708. #endif /* BSP_USING_PWM_TMR6_5 */
  709. #ifdef BSP_USING_PWM_TMR6_6
  710. #ifndef PWM_TMR6_6_CONFIG
  711. #define PWM_TMR6_6_CONFIG \
  712. { \
  713. .name = "pwm_t66", \
  714. .instance = CM_TMR6_6, \
  715. .channel = 0, \
  716. .stcTmr6Init = \
  717. { \
  718. .u8CountSrc = TMR6_CNT_SRC_SW, \
  719. .sw_count = \
  720. { \
  721. .u32ClockDiv = TMR6_CLK_DIV1, \
  722. .u32CountMode = TMR6_MD_SAWTOOTH, \
  723. .u32CountDir = TMR6_CNT_UP, \
  724. }, \
  725. .u32PeriodValue = 0xFFFF, \
  726. .u32CountReload = TMR6_CNT_RELOAD_ON, \
  727. }, \
  728. .stcPwmInit = \
  729. { \
  730. { \
  731. .u32CompareValue = 0x0000, \
  732. .u32StartPolarity = TMR6_PWM_HIGH, \
  733. .u32StopPolarity = TMR6_PWM_HIGH, \
  734. .u32CountUpMatchAPolarity = TMR6_PWM_LOW, \
  735. .u32CountDownMatchAPolarity = TMR6_PWM_HOLD, \
  736. .u32CountUpMatchBPolarity = TMR6_PWM_HOLD, \
  737. .u32CountDownMatchBPolarity = TMR6_PWM_HOLD, \
  738. .u32UdfPolarity = TMR6_PWM_HOLD, \
  739. .u32OvfPolarity = TMR6_PWM_HIGH, \
  740. }, \
  741. { \
  742. .u32CompareValue = 0x0000, \
  743. .u32StartPolarity = TMR6_PWM_HIGH, \
  744. .u32StopPolarity = TMR6_PWM_HIGH, \
  745. .u32CountUpMatchAPolarity = TMR6_PWM_HOLD, \
  746. .u32CountDownMatchAPolarity = TMR6_PWM_HOLD, \
  747. .u32CountUpMatchBPolarity = TMR6_PWM_LOW, \
  748. .u32CountDownMatchBPolarity = TMR6_PWM_HOLD, \
  749. .u32UdfPolarity = TMR6_PWM_HOLD, \
  750. .u32OvfPolarity = TMR6_PWM_HIGH, \
  751. } \
  752. }, \
  753. }
  754. #endif /* PWM_TMR6_6_CONFIG */
  755. #endif /* BSP_USING_PWM_TMR6_6 */
  756. #ifdef BSP_USING_PWM_TMR6_7
  757. #ifndef PWM_TMR6_7_CONFIG
  758. #define PWM_TMR6_7_CONFIG \
  759. { \
  760. .name = "pwm_t67", \
  761. .instance = CM_TMR6_7, \
  762. .channel = 0, \
  763. .stcTmr6Init = \
  764. { \
  765. .u8CountSrc = TMR6_CNT_SRC_SW, \
  766. .sw_count = \
  767. { \
  768. .u32ClockDiv = TMR6_CLK_DIV1, \
  769. .u32CountMode = TMR6_MD_SAWTOOTH, \
  770. .u32CountDir = TMR6_CNT_UP, \
  771. }, \
  772. .u32PeriodValue = 0xFFFF, \
  773. .u32CountReload = TMR6_CNT_RELOAD_ON, \
  774. }, \
  775. .stcPwmInit = \
  776. { \
  777. { \
  778. .u32CompareValue = 0x0000, \
  779. .u32StartPolarity = TMR6_PWM_HIGH, \
  780. .u32StopPolarity = TMR6_PWM_HIGH, \
  781. .u32CountUpMatchAPolarity = TMR6_PWM_LOW, \
  782. .u32CountDownMatchAPolarity = TMR6_PWM_HOLD, \
  783. .u32CountUpMatchBPolarity = TMR6_PWM_HOLD, \
  784. .u32CountDownMatchBPolarity = TMR6_PWM_HOLD, \
  785. .u32UdfPolarity = TMR6_PWM_HOLD, \
  786. .u32OvfPolarity = TMR6_PWM_HIGH, \
  787. }, \
  788. { \
  789. .u32CompareValue = 0x0000, \
  790. .u32StartPolarity = TMR6_PWM_HIGH, \
  791. .u32StopPolarity = TMR6_PWM_HIGH, \
  792. .u32CountUpMatchAPolarity = TMR6_PWM_HOLD, \
  793. .u32CountDownMatchAPolarity = TMR6_PWM_HOLD, \
  794. .u32CountUpMatchBPolarity = TMR6_PWM_LOW, \
  795. .u32CountDownMatchBPolarity = TMR6_PWM_HOLD, \
  796. .u32UdfPolarity = TMR6_PWM_HOLD, \
  797. .u32OvfPolarity = TMR6_PWM_HIGH, \
  798. } \
  799. }, \
  800. }
  801. #endif /* PWM_TMR6_7_CONFIG */
  802. #endif /* BSP_USING_PWM_TMR6_7 */
  803. #ifdef BSP_USING_PWM_TMR6_8
  804. #ifndef PWM_TMR6_8_CONFIG
  805. #define PWM_TMR6_8_CONFIG \
  806. { \
  807. .name = "pwm_t68", \
  808. .instance = CM_TMR6_8, \
  809. .channel = 0, \
  810. .stcTmr6Init = \
  811. { \
  812. .u8CountSrc = TMR6_CNT_SRC_SW, \
  813. .sw_count = \
  814. { \
  815. .u32ClockDiv = TMR6_CLK_DIV1, \
  816. .u32CountMode = TMR6_MD_SAWTOOTH, \
  817. .u32CountDir = TMR6_CNT_UP, \
  818. }, \
  819. .u32PeriodValue = 0xFFFF, \
  820. .u32CountReload = TMR6_CNT_RELOAD_ON, \
  821. }, \
  822. .stcPwmInit = \
  823. { \
  824. { \
  825. .u32CompareValue = 0x0000, \
  826. .u32StartPolarity = TMR6_PWM_HIGH, \
  827. .u32StopPolarity = TMR6_PWM_HIGH, \
  828. .u32CountUpMatchAPolarity = TMR6_PWM_LOW, \
  829. .u32CountDownMatchAPolarity = TMR6_PWM_HOLD, \
  830. .u32CountUpMatchBPolarity = TMR6_PWM_HOLD, \
  831. .u32CountDownMatchBPolarity = TMR6_PWM_HOLD, \
  832. .u32UdfPolarity = TMR6_PWM_HOLD, \
  833. .u32OvfPolarity = TMR6_PWM_HIGH, \
  834. }, \
  835. { \
  836. .u32CompareValue = 0x0000, \
  837. .u32StartPolarity = TMR6_PWM_HIGH, \
  838. .u32StopPolarity = TMR6_PWM_HIGH, \
  839. .u32CountUpMatchAPolarity = TMR6_PWM_HOLD, \
  840. .u32CountDownMatchAPolarity = TMR6_PWM_HOLD, \
  841. .u32CountUpMatchBPolarity = TMR6_PWM_LOW, \
  842. .u32CountDownMatchBPolarity = TMR6_PWM_HOLD, \
  843. .u32UdfPolarity = TMR6_PWM_HOLD, \
  844. .u32OvfPolarity = TMR6_PWM_HIGH, \
  845. } \
  846. }, \
  847. }
  848. #endif /* PWM_TMR6_8_CONFIG */
  849. #endif /* BSP_USING_PWM_TMR6_8 */
  850. #endif /* BSP_USING_PWM_TMR6 */
  851. #ifdef __cplusplus
  852. }
  853. #endif
  854. #endif /* __PWM_TMRA_CONFIG_H__ */