LCOV - code coverage report
Current view: top level - zephyr/drivers/interrupt_controller - nxp_pint.h Coverage Total Hit
Test: new.info Lines: 57.1 % 7 4
Test Date: 2025-09-05 22:20:39

            Line data    Source code
       1            0 : /*
       2              :  * Copyright 2023 NXP
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : /**
       8              :  * @brief Driver for Pin interrupt and pattern match engine in NXP MCUs
       9              :  *
      10              :  * The Pin interrupt and pattern match engine (PINT) supports
      11              :  * sourcing inputs from any pins on GPIO ports 0 and 1 of NXP MCUs
      12              :  * featuring the module, and generating interrupts based on these inputs.
      13              :  * Pin inputs can generate separate interrupts to the NVIC, or be combined
      14              :  * using the PINT's boolean logic based pattern match engine.
      15              :  * This driver currently only supports the pin interrupt feature of
      16              :  * the PINT.
      17              :  */
      18              : 
      19              : #ifndef ZEPHYR_DRIVERS_INTERRUPT_CONTROLLER_INTC_NXP_PINT_H_
      20              : #define ZEPHYR_DRIVERS_INTERRUPT_CONTROLLER_INTC_NXP_PINT_H_
      21              : 
      22              : #include <fsl_pint.h>
      23              : 
      24              : /**
      25              :  * @brief Pin interrupt sources
      26              :  *
      27              :  * Pin interrupt sources available for use.
      28              :  */
      29            0 : enum nxp_pint_trigger {
      30              :         /* Do not generate Pin Interrupt */
      31              :         NXP_PINT_NONE = kPINT_PinIntEnableNone,
      32              :         /* Generate Pin Interrupt on rising edge */
      33              :         NXP_PINT_RISING  = kPINT_PinIntEnableRiseEdge,
      34              :         /* Generate Pin Interrupt on falling edge */
      35              :         NXP_PINT_FALLING  = kPINT_PinIntEnableFallEdge,
      36              :         /* Generate Pin Interrupt on both edges */
      37              :         NXP_PINT_BOTH = kPINT_PinIntEnableBothEdges,
      38              :         /* Generate Pin Interrupt on low level */
      39              :         NXP_PINT_LOW  = kPINT_PinIntEnableLowLevel,
      40              :         /* Generate Pin Interrupt on high level */
      41              :         NXP_PINT_HIGH = kPINT_PinIntEnableHighLevel
      42              : };
      43              : 
      44              : /* Callback for NXP PINT interrupt */
      45            0 : typedef void (*nxp_pint_cb_t) (uint8_t pin, void *user);
      46              : 
      47              : /**
      48              :  * @brief Enable PINT interrupt source.
      49              :  *
      50              :  * @param pin: pin to use as interrupt source
      51              :  *     0-64, corresponding to GPIO0 pin 1 - GPIO1 pin 31)
      52              :  * @param trigger: one of nxp_pint_trigger flags
      53              :  * @param wake: indicates if the pin should wakeup the system
      54              :  */
      55            1 : int nxp_pint_pin_enable(uint8_t pin, enum nxp_pint_trigger trigger, bool wake);
      56              : 
      57              : 
      58              : /**
      59              :  * @brief disable PINT interrupt source.
      60              :  *
      61              :  * @param pin: pin interrupt source to disable
      62              :  */
      63            1 : void nxp_pint_pin_disable(uint8_t pin);
      64              : 
      65              : /**
      66              :  * @brief Install PINT callback
      67              :  *
      68              :  * @param pin: interrupt source to install callback for
      69              :  * @param cb: callback to install
      70              :  * @param data: user data to include in callback
      71              :  * @return 0 on success, or negative value on error
      72              :  */
      73            1 : int nxp_pint_pin_set_callback(uint8_t pin, nxp_pint_cb_t cb, void *data);
      74              : 
      75              : /**
      76              :  * @brief Remove PINT callback
      77              :  *
      78              :  * @param pin: interrupt source to remove callback for
      79              :  */
      80            1 : void nxp_pint_pin_unset_callback(uint8_t pin);
      81              : 
      82              : 
      83              : #endif /* ZEPHYR_DRIVERS_INTERRUPT_CONTROLLER_INTC_NXP_PINT_H_ */
        

Generated by: LCOV version 2.0-1