LCOV - code coverage report
Current view: top level - zephyr/drivers/interrupt_controller - sam0_eic.h Hit Total Coverage
Test: new.info Lines: 5 8 62.5 %
Date: 2024-12-22 00:14:23

          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 1.14