LCOV - code coverage report
Current view: top level - zephyr/drivers/interrupt_controller - sam0_eic.h Coverage Total Hit
Test: new.info Lines: 62.5 % 8 5
Test Date: 2025-09-05 22:20:39

            Line data    Source code
       1            0 : /*
       2              :  * Copyright (c) 2019 Derek Hageman <hageman@inthat.cloud>
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : 
       8              : #ifndef ZEPHYR_DRIVERS_INTERRUPT_CONTROLLER_INTC_SAM0_EIC_H_
       9              : #define ZEPHYR_DRIVERS_INTERRUPT_CONTROLLER_INTC_SAM0_EIC_H_
      10              : 
      11              : #include <zephyr/types.h>
      12              : 
      13              : /* callback for EIC interrupt */
      14            0 : typedef void (*sam0_eic_callback_t)(uint32_t pins, void *data);
      15              : 
      16              : /**
      17              :  * @brief EIC trigger condition
      18              :  */
      19            0 : enum sam0_eic_trigger {
      20              :         /* Rising edge */
      21              :         SAM0_EIC_RISING,
      22              :         /* Falling edge */
      23              :         SAM0_EIC_FALLING,
      24              :         /* Both edges */
      25              :         SAM0_EIC_BOTH,
      26              :         /* High level detection */
      27              :         SAM0_EIC_HIGH,
      28              :         /* Low level detection */
      29              :         SAM0_EIC_LOW,
      30              : };
      31              : 
      32              : /**
      33              :  * @brief Acquire an EIC interrupt for specific port and pin combination
      34              :  *
      35              :  * This acquires the EIC interrupt for a specific port and pin combination,
      36              :  * or returns an error if the required line is not available.  Only a single
      37              :  * callback per port is supported and supplying a different one will
      38              :  * change it for all lines on that port.
      39              :  *
      40              :  * @param port port index (A=0, etc)
      41              :  * @param pin pin in the port
      42              :  * @param trigger trigger condition
      43              :  * @param filter enable filter
      44              :  * @param cb interrupt callback
      45              :  * @param data parameter to the interrupt callback
      46              :  */
      47            1 : int sam0_eic_acquire(int port, int pin, enum sam0_eic_trigger trigger,
      48              :                      bool filter, sam0_eic_callback_t cb, void *data);
      49              : 
      50              : /**
      51              :  * @brief Release the EIC interrupt for a specific port and pin combination
      52              :  *
      53              :  * Release the EIC configuration for a specific port and pin combination.
      54              :  * No effect if that combination does not currently hold the associated
      55              :  * EIC line.
      56              :  *
      57              :  * @param port port index (A=0, etc)
      58              :  * @param pin pin in the port
      59              :  */
      60            1 : int sam0_eic_release(int port, int pin);
      61              : 
      62              : /**
      63              :  * @brief Enable the EIC interrupt for a specific port and pin combination
      64              :  *
      65              :  * @param port port index (A=0, etc)
      66              :  * @param pin pin in the port
      67              :  */
      68            1 : int sam0_eic_enable_interrupt(int port, int pin);
      69              : 
      70              : /**
      71              :  * @brief Disable the EIC interrupt for a specific port and pin combination
      72              :  *
      73              :  * @param port port index (A=0, etc)
      74              :  * @param pin pin in the port
      75              :  */
      76            1 : int sam0_eic_disable_interrupt(int port, int pin);
      77              : 
      78              : /**
      79              :  * @brief Test if there is an EIC interrupt pending for a port
      80              :  *
      81              :  * @param port port index (A=0, etc)
      82              :  */
      83            1 : uint32_t sam0_eic_interrupt_pending(int port);
      84              : 
      85              : #endif /* ZEPHYR_DRIVERS_INTERRUPT_CONTROLLER_INTC_SAM0_EIC_H_ */
        

Generated by: LCOV version 2.0-1