csl_tmr.h 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637
  1. /**
  2. * @file csl_tmr.h
  3. *
  4. * @brief
  5. * This is the main header file for the TIMER Module which defines
  6. * all the data structures and exported API.
  7. *
  8. * \par
  9. * ============================================================================
  10. * @n (C) Copyright 2002-2011, Texas Instruments, Inc.
  11. *
  12. * Redistribution and use in source and binary forms, with or without
  13. * modification, are permitted provided that the following conditions
  14. * are met:
  15. *
  16. * Redistributions of source code must retain the above copyright
  17. * notice, this list of conditions and the following disclaimer.
  18. *
  19. * Redistributions in binary form must reproduce the above copyright
  20. * notice, this list of conditions and the following disclaimer in the
  21. * documentation and/or other materials provided with the
  22. * distribution.
  23. *
  24. * Neither the name of Texas Instruments Incorporated nor the names of
  25. * its contributors may be used to endorse or promote products derived
  26. * from this software without specific prior written permission.
  27. *
  28. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  29. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  30. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  31. * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  32. * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  33. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  34. * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  35. * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  36. * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  37. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  38. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  39. *
  40. */
  41. /** @defgroup CSL_TIMER_API TIMER
  42. *
  43. * @section Introduction
  44. *
  45. * @subsection xxx Overview
  46. * The timer can be configured as a general-purpose 64-bit timer, dual general-purpose 32-bit
  47. * timers, or a watchdog timer. When configured as a dual 32-bit timers, each half can operate in
  48. * conjunction (chain mode) or independently (unchained mode) of each other. The timer can be
  49. * configured in one of three modes using the timer mode (TIMMODE) bits in the timer global control
  50. * register (TGCR): a 64-bit general-purpose (GP) timer, dual 32-bit timers (Timer Low and Timer
  51. * High), or a watchdog timer. When configured as dual 32-bit timers, each half can operate
  52. * dependently (chain mode) or independently (unchained mode) of each other. At reset, the timer is
  53. * configured as a 64-bit GP timer. The watchdog timer function can be enabled if desired, via the
  54. * TIMMODE bits in timer global control register (TGCR) and WDEN bit in the watchdog timer
  55. * control register WDTCR). Once the timer is configured as a watchdog timer, it cannot be reconfigured
  56. * as a regular timer until a device reset occurs. The timer has one input pin (TINPL) and
  57. * one output pin (TOUTL). The timer control register (TCR) controls the function of the input and
  58. * output pin.
  59. * The timers can be used to: time events, count events, generate pulses, interrupt the CPU, and
  60. * send synchronization events to the EDMA.
  61. *
  62. * @subsection References
  63. * -# Timer User's Guide SPRU818.pdf (December 2005)
  64. */
  65. #ifndef CSL_TMR_H
  66. #define CSL_TMR_H
  67. #ifdef __cplusplus
  68. extern "C" {
  69. #endif
  70. #include <ti/csl/soc.h>
  71. #include <ti/csl/csl.h>
  72. #include <ti/csl/cslr_tmr.h>
  73. /**
  74. @defgroup CSL_TIMER_SYMBOL TIMER Symbols Defined
  75. @ingroup CSL_TIMER_API
  76. */
  77. /**
  78. @defgroup CSL_TIMER_DATASTRUCT TIMER Data Structures
  79. @ingroup CSL_TIMER_API
  80. */
  81. /**
  82. @defgroup CSL_TIMER_FUNCTION TIMER Functions
  83. @ingroup CSL_TIMER_API
  84. */
  85. /**
  86. @defgroup CSL_TIMER_ENUM TIMER Enumerated Data Types
  87. @ingroup CSL_TIMER_API
  88. */
  89. /**
  90. @addtogroup CSL_TIMER_ENUM
  91. @{
  92. */
  93. /**
  94. * General purpose global type def declarations
  95. */
  96. /**
  97. * @brief This enum describes the commands used to control the GP timer through
  98. * CSL_tmrHwControl()
  99. */
  100. typedef enum {
  101. /**
  102. * @brief Loads the GP Timer Period Register Low
  103. * @param Uint32 *
  104. */
  105. CSL_TMR_CMD_LOAD_PRDLO = 0,
  106. /**
  107. * @brief Loads the GP Timer Period Register High
  108. * @param Uint32 *
  109. */
  110. CSL_TMR_CMD_LOAD_PRDHI = 1,
  111. /**
  112. * @brief Loads the GP Timer Pre-scalar value for CNTHI
  113. * @param Uint8 *
  114. */
  115. CSL_TMR_CMD_LOAD_PSCHI = 2,
  116. /**
  117. * @brief Enable the GP timer Low
  118. * @param CSL_TmrEnamode
  119. */
  120. CSL_TMR_CMD_START_TIMLO = 3,
  121. /**
  122. * @brief Enable the GP timer High
  123. * @param CSL_TmrEnamode
  124. */
  125. CSL_TMR_CMD_START_TIMHI = 4,
  126. /**
  127. * @brief Stop the GP timer Low
  128. * @param None
  129. */
  130. CSL_TMR_CMD_STOP_TIMLO = 5,
  131. /**
  132. * @brief Stop the GP timer High
  133. * @param None
  134. */
  135. CSL_TMR_CMD_STOP_TIMHI = 6,
  136. /**
  137. * @brief Reset the GP timer Low
  138. * @param None
  139. */
  140. CSL_TMR_CMD_RESET_TIMLO = 7,
  141. /**
  142. * @brief Reset the GP timer High
  143. * @param None
  144. */
  145. CSL_TMR_CMD_RESET_TIMHI = 8,
  146. /**
  147. * @brief Start the timer in GPtimer64 OR Chained mode
  148. * @param None
  149. */
  150. CSL_TMR_CMD_START64 = 9,
  151. /**
  152. * @brief Stop the timer of GPtimer64 OR Chained
  153. * @param CSL_TmrEnamode
  154. */
  155. CSL_TMR_CMD_STOP64 = 10,
  156. /**
  157. * @brief Reset the timer of GPtimer64 OR Chained
  158. * @param None
  159. */
  160. CSL_TMR_CMD_RESET64 = 11,
  161. /**
  162. * @brief Enable the timer in watchdog mode
  163. * @param CSL_TmrEnamode
  164. */
  165. CSL_TMR_CMD_START_WDT = 12,
  166. /**
  167. * @brief Loads the watchdog key
  168. * @param Uint16
  169. */
  170. CSL_TMR_CMD_LOAD_WDKEY = 13,
  171. /**
  172. * @brief Loads the GP Timer Reload Register Low
  173. * @param Uint32 *
  174. */
  175. CSL_TMR_CMD_LOAD_RELLO = 14,
  176. /**
  177. * @brief Loads the GP Timer Reload Register High
  178. * @param Uint32 *
  179. */
  180. CSL_TMR_CMD_LOAD_RELHI = 15
  181. } CSL_TmrHwControlCmd;
  182. /**
  183. * @brief This enum describes the commands used to get status of various parameters of the
  184. * GP timer. These values are used in CSL_tmrGetHwStatus()
  185. */
  186. typedef enum {
  187. /**
  188. * @brief Gets the current value of the GP timer CNTLO register
  189. * @param Uint32 *
  190. */
  191. CSL_TMR_QUERY_COUNT_LO = 0,
  192. /**
  193. * @brief Gets the current value of the GP timer CNTHI register
  194. * @param Uint32 *
  195. */
  196. CSL_TMR_QUERY_COUNT_HI = 1,
  197. /**
  198. * @brief This query command returns the status
  199. * about whether the CNTLO is running or stopped
  200. *
  201. * @param CSL_TmrTstat
  202. */
  203. CSL_TMR_QUERY_TSTAT_LO = 2,
  204. /**
  205. * @brief This query command returns the status
  206. * about whether the CNTHI is running or stopped
  207. *
  208. * @param CSL_TmrTstat
  209. */
  210. CSL_TMR_QUERY_TSTAT_HI = 3,
  211. /**
  212. * @brief This query command returns the status about whether the timer
  213. * is in watchdog mode or not
  214. * @param CSL_WdflagBitStatus
  215. */
  216. CSL_TMR_QUERY_WDFLAG_STATUS = 4
  217. } CSL_TmrHwStatusQuery;
  218. /**
  219. * @brief This enum describes whether the Timer Clock input is gated or not gated.
  220. */
  221. typedef enum {
  222. /** timer input not gated */
  223. CSL_TMR_CLOCK_INP_NOGATE = 0,
  224. /** timer input gated */
  225. CSL_TMR_CLOCK_INP_GATE = 1
  226. } CSL_TmrIpGate;
  227. /**
  228. * @brief This enum describes the Timer Clock source selection.
  229. */
  230. typedef enum {
  231. /** timer clock INTERNAL source selection */
  232. CSL_TMR_CLKSRC_INTERNAL = 0,
  233. /** timer clock Timer input pin source selection */
  234. CSL_TMR_CLKSRC_TMRINP = 1
  235. } CSL_TmrClksrc;
  236. /**
  237. * @brief This enum describes the enabling/disabling of Timer.
  238. */
  239. typedef enum {
  240. /** The timer is disabled and maintains current value */
  241. CSL_TMR_ENAMODE_DISABLE = 0,
  242. /** The timer is enabled one time */
  243. CSL_TMR_ENAMODE_ENABLE = 1,
  244. /** The timer is enabled continuously */
  245. CSL_TMR_ENAMODE_CONT = 2,
  246. /** The timer is enabled continuously with reload */
  247. CSL_TMR_ENAMODE_CONT_RELOAD = 3
  248. } CSL_TmrEnamode;
  249. /**
  250. * @brief This enum describes the Timer Clock cycles (1/2/3/4).
  251. */
  252. typedef enum {
  253. /** One timer clock cycle */
  254. CSL_TMR_PWID_ONECLK = 0,
  255. /** Two timer clock cycle */
  256. CSL_TMR_PWID_TWOCLKS = 1,
  257. /** Three timer clock cycle */
  258. CSL_TMR_PWID_THREECLKS = 2,
  259. /** Four timer clock cycle */
  260. CSL_TMR_PWID_FOURCLKS = 3
  261. } CSL_TmrPulseWidth;
  262. /**
  263. * @brief This enum describes the mode of Timer Clock (Pulse/Clock).
  264. */
  265. typedef enum {
  266. /** Pulse mode */
  267. CSL_TMR_CP_PULSE = 0,
  268. /** Clock mode */
  269. CSL_TMR_CP_CLOCK = 1
  270. } CSL_TmrClockPulse;
  271. /**
  272. * @brief This enum describes the Timer input inverter control
  273. */
  274. typedef enum {
  275. /** Un inverted timer input drives timer */
  276. CSL_TMR_INVINP_UNINVERTED = 0,
  277. /** Inverted timer input drives timer */
  278. CSL_TMR_INVINP_INVERTED = 1
  279. } CSL_TmrInvInp;
  280. /**
  281. * @brief This enum describes the Timer output inverter control
  282. */
  283. typedef enum {
  284. /** Un inverted timer output */
  285. CSL_TMR_INVOUTP_UNINVERTED = 0,
  286. /** Inverted timer output */
  287. CSL_TMR_INVOUTP_INVERTED = 1
  288. } CSL_TmrInvOutp;
  289. /**
  290. * @brief This enum describes the mode of Timer (GPT/WDT/Chained/Unchained).
  291. */
  292. typedef enum {
  293. /** The timer is in 64-bit GP timer mode */
  294. CSL_TMR_TIMMODE_GPT = 0,
  295. /** The timer is in dual 32-bit timer, unchained mode */
  296. CSL_TMR_TIMMODE_DUAL_UNCHAINED = 1,
  297. /** The timer is in 64-bit Watchdog timer mode */
  298. CSL_TMR_TIMMODE_WDT = 2,
  299. /** The timer is in dual 32-bit timer, chained mode */
  300. CSL_TMR_TIMMODE_DUAL_CHAINED = 3
  301. } CSL_TmrMode;
  302. /**
  303. * @brief This enum describes the reset condition of Timer (ON/OFF).
  304. */
  305. typedef enum {
  306. /** timer TIMxx is in reset */
  307. CSL_TMR_TIMxxRS_RESET_ON = 0,
  308. /** timer CNTHI is not in reset. CNTHI can be used as a 32-bit timer */
  309. CSL_TMR_TIMxxRS_RESET_OFF = 1
  310. } CSL_TmrState;
  311. /** @brief This enum describes the status of Timer.
  312. */
  313. typedef enum {
  314. /** Timer status drives High */
  315. CSL_TMR_TSTAT_HIGH = 1,
  316. /** Timer status drives Low */
  317. CSL_TMR_TSTAT_LOW = 0
  318. } CSL_TmrTstat;
  319. /** @brief This enumeration describes the flag bit status of the timer in watchdog mode
  320. */
  321. typedef enum {
  322. /** No watchdog timeout occurred */
  323. CSL_TMR_WDFLAG_NOTIMEOUT = 0,
  324. /** Watchdog timeout occurred */
  325. CSL_TMR_WDFLAG_TIMEOUT = 1
  326. } CSL_TmrWdflagBitStatus;
  327. /**
  328. @}
  329. */
  330. /** @addtogroup CSL_TIMER_DATASTRUCT
  331. @{ */
  332. /**
  333. * @brief Hardware setup structure.
  334. */
  335. typedef struct {
  336. /** 32 bit load value to be loaded to Timer Period Register low */
  337. Uint32 tmrTimerPeriodLo;
  338. /** 32 bit load value to be loaded to Timer Period Register High */
  339. Uint32 tmrTimerPeriodHi;
  340. /** 32 bit load value to be loaded to Timer Counter Register Low */
  341. Uint32 tmrTimerCounterLo;
  342. /** 32 bit load value to be loaded to Timer Counter Register High */
  343. Uint32 tmrTimerCounterHi;
  344. /** TIEN determines if the timer clock is gated by the timer input.
  345. * Applicable only when CLKSRC=0
  346. */
  347. CSL_TmrIpGate tmrIpGateHi;
  348. /** CLKSRC determines the selected clock source for the timer */
  349. CSL_TmrClksrc tmrClksrcHi;
  350. /** Pulse width. used in pulse mode (C/P_=0) by the timer */
  351. CSL_TmrPulseWidth tmrPulseWidthHi;
  352. /** Clock/Pulse mode for timerHigh output */
  353. CSL_TmrClockPulse tmrClockPulseHi;
  354. /** Timer input inverter control. Only affects operation
  355. * if CLKSRC=1, Timer Input pin
  356. */
  357. CSL_TmrInvInp tmrInvInpHi;
  358. /** Timer output inverter control */
  359. CSL_TmrInvOutp tmrInvOutpHi;
  360. /** TIEN determines if the timer clock is gated by the timer input.
  361. * Applicable only when CLKSRC=0
  362. */
  363. CSL_TmrIpGate tmrIpGateLo;
  364. /** CLKSRC determines the selected clock source for the timer */
  365. CSL_TmrClksrc tmrClksrcLo;
  366. /** Pulse width. used in pulse mode (C/P_=0) by the timer */
  367. CSL_TmrPulseWidth tmrPulseWidthLo;
  368. /** Clock/Pulse mode for timerLow output */
  369. CSL_TmrClockPulse tmrClockPulseLo;
  370. /** Timer input inverter control. Only affects operation
  371. * if CLKSRC=1, Timer Input pin
  372. */
  373. CSL_TmrInvInp tmrInvInpLo;
  374. /** Timer output inverter control */
  375. CSL_TmrInvOutp tmrInvOutpLo;
  376. /** CNTHI pre-scalar counter specifies the count for CNTHI */
  377. Uint8 tmrPreScalarCounterHi;
  378. /** Configures the GP timer in GP mode or in
  379. * general purpose timer mode or Dual 32 bit timer mode
  380. */
  381. CSL_TmrMode tmrTimerMode;
  382. } CSL_TmrHwSetup;
  383. /**
  384. * @brief Config-structure Used to configure the GP timer using CSL_tmrHwSetupRaw()
  385. */
  386. typedef struct {
  387. /** Timer Counter Register Low */
  388. Uint32 CNTLO;
  389. /** Timer Counter Register High */
  390. Uint32 CNTHI;
  391. /** Timer Period Register Low */
  392. Uint32 PRDLO;
  393. /** Timer Period Register High */
  394. Uint32 PRDHI;
  395. /** Timer Control Register */
  396. Uint32 TCR;
  397. /** Timer Global Control Register */
  398. Uint32 TGCR;
  399. /** Watchdog Timer Control Register */
  400. Uint32 WDTCR;
  401. } CSL_TmrConfig;
  402. /**
  403. * @brief Module specific context information. Present implementation of GP
  404. * timer CSL doesn't have any context information.
  405. */
  406. typedef struct {
  407. /** Context information of GP timer CSL.
  408. * The below declaration is just a place-holder for future implementation.
  409. */
  410. Uint16 contextInfo;
  411. } CSL_TmrContext;
  412. /** @brief Module specific parameters. Present implementation of GP timer CSL
  413. * doesn't have any module specific parameters.
  414. */
  415. typedef struct {
  416. /** Bit mask to be used for module specific parameters. The below
  417. * declaration is just a place-holder for future implementation.
  418. */
  419. CSL_BitMask16 flags;
  420. } CSL_TmrParam;
  421. /** @brief This structure contains the base-address information for the
  422. * peripheral instance
  423. */
  424. typedef struct {
  425. /** Base-address of the configuration registers of the peripheral
  426. */
  427. CSL_TmrRegsOvly regs;
  428. } CSL_TmrBaseAddress;
  429. /**
  430. * @brief Watchdog timer object structure.
  431. */
  432. typedef struct {
  433. /** Pointer to the register overlay structure of the GP timer */
  434. CSL_TmrRegsOvly regs;
  435. /** Instance of GP timer being referred by this object */
  436. CSL_InstNum tmrNum;
  437. } CSL_TmrObj;
  438. /**
  439. * @brief This data type is used to return the handle to the CSL of the GP timer
  440. */
  441. typedef CSL_TmrObj *CSL_TmrHandle;
  442. /**
  443. @}
  444. */
  445. /**
  446. @addtogroup CSL_TIMER_SYMBOL
  447. @{
  448. */
  449. /** @brief Default hardware setup parameters */
  450. #define CSL_TMR_HWSETUP_DEFAULTS { \
  451. CSL_TMR_PRDLO_RESETVAL, \
  452. CSL_TMR_PRDHI_RESETVAL, \
  453. CSL_TMR_CNTLO_RESETVAL, \
  454. CSL_TMR_CNTHI_RESETVAL, \
  455. (CSL_TmrIpGate)CSL_TMR_TCR_TIEN_HI_RESETVAL, \
  456. (CSL_TmrClksrc)CSL_TMR_TCR_CLKSRC_HI_RESETVAL, \
  457. (CSL_TmrPulseWidth)CSL_TMR_TCR_PWID_HI_RESETVAL, \
  458. (CSL_TmrClockPulse)CSL_TMR_TCR_CP_HI_RESETVAL, \
  459. (CSL_TmrInvInp)CSL_TMR_TCR_INVINP_HI_RESETVAL, \
  460. (CSL_TmrInvOutp)CSL_TMR_TCR_INVOUTP_HI_RESETVAL, \
  461. (CSL_TmrIpGate)CSL_TMR_TCR_TIEN_LO_RESETVAL, \
  462. (CSL_TmrClksrc)CSL_TMR_TCR_CLKSRC_LO_RESETVAL, \
  463. (CSL_TmrPulseWidth)CSL_TMR_TCR_PWID_LO_RESETVAL, \
  464. (CSL_TmrClockPulse)CSL_TMR_TCR_CP_LO_RESETVAL, \
  465. (CSL_TmrInvInp)CSL_TMR_TCR_INVINP_LO_RESETVAL, \
  466. (CSL_TmrInvOutp)CSL_TMR_TCR_INVOUTP_LO_RESETVAL, \
  467. CSL_TMR_TGCR_PSCHI_RESETVAL, \
  468. (CSL_TmrMode)CSL_TMR_TGCR_TIMMODE_RESETVAL \
  469. }
  470. /** @brief Default values for config structure */
  471. #define CSL_TMR_CONFIG_DEFAULTS { \
  472. CSL_TMR_CNTLO_RESETVAL, \
  473. CSL_TMR_CNTHI_RESETVAL, \
  474. CSL_TMR_PRDLO_RESETVAL, \
  475. CSL_TMR_PRDHI_RESETVAL, \
  476. CSL_TMR_TCR_RESETVAL, \
  477. CSL_TMR_TGCR_RESETVAL, \
  478. CSL_TMR_WDTCR_RESETVAL \
  479. }
  480. /**
  481. @}
  482. */
  483. /** @addtogroup CSL_TIMER_FUNCTION
  484. @{ */
  485. /*******************************************************************************
  486. * Timer global function declarations
  487. ******************************************************************************/
  488. extern CSL_Status CSL_tmrInit (
  489. CSL_TmrContext *pContext
  490. );
  491. extern CSL_TmrHandle CSL_tmrOpen (
  492. CSL_TmrObj *pTmrObj,
  493. CSL_InstNum tmrNum,
  494. CSL_TmrParam *pTmrParam,
  495. CSL_Status *pStatus
  496. );
  497. extern CSL_Status CSL_tmrGetBaseAddress (
  498. CSL_InstNum tmrNum,
  499. CSL_TmrParam *pTmrParam,
  500. CSL_TmrBaseAddress *pBaseAddress
  501. );
  502. extern CSL_Status CSL_tmrClose (
  503. CSL_TmrHandle hTmr
  504. );
  505. extern CSL_Status CSL_tmrHwSetup (
  506. CSL_TmrHandle hTmr,
  507. const CSL_TmrHwSetup *hwSetup
  508. );
  509. extern CSL_Status CSL_tmrHwControl(
  510. CSL_TmrHandle hTmr,
  511. CSL_TmrHwControlCmd cmd,
  512. const void* arg
  513. );
  514. extern CSL_Status CSL_tmrGetHwStatus (
  515. CSL_TmrHandle hTmr,
  516. CSL_TmrHwStatusQuery query,
  517. void *response
  518. );
  519. extern CSL_Status CSL_tmrHwSetupRaw (
  520. CSL_TmrHandle hTmr,
  521. const CSL_TmrConfig *config
  522. );
  523. extern CSL_Status CSL_tmrGetHwSetup (
  524. CSL_TmrHandle hTmr,
  525. CSL_TmrHwSetup *hwSetup
  526. );
  527. /**
  528. @}
  529. */
  530. #ifdef __cplusplus
  531. }
  532. #endif
  533. #endif /* CSL_TMR_H */