no-OS
irq_extra.h
Go to the documentation of this file.
1 /***************************************************************************/
40 #ifndef IRQ_EXTRA_H
41 # define IRQ_EXTRA_H
42 
43 /******************************************************************************/
44 /***************************** Include Files **********************************/
45 /******************************************************************************/
46 
47 #include <drivers/xint/adi_xint.h>
48 #include <stdbool.h>
49 #include <stdint.h>
50 #include "no_os_irq.h"
51 
52 /******************************************************************************/
53 /********************** Macros and Constants Definitions **********************/
54 /******************************************************************************/
55 
57 #define RTC_COUNT_INT ADI_RTC_COUNT_INT
58 #define RTC_COUNT_ROLLOVER_INT ADI_RTC_COUNT_ROLLOVER_INT
59 
60 /******************************************************************************/
61 /*************************** Types Declarations *******************************/
62 /******************************************************************************/
63 
68 enum irq_id {
77 };
78 
83 enum irq_mode {
85  IRQ_RISING_EDGE = ADI_XINT_IRQ_RISING_EDGE,
87  IRQ_FALLING_EDGE = ADI_XINT_IRQ_FALLING_EDGE,
89  IRQ_EITHER_EDGE = ADI_XINT_IRQ_EITHER_EDGE,
91  IRQ_HIGH_LEVEL = ADI_XINT_IRQ_HIGH_LEVEL,
93  IRQ_LOW_LEVEL = ADI_XINT_IRQ_LOW_LEVEL
94 };
95 
105 };
106 
112 
113 };
114 
118 extern const struct no_os_irq_platform_ops aducm_irq_ops;
119 
123 struct irq_action {
125  uint32_t irq_id;
127  void *handle;
129  void (*callback)(void *context);
131  void *ctx;
135 };
136 
138 int32_t irq_action_cmp(void *data1, void *data2);
139 
140 #endif // IRQ_EXTRA_H_
IRQ_FALLING_EDGE
@ IRQ_FALLING_EDGE
Definition: irq_extra.h:87
NB_INTERRUPTS
@ NB_INTERRUPTS
Definition: irq_extra.h:76
aducm_irq_ops
const struct no_os_irq_platform_ops aducm_irq_ops
ADuCM3029 specific IRQ platform ops structure.
Definition: aducm3029_irq.c:538
irq_action::ctx
void * ctx
Definition: irq_extra.h:131
no_os_irq.h
Header file of IRQ interface.
IRQ_RISING_EDGE
@ IRQ_RISING_EDGE
Definition: irq_extra.h:85
irq_action_cmp
int32_t irq_action_cmp(void *data1, void *data2)
Action comparator function.
Definition: aducm3029_irq.c:79
IRQ_LOW_LEVEL
@ IRQ_LOW_LEVEL
Definition: irq_extra.h:93
ADUCM_TIMER1_INT_ID
@ ADUCM_TIMER1_INT_ID
Definition: irq_extra.h:74
GPIO_GROUP_NEGATIVE_EDGE
@ GPIO_GROUP_NEGATIVE_EDGE
Definition: irq_extra.h:102
no_os_irq_trig_level
no_os_irq_trig_level
Definition: no_os_irq.h:77
irq_action::callback
void(* callback)(void *context)
Definition: irq_extra.h:129
IRQ_EITHER_EDGE
@ IRQ_EITHER_EDGE
Definition: irq_extra.h:89
irq_id
irq_id
Interrupts IDs supported by the irq driver.
Definition: irq_extra.h:68
ADUCM_RTC_INT_ID
@ ADUCM_RTC_INT_ID
Definition: irq_extra.h:72
irq_action::handle
void * handle
Definition: irq_extra.h:127
irq_action::irq_id
uint32_t irq_id
Definition: irq_extra.h:125
ADUCM_UART_INT_ID
@ ADUCM_UART_INT_ID
Definition: irq_extra.h:70
irq_action
Struct used to store a (peripheral, callback) pair.
Definition: irq_extra.h:123
irq_mode
irq_mode
Trigger condition for the external interrupt.
Definition: irq_extra.h:83
IRQ_HIGH_LEVEL
@ IRQ_HIGH_LEVEL
Definition: irq_extra.h:91
no_os_irq_platform_ops
Structure holding IRQ function pointers that point to the platform specific function.
Definition: no_os_irq.h:164
aducm_irq_ctrl_desc
Stores specific platform parameters.
Definition: irq_extra.h:111
irq_action::trig_lv
enum no_os_irq_trig_level trig_lv
Definition: irq_extra.h:134
GPIO_GROUP_POSITIVE_EDGE
@ GPIO_GROUP_POSITIVE_EDGE
Definition: irq_extra.h:104
gpio_irq_mode
gpio_irq_mode
Interrupt conditions for GPIO group interrupts.
Definition: irq_extra.h:100