fsl_pint.h 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568
  1. /*
  2. * Copyright (c) 2016, Freescale Semiconductor, Inc.
  3. * Copyright 2016-2017 NXP
  4. *
  5. * Redistribution and use in source and binary forms, with or without modification,
  6. * are permitted provided that the following conditions are met:
  7. *
  8. * o Redistributions of source code must retain the above copyright notice, this list
  9. * of conditions and the following disclaimer.
  10. *
  11. * o Redistributions in binary form must reproduce the above copyright notice, this
  12. * list of conditions and the following disclaimer in the documentation and/or
  13. * other materials provided with the distribution.
  14. *
  15. * o Neither the name of the copyright holder nor the names of its
  16. * contributors may be used to endorse or promote products derived from this
  17. * software without specific prior written permission.
  18. *
  19. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  20. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  21. * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  22. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
  23. * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  24. * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  25. * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
  26. * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  27. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  28. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  29. */
  30. #ifndef _FSL_PINT_H_
  31. #define _FSL_PINT_H_
  32. #include "fsl_common.h"
  33. /*!
  34. * @addtogroup pint_driver
  35. * @{
  36. */
  37. /*! @file */
  38. /*******************************************************************************
  39. * Definitions
  40. ******************************************************************************/
  41. /*! @name Driver version */
  42. /*@{*/
  43. #define FSL_PINT_DRIVER_VERSION (MAKE_VERSION(2, 0, 0)) /*!< Version 2.0.0 */
  44. /*@}*/
  45. /* Number of interrupt line supported by PINT */
  46. #define PINT_PIN_INT_COUNT 8U
  47. /* Number of input sources supported by PINT */
  48. #define PINT_INPUT_COUNT 8U
  49. /* PININT Bit slice source register bits */
  50. #define PININT_BITSLICE_SRC_START 8U
  51. #define PININT_BITSLICE_SRC_MASK 7U
  52. /* PININT Bit slice configuration register bits */
  53. #define PININT_BITSLICE_CFG_START 8U
  54. #define PININT_BITSLICE_CFG_MASK 7U
  55. #define PININT_BITSLICE_ENDP_MASK 7U
  56. #define PINT_PIN_INT_LEVEL 0x10U
  57. #define PINT_PIN_INT_EDGE 0x00U
  58. #define PINT_PIN_INT_FALL_OR_HIGH_LEVEL 0x02U
  59. #define PINT_PIN_INT_RISE 0x01U
  60. #define PINT_PIN_RISE_EDGE (PINT_PIN_INT_EDGE | PINT_PIN_INT_RISE)
  61. #define PINT_PIN_FALL_EDGE (PINT_PIN_INT_EDGE | PINT_PIN_INT_FALL_OR_HIGH_LEVEL)
  62. #define PINT_PIN_BOTH_EDGE (PINT_PIN_INT_EDGE | PINT_PIN_INT_RISE | PINT_PIN_INT_FALL_OR_HIGH_LEVEL)
  63. #define PINT_PIN_LOW_LEVEL (PINT_PIN_INT_LEVEL)
  64. #define PINT_PIN_HIGH_LEVEL (PINT_PIN_INT_LEVEL | PINT_PIN_INT_FALL_OR_HIGH_LEVEL)
  65. /*! @brief PINT Pin Interrupt enable type */
  66. typedef enum _pint_pin_enable
  67. {
  68. kPINT_PinIntEnableNone = 0U, /*!< Do not generate Pin Interrupt */
  69. kPINT_PinIntEnableRiseEdge = PINT_PIN_RISE_EDGE, /*!< Generate Pin Interrupt on rising edge */
  70. kPINT_PinIntEnableFallEdge = PINT_PIN_FALL_EDGE, /*!< Generate Pin Interrupt on falling edge */
  71. kPINT_PinIntEnableBothEdges = PINT_PIN_BOTH_EDGE, /*!< Generate Pin Interrupt on both edges */
  72. kPINT_PinIntEnableLowLevel = PINT_PIN_LOW_LEVEL, /*!< Generate Pin Interrupt on low level */
  73. kPINT_PinIntEnableHighLevel = PINT_PIN_HIGH_LEVEL /*!< Generate Pin Interrupt on high level */
  74. } pint_pin_enable_t;
  75. /*! @brief PINT Pin Interrupt type */
  76. typedef enum _pint_int
  77. {
  78. kPINT_PinInt0 = 0U, /*!< Pin Interrupt 0 */
  79. #if (FSL_FEATURE_PINT_NUMBER_OF_CONNECTED_OUTPUTS > 1U)
  80. kPINT_PinInt1 = 1U, /*!< Pin Interrupt 1 */
  81. #endif
  82. #if (FSL_FEATURE_PINT_NUMBER_OF_CONNECTED_OUTPUTS > 2U)
  83. kPINT_PinInt2 = 2U, /*!< Pin Interrupt 2 */
  84. #endif
  85. #if (FSL_FEATURE_PINT_NUMBER_OF_CONNECTED_OUTPUTS > 3U)
  86. kPINT_PinInt3 = 3U, /*!< Pin Interrupt 3 */
  87. #endif
  88. #if (FSL_FEATURE_PINT_NUMBER_OF_CONNECTED_OUTPUTS > 4U)
  89. kPINT_PinInt4 = 4U, /*!< Pin Interrupt 4 */
  90. #endif
  91. #if (FSL_FEATURE_PINT_NUMBER_OF_CONNECTED_OUTPUTS > 5U)
  92. kPINT_PinInt5 = 5U, /*!< Pin Interrupt 5 */
  93. #endif
  94. #if (FSL_FEATURE_PINT_NUMBER_OF_CONNECTED_OUTPUTS > 6U)
  95. kPINT_PinInt6 = 6U, /*!< Pin Interrupt 6 */
  96. #endif
  97. #if (FSL_FEATURE_PINT_NUMBER_OF_CONNECTED_OUTPUTS > 7U)
  98. kPINT_PinInt7 = 7U, /*!< Pin Interrupt 7 */
  99. #endif
  100. } pint_pin_int_t;
  101. /*! @brief PINT Pattern Match bit slice input source type */
  102. typedef enum _pint_pmatch_input_src
  103. {
  104. kPINT_PatternMatchInp0Src = 0U, /*!< Input source 0 */
  105. kPINT_PatternMatchInp1Src = 1U, /*!< Input source 1 */
  106. kPINT_PatternMatchInp2Src = 2U, /*!< Input source 2 */
  107. kPINT_PatternMatchInp3Src = 3U, /*!< Input source 3 */
  108. kPINT_PatternMatchInp4Src = 4U, /*!< Input source 4 */
  109. kPINT_PatternMatchInp5Src = 5U, /*!< Input source 5 */
  110. kPINT_PatternMatchInp6Src = 6U, /*!< Input source 6 */
  111. kPINT_PatternMatchInp7Src = 7U, /*!< Input source 7 */
  112. } pint_pmatch_input_src_t;
  113. /*! @brief PINT Pattern Match bit slice type */
  114. typedef enum _pint_pmatch_bslice
  115. {
  116. kPINT_PatternMatchBSlice0 = 0U, /*!< Bit slice 0 */
  117. #if (FSL_FEATURE_PINT_NUMBER_OF_CONNECTED_OUTPUTS > 1U)
  118. kPINT_PatternMatchBSlice1 = 1U, /*!< Bit slice 1 */
  119. #endif
  120. #if (FSL_FEATURE_PINT_NUMBER_OF_CONNECTED_OUTPUTS > 2U)
  121. kPINT_PatternMatchBSlice2 = 2U, /*!< Bit slice 2 */
  122. #endif
  123. #if (FSL_FEATURE_PINT_NUMBER_OF_CONNECTED_OUTPUTS > 3U)
  124. kPINT_PatternMatchBSlice3 = 3U, /*!< Bit slice 3 */
  125. #endif
  126. #if (FSL_FEATURE_PINT_NUMBER_OF_CONNECTED_OUTPUTS > 4U)
  127. kPINT_PatternMatchBSlice4 = 4U, /*!< Bit slice 4 */
  128. #endif
  129. #if (FSL_FEATURE_PINT_NUMBER_OF_CONNECTED_OUTPUTS > 5U)
  130. kPINT_PatternMatchBSlice5 = 5U, /*!< Bit slice 5 */
  131. #endif
  132. #if (FSL_FEATURE_PINT_NUMBER_OF_CONNECTED_OUTPUTS > 6U)
  133. kPINT_PatternMatchBSlice6 = 6U, /*!< Bit slice 6 */
  134. #endif
  135. #if (FSL_FEATURE_PINT_NUMBER_OF_CONNECTED_OUTPUTS > 7U)
  136. kPINT_PatternMatchBSlice7 = 7U, /*!< Bit slice 7 */
  137. #endif
  138. } pint_pmatch_bslice_t;
  139. /*! @brief PINT Pattern Match configuration type */
  140. typedef enum _pint_pmatch_bslice_cfg
  141. {
  142. kPINT_PatternMatchAlways = 0U, /*!< Always Contributes to product term match */
  143. kPINT_PatternMatchStickyRise = 1U, /*!< Sticky Rising edge */
  144. kPINT_PatternMatchStickyFall = 2U, /*!< Sticky Falling edge */
  145. kPINT_PatternMatchStickyBothEdges = 3U, /*!< Sticky Rising or Falling edge */
  146. kPINT_PatternMatchHigh = 4U, /*!< High level */
  147. kPINT_PatternMatchLow = 5U, /*!< Low level */
  148. kPINT_PatternMatchNever = 6U, /*!< Never contributes to product term match */
  149. kPINT_PatternMatchBothEdges = 7U, /*!< Either rising or falling edge */
  150. } pint_pmatch_bslice_cfg_t;
  151. /*! @brief PINT Callback function. */
  152. typedef void (*pint_cb_t)(pint_pin_int_t pintr, uint32_t pmatch_status);
  153. typedef struct _pint_pmatch_cfg
  154. {
  155. pint_pmatch_input_src_t bs_src;
  156. pint_pmatch_bslice_cfg_t bs_cfg;
  157. bool end_point;
  158. pint_cb_t callback;
  159. } pint_pmatch_cfg_t;
  160. /*******************************************************************************
  161. * API
  162. ******************************************************************************/
  163. #if defined(__cplusplus)
  164. extern "C" {
  165. #endif
  166. /*!
  167. * @brief Initialize PINT peripheral.
  168. * This function initializes the PINT peripheral and enables the clock.
  169. *
  170. * @param base Base address of the PINT peripheral.
  171. *
  172. * @retval None.
  173. */
  174. void PINT_Init(PINT_Type *base);
  175. /*!
  176. * @brief Configure PINT peripheral pin interrupt.
  177. * This function configures a given pin interrupt.
  178. *
  179. * @param base Base address of the PINT peripheral.
  180. * @param intr Pin interrupt.
  181. * @param enable Selects detection logic.
  182. * @param callback Callback.
  183. *
  184. * @retval None.
  185. */
  186. void PINT_PinInterruptConfig(PINT_Type *base, pint_pin_int_t intr, pint_pin_enable_t enable, pint_cb_t callback);
  187. /*!
  188. * @brief Get PINT peripheral pin interrupt configuration.
  189. * This function returns the configuration of a given pin interrupt.
  190. *
  191. * @param base Base address of the PINT peripheral.
  192. * @param pintr Pin interrupt.
  193. * @param enable Pointer to store the detection logic.
  194. * @param callback Callback.
  195. *
  196. * @retval None.
  197. */
  198. void PINT_PinInterruptGetConfig(PINT_Type *base, pint_pin_int_t pintr, pint_pin_enable_t *enable, pint_cb_t *callback);
  199. /*!
  200. * @brief Clear Selected pin interrupt status.
  201. * This function clears the selected pin interrupt status.
  202. *
  203. * @param base Base address of the PINT peripheral.
  204. * @param pintr Pin interrupt.
  205. *
  206. * @retval None.
  207. */
  208. static inline void PINT_PinInterruptClrStatus(PINT_Type *base, pint_pin_int_t pintr)
  209. {
  210. base->IST = (1U << pintr);
  211. }
  212. /*!
  213. * @brief Get Selected pin interrupt status.
  214. * This function returns the selected pin interrupt status.
  215. *
  216. * @param base Base address of the PINT peripheral.
  217. * @param pintr Pin interrupt.
  218. *
  219. * @retval status = 0 No pin interrupt request. = 1 Selected Pin interrupt request active.
  220. */
  221. static inline uint32_t PINT_PinInterruptGetStatus(PINT_Type *base, pint_pin_int_t pintr)
  222. {
  223. return ((base->IST & (1U << pintr)) ? 1U : 0U);
  224. }
  225. /*!
  226. * @brief Clear all pin interrupts status.
  227. * This function clears the status of all pin interrupts.
  228. *
  229. * @param base Base address of the PINT peripheral.
  230. *
  231. * @retval None.
  232. */
  233. static inline void PINT_PinInterruptClrStatusAll(PINT_Type *base)
  234. {
  235. base->IST = PINT_IST_PSTAT_MASK;
  236. }
  237. /*!
  238. * @brief Get all pin interrupts status.
  239. * This function returns the status of all pin interrupts.
  240. *
  241. * @param base Base address of the PINT peripheral.
  242. *
  243. * @retval status Each bit position indicates the status of corresponding pin interrupt.
  244. * = 0 No pin interrupt request. = 1 Pin interrupt request active.
  245. */
  246. static inline uint32_t PINT_PinInterruptGetStatusAll(PINT_Type *base)
  247. {
  248. return (base->IST);
  249. }
  250. /*!
  251. * @brief Clear Selected pin interrupt fall flag.
  252. * This function clears the selected pin interrupt fall flag.
  253. *
  254. * @param base Base address of the PINT peripheral.
  255. * @param pintr Pin interrupt.
  256. *
  257. * @retval None.
  258. */
  259. static inline void PINT_PinInterruptClrFallFlag(PINT_Type *base, pint_pin_int_t pintr)
  260. {
  261. base->FALL = (1U << pintr);
  262. }
  263. /*!
  264. * @brief Get selected pin interrupt fall flag.
  265. * This function returns the selected pin interrupt fall flag.
  266. *
  267. * @param base Base address of the PINT peripheral.
  268. * @param pintr Pin interrupt.
  269. *
  270. * @retval flag = 0 Falling edge has not been detected. = 1 Falling edge has been detected.
  271. */
  272. static inline uint32_t PINT_PinInterruptGetFallFlag(PINT_Type *base, pint_pin_int_t pintr)
  273. {
  274. return ((base->FALL & (1U << pintr)) ? 1U : 0U);
  275. }
  276. /*!
  277. * @brief Clear all pin interrupt fall flags.
  278. * This function clears the fall flag for all pin interrupts.
  279. *
  280. * @param base Base address of the PINT peripheral.
  281. *
  282. * @retval None.
  283. */
  284. static inline void PINT_PinInterruptClrFallFlagAll(PINT_Type *base)
  285. {
  286. base->FALL = PINT_FALL_FDET_MASK;
  287. }
  288. /*!
  289. * @brief Get all pin interrupt fall flags.
  290. * This function returns the fall flag of all pin interrupts.
  291. *
  292. * @param base Base address of the PINT peripheral.
  293. *
  294. * @retval flags Each bit position indicates the falling edge detection of the corresponding pin interrupt.
  295. * 0 Falling edge has not been detected. = 1 Falling edge has been detected.
  296. */
  297. static inline uint32_t PINT_PinInterruptGetFallFlagAll(PINT_Type *base)
  298. {
  299. return (base->FALL);
  300. }
  301. /*!
  302. * @brief Clear Selected pin interrupt rise flag.
  303. * This function clears the selected pin interrupt rise flag.
  304. *
  305. * @param base Base address of the PINT peripheral.
  306. * @param pintr Pin interrupt.
  307. *
  308. * @retval None.
  309. */
  310. static inline void PINT_PinInterruptClrRiseFlag(PINT_Type *base, pint_pin_int_t pintr)
  311. {
  312. base->RISE = (1U << pintr);
  313. }
  314. /*!
  315. * @brief Get selected pin interrupt rise flag.
  316. * This function returns the selected pin interrupt rise flag.
  317. *
  318. * @param base Base address of the PINT peripheral.
  319. * @param pintr Pin interrupt.
  320. *
  321. * @retval flag = 0 Rising edge has not been detected. = 1 Rising edge has been detected.
  322. */
  323. static inline uint32_t PINT_PinInterruptGetRiseFlag(PINT_Type *base, pint_pin_int_t pintr)
  324. {
  325. return ((base->RISE & (1U << pintr)) ? 1U : 0U);
  326. }
  327. /*!
  328. * @brief Clear all pin interrupt rise flags.
  329. * This function clears the rise flag for all pin interrupts.
  330. *
  331. * @param base Base address of the PINT peripheral.
  332. *
  333. * @retval None.
  334. */
  335. static inline void PINT_PinInterruptClrRiseFlagAll(PINT_Type *base)
  336. {
  337. base->RISE = PINT_RISE_RDET_MASK;
  338. }
  339. /*!
  340. * @brief Get all pin interrupt rise flags.
  341. * This function returns the rise flag of all pin interrupts.
  342. *
  343. * @param base Base address of the PINT peripheral.
  344. *
  345. * @retval flags Each bit position indicates the rising edge detection of the corresponding pin interrupt.
  346. * 0 Rising edge has not been detected. = 1 Rising edge has been detected.
  347. */
  348. static inline uint32_t PINT_PinInterruptGetRiseFlagAll(PINT_Type *base)
  349. {
  350. return (base->RISE);
  351. }
  352. /*!
  353. * @brief Configure PINT pattern match.
  354. * This function configures a given pattern match bit slice.
  355. *
  356. * @param base Base address of the PINT peripheral.
  357. * @param bslice Pattern match bit slice number.
  358. * @param cfg Pointer to bit slice configuration.
  359. *
  360. * @retval None.
  361. */
  362. void PINT_PatternMatchConfig(PINT_Type *base, pint_pmatch_bslice_t bslice, pint_pmatch_cfg_t *cfg);
  363. /*!
  364. * @brief Get PINT pattern match configuration.
  365. * This function returns the configuration of a given pattern match bit slice.
  366. *
  367. * @param base Base address of the PINT peripheral.
  368. * @param bslice Pattern match bit slice number.
  369. * @param cfg Pointer to bit slice configuration.
  370. *
  371. * @retval None.
  372. */
  373. void PINT_PatternMatchGetConfig(PINT_Type *base, pint_pmatch_bslice_t bslice, pint_pmatch_cfg_t *cfg);
  374. /*!
  375. * @brief Get pattern match bit slice status.
  376. * This function returns the status of selected bit slice.
  377. *
  378. * @param base Base address of the PINT peripheral.
  379. * @param bslice Pattern match bit slice number.
  380. *
  381. * @retval status = 0 Match has not been detected. = 1 Match has been detected.
  382. */
  383. static inline uint32_t PINT_PatternMatchGetStatus(PINT_Type *base, pint_pmatch_bslice_t bslice)
  384. {
  385. return ((base->PMCTRL >> PINT_PMCTRL_PMAT_SHIFT) & (0x1U << bslice)) >> bslice;
  386. }
  387. /*!
  388. * @brief Get status of all pattern match bit slices.
  389. * This function returns the status of all bit slices.
  390. *
  391. * @param base Base address of the PINT peripheral.
  392. *
  393. * @retval status Each bit position indicates the match status of corresponding bit slice.
  394. * = 0 Match has not been detected. = 1 Match has been detected.
  395. */
  396. static inline uint32_t PINT_PatternMatchGetStatusAll(PINT_Type *base)
  397. {
  398. return base->PMCTRL >> PINT_PMCTRL_PMAT_SHIFT;
  399. }
  400. /*!
  401. * @brief Reset pattern match detection logic.
  402. * This function resets the pattern match detection logic if any of the product term is matching.
  403. *
  404. * @param base Base address of the PINT peripheral.
  405. *
  406. * @retval pmstatus Each bit position indicates the match status of corresponding bit slice.
  407. * = 0 Match was detected. = 1 Match was not detected.
  408. */
  409. uint32_t PINT_PatternMatchResetDetectLogic(PINT_Type *base);
  410. /*!
  411. * @brief Enable pattern match function.
  412. * This function enables the pattern match function.
  413. *
  414. * @param base Base address of the PINT peripheral.
  415. *
  416. * @retval None.
  417. */
  418. static inline void PINT_PatternMatchEnable(PINT_Type *base)
  419. {
  420. base->PMCTRL = (base->PMCTRL & PINT_PMCTRL_ENA_RXEV_MASK) | PINT_PMCTRL_SEL_PMATCH_MASK;
  421. }
  422. /*!
  423. * @brief Disable pattern match function.
  424. * This function disables the pattern match function.
  425. *
  426. * @param base Base address of the PINT peripheral.
  427. *
  428. * @retval None.
  429. */
  430. static inline void PINT_PatternMatchDisable(PINT_Type *base)
  431. {
  432. base->PMCTRL = (base->PMCTRL & PINT_PMCTRL_ENA_RXEV_MASK) & ~PINT_PMCTRL_SEL_PMATCH_MASK;
  433. }
  434. /*!
  435. * @brief Enable RXEV output.
  436. * This function enables the pattern match RXEV output.
  437. *
  438. * @param base Base address of the PINT peripheral.
  439. *
  440. * @retval None.
  441. */
  442. static inline void PINT_PatternMatchEnableRXEV(PINT_Type *base)
  443. {
  444. base->PMCTRL = (base->PMCTRL & PINT_PMCTRL_SEL_PMATCH_MASK) | PINT_PMCTRL_ENA_RXEV_MASK;
  445. }
  446. /*!
  447. * @brief Disable RXEV output.
  448. * This function disables the pattern match RXEV output.
  449. *
  450. * @param base Base address of the PINT peripheral.
  451. *
  452. * @retval None.
  453. */
  454. static inline void PINT_PatternMatchDisableRXEV(PINT_Type *base)
  455. {
  456. base->PMCTRL = (base->PMCTRL & PINT_PMCTRL_SEL_PMATCH_MASK) & ~PINT_PMCTRL_ENA_RXEV_MASK;
  457. }
  458. /*!
  459. * @brief Enable callback.
  460. * This function enables the interrupt for the selected PINT peripheral. Although the pin(s) are monitored
  461. * as soon as they are enabled, the callback function is not enabled until this function is called.
  462. *
  463. * @param base Base address of the PINT peripheral.
  464. *
  465. * @retval None.
  466. */
  467. void PINT_EnableCallback(PINT_Type *base);
  468. /*!
  469. * @brief Disable callback.
  470. * This function disables the interrupt for the selected PINT peripheral. Although the pins are still
  471. * being monitored but the callback function is not called.
  472. *
  473. * @param base Base address of the peripheral.
  474. *
  475. * @retval None.
  476. */
  477. void PINT_DisableCallback(PINT_Type *base);
  478. /*!
  479. * @brief Deinitialize PINT peripheral.
  480. * This function disables the PINT clock.
  481. *
  482. * @param base Base address of the PINT peripheral.
  483. *
  484. * @retval None.
  485. */
  486. void PINT_Deinit(PINT_Type *base);
  487. #ifdef __cplusplus
  488. }
  489. #endif
  490. /*@}*/
  491. #endif /* _FSL_PINT_H_ */