no-OS
xilinx_gpio_irq.h
Go to the documentation of this file.
1 /***************************************************************************/
40 #ifndef XILINX_GPIO_IRQ_H_
41 #define XILINX_GPIO_IRQ_H_
42 
43 /******************************************************************************/
44 /***************************** Include Files **********************************/
45 /******************************************************************************/
46 
47 #include "stdbool.h"
48 #include "no_os_list.h"
49 #include "xgpiops.h"
50 #include "no_os_irq.h"
51 
52 /******************************************************************************/
53 /*************************** Types Declarations *******************************/
54 /******************************************************************************/
60  int32_t pin_nb;
62  bool triggered;
63  bool enabled;
64 };
65 
73  int32_t gpio_device_id;
74 };
75 
82  XGpioPs my_Gpio;
84  struct no_os_iterator *it;
85 };
86 
90 extern const struct no_os_irq_platform_ops xil_gpio_irq_ops;
91 
92 #endif
no_os_list_desc
Structure storing the list and function wrapper for usual list types.
Definition: no_os_list.h:234
xil_gpio_irq_desc
Xilinx platform specific GPIO IRQ descriptor.
Definition: xilinx_gpio_irq.h:80
no_os_alloc.h
xil_gpio_irq_ops
const struct no_os_irq_platform_ops xil_gpio_irq_ops
Xilinx platform specific GPIO IRQ platform ops structure.
Definition: xilinx_gpio_irq.c:353
no_os_callback_desc
Structure describing a callback to be registered.
Definition: no_os_irq.h:148
no_os_irq.h
Header file of IRQ interface.
no_os_irq_register_callback
int32_t no_os_irq_register_callback(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, struct no_os_callback_desc *callback_desc)
Register a callback to handle the irq events.
Definition: no_os_irq.c:98
NO_OS_LIST_DEFAULT
@ NO_OS_LIST_DEFAULT
Definition: no_os_list.h:201
no_os_list_get_find
int32_t no_os_list_get_find(struct no_os_list_desc *list_desc, void **data, void *cmp_data)
no_os_list_get_first
int32_t no_os_list_get_first(struct no_os_list_desc *list_desc, void **data)
xil_gpio_irq_ctrl_remove
int32_t xil_gpio_irq_ctrl_remove(struct no_os_irq_ctrl_desc *desc)
Remove the GPIO IRQ controller.
Definition: xilinx_gpio_irq.c:330
no_os_irq_platform_ops::init
int32_t(* init)(struct no_os_irq_ctrl_desc **desc, const struct no_os_irq_init_param *param)
Definition: no_os_irq.h:168
no_os_calloc
void * no_os_calloc(size_t nitems, size_t size)
Allocate memory and return a pointer to it, set memory to 0.
Definition: chibios_alloc.c:60
xil_gpio_irq_enable
int32_t xil_gpio_irq_enable(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id)
Enable specific GPIO IRQ pin.
Definition: xilinx_gpio_irq.c:301
no_os_irq_init_param::extra
void * extra
Definition: no_os_irq.h:122
xil_callback_desc::pin_nb
int32_t pin_nb
Definition: xilinx_gpio_irq.h:60
no_os_error.h
Error codes definition.
no_os_iterator_move
int32_t no_os_iterator_move(struct no_os_iterator *iter, int32_t steps)
xil_gpio_irq_init_param
Structure holding the initialization parameters for Xilinx platform specific GPIO IRQ parameters.
Definition: xilinx_gpio_irq.h:71
no_os_callback_desc::ctx
void * ctx
Definition: no_os_irq.h:152
no_os_irq_trig_level
no_os_irq_trig_level
Definition: no_os_irq.h:82
no_os_irq_init_param::irq_ctrl_id
uint32_t irq_ctrl_id
Definition: no_os_irq.h:115
xil_gpio_irq_disable
int32_t xil_gpio_irq_disable(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id)
Disable specific GPIO IRQ pin.
Definition: xilinx_gpio_irq.c:109
xil_callback_desc
Structure holding callback parameters for each pin.
Definition: xilinx_gpio_irq.h:59
no_os_callback_desc::callback
void(* callback)(void *context)
Definition: no_os_irq.h:150
xil_gpio_irq_desc::my_Gpio
XGpioPs my_Gpio
Definition: xilinx_gpio_irq.h:82
xilinx_gpio_irq.h
Implementation of Xilinx GPIO IRQ Generic Driver.
no_os_list_remove
int32_t no_os_list_remove(struct no_os_list_desc *list_desc)
irq_id
irq_id
Interrupts IDs supported by the irq driver.
Definition: aducm3029_irq.h:68
xil_gpio_irq_desc::parent_desc
struct no_os_irq_ctrl_desc * parent_desc
Definition: xilinx_gpio_irq.h:81
no_os_free
void no_os_free(void *ptr)
Deallocate memory previously allocated by a call to no_os_calloc or no_os_malloc.
Definition: chibios_alloc.c:75
xil_gpio_irq_register_callback
int32_t xil_gpio_irq_register_callback(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, struct no_os_callback_desc *callback_desc)
Register pin specific GPIO interrupt.
Definition: xilinx_gpio_irq.c:244
no_os_list.h
List library header.
no_os_iterator_remove
int32_t no_os_iterator_remove(struct no_os_iterator *iter)
no_os_irq_ctrl_desc::irq_ctrl_id
uint32_t irq_ctrl_id
Definition: no_os_irq.h:131
xil_gpio_irq_init_param::gpio_device_id
int32_t gpio_device_id
Definition: xilinx_gpio_irq.h:73
no_os_iterator_move_to_idx
int32_t no_os_iterator_move_to_idx(struct no_os_iterator *iter, int32_t idx)
xil_callback_desc::enabled
bool enabled
Definition: xilinx_gpio_irq.h:63
no_os_irq_init_param
Structure holding the initial parameters for Interrupt Request.
Definition: no_os_irq.h:113
NO_OS_IRQ_EDGE_RISING
@ NO_OS_IRQ_EDGE_RISING
Definition: no_os_irq.h:86
no_os_iterator_read
int32_t no_os_iterator_read(struct no_os_iterator *iter, void **data)
no_os_irq_enable
int32_t no_os_irq_enable(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id)
Enable specific interrupt.
Definition: no_os_irq.c:187
no_os_irq_platform_ops
Structure holding IRQ function pointers that point to the platform specific function.
Definition: no_os_irq.h:166
xil_gpio_irq_trigger_level_set
int32_t xil_gpio_irq_trigger_level_set(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, enum no_os_irq_trig_level trig)
Set GPIO interrupt trigger level.
Definition: xilinx_gpio_irq.c:219
xil_gpio_irq_unregister_callback
int32_t xil_gpio_irq_unregister_callback(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, struct no_os_callback_desc *cb)
Unregister pin specific GPIO interrupt.
Definition: xilinx_gpio_irq.c:275
xil_gpio_irq_ops
const struct no_os_irq_platform_ops xil_gpio_irq_ops
Xilinx specific GPIO IRQ platform ops structure.
Definition: xilinx_gpio_irq.c:353
xil_callback_desc::triggered
bool triggered
Definition: xilinx_gpio_irq.h:62
xil_callback_desc::callback
struct no_os_callback_desc callback
Definition: xilinx_gpio_irq.h:61
no_os_list_add_last
int32_t no_os_list_add_last(struct no_os_list_desc *list_desc, void *data)
no_os_list_init
int32_t no_os_list_init(struct no_os_list_desc **list_desc, enum no_os_adapter_type type, f_cmp comparator)
no_os_iterator_init
int32_t no_os_iterator_init(struct no_os_iterator **iter, struct no_os_list_desc *list_desc, bool start)
no_os_util.h
Header file of utility functions.
no_os_irq_trigger_level_set
int32_t no_os_irq_trigger_level_set(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, enum no_os_irq_trig_level trig)
Set interrupt trigger level.
Definition: no_os_irq.c:168
xil_gpio_irq_desc::it
struct no_os_iterator * it
Definition: xilinx_gpio_irq.h:84
xil_gpio_irq_init_param::parent_desc
struct no_os_irq_ctrl_desc * parent_desc
Definition: xilinx_gpio_irq.h:72
no_os_irq_ctrl_desc
Definition: no_os_irq.h:129
xil_gpio_irq_desc::callback_list
struct no_os_list_desc * callback_list
Definition: xilinx_gpio_irq.h:83
no_os_irq_ctrl_desc::extra
void * extra
Definition: no_os_irq.h:140
xil_gpio_irq_ctrl_init
int32_t xil_gpio_irq_ctrl_init(struct no_os_irq_ctrl_desc **desc, const struct no_os_irq_init_param *param)
Initialize the GPIO IRQ controller.
Definition: xilinx_gpio_irq.c:139