no-OS
Loading...
Searching...
No Matches
xilinx_gpio_irq.c File Reference

Implementation of Xilinx GPIO IRQ Generic Driver. More...

#include <stdlib.h>
#include "xparameters.h"
#include "no_os_error.h"
#include "xilinx_gpio_irq.h"
#include "no_os_util.h"
#include "no_os_list.h"
#include "no_os_irq.h"
#include "no_os_alloc.h"
Include dependency graph for xilinx_gpio_irq.c:

Functions

int xil_gpio_irq_disable (struct no_os_irq_ctrl_desc *desc, uint32_t irq_id)
 Disable specific GPIO IRQ pin.
 
int 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.
 
int 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.
 
int 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.
 
int 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.
 
int xil_gpio_irq_enable (struct no_os_irq_ctrl_desc *desc, uint32_t irq_id)
 Enable specific GPIO IRQ pin.
 
int xil_gpio_irq_ctrl_remove (struct no_os_irq_ctrl_desc *desc)
 Remove the GPIO IRQ controller.
 

Variables

const struct no_os_irq_platform_ops xil_gpio_irq_ops
 Xilinx platform specific GPIO IRQ platform ops structure.
 

Detailed Description

Implementation of Xilinx GPIO IRQ Generic Driver.

Author
Porumb Andrei (andre.nosp@m.i.po.nosp@m.rumb@.nosp@m.anal.nosp@m.og.co.nosp@m.m)

Copyright 2021(c) Analog Devices, Inc.

SPDX-License-Identifier: BSD-3-Clause

Function Documentation

◆ xil_gpio_irq_ctrl_init()

int 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.

Parameters
desc- The GPIO IRQ controller descriptor.
param- The GPIO IRQ controller initial parameters. irq_ctrl_id from irq_init_param is the interrupt id for the parent controller
Returns
0 in case of success, -1 otherwise.

◆ xil_gpio_irq_ctrl_remove()

int xil_gpio_irq_ctrl_remove ( struct no_os_irq_ctrl_desc * desc)

Remove the GPIO IRQ controller.

Parameters
desc- The GPIO IRQ controller descriptor.
Returns
0 in case of success, -1 otherwise.

◆ xil_gpio_irq_disable()

int xil_gpio_irq_disable ( struct no_os_irq_ctrl_desc * desc,
uint32_t irq_id )

Disable specific GPIO IRQ pin.

Parameters
desc- The GPIO IRQ controller descriptor.
irq_id- Pin number.
Returns
0 in case of success, -1 otherwise.

◆ xil_gpio_irq_enable()

int xil_gpio_irq_enable ( struct no_os_irq_ctrl_desc * desc,
uint32_t irq_id )

Enable specific GPIO IRQ pin.

Parameters
desc- The GPIO IRQ controller descriptor.
irq_id- Pin number.
Returns
0 in case of success, -1 otherwise.

◆ xil_gpio_irq_register_callback()

int 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.

Parameters
desc- The GPIO IRQ controller descriptor.
irq_id- Pin number.
callback_desc- Callback.
Returns
0 in case of success, -1 otherwise.

◆ xil_gpio_irq_trigger_level_set()

int 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.

Parameters
desc- The GPIO IRQ controller descriptor.
irq_id- Pin number.
trig- New trigger level for the GPIO interrupt.
Returns
0 in case of success, -1 otherwise.

◆ xil_gpio_irq_unregister_callback()

int 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.

Parameters
desc- The GPIO IRQ controller descriptor.
irq_id- Pin number.
cb- Callback descriptor.
Returns
0 in case of success, -1 otherwise.

Variable Documentation

◆ xil_gpio_irq_ops

const struct no_os_irq_platform_ops xil_gpio_irq_ops
Initial value:
= {
.enable = &xil_gpio_irq_enable,
.disable = &xil_gpio_irq_disable,
.trigger_level_set = &xil_gpio_irq_trigger_level_set,
.register_callback = &xil_gpio_irq_register_callback,
.unregister_callback = xil_gpio_irq_unregister_callback,
}
int 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:102
int 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:186
int 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:72
int 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:242
int 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:211
int 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:268
int xil_gpio_irq_ctrl_remove(struct no_os_irq_ctrl_desc *desc)
Remove the GPIO IRQ controller.
Definition xilinx_gpio_irq.c:297

Xilinx platform specific GPIO IRQ platform ops structure.

Xilinx specific GPIO IRQ platform ops structure.