gpio_ll_irq.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2020 Gunar Schorcht
3  * 2021 Otto-von-Guericke-Universität Magdeburg
4  *
5  * This file is subject to the terms and conditions of the GNU Lesser
6  * General Public License v2.1. See the file LICENSE in the top level
7  * directory for more details.
8  */
9 
45 #ifndef PERIPH_GPIO_LL_IRQ_H
46 #define PERIPH_GPIO_LL_IRQ_H
47 
48 #include <inttypes.h>
49 #include <stdbool.h>
50 #include <stdint.h>
51 
52 #include "periph/gpio_ll.h"
53 
54 #ifdef __cplusplus
55 extern "C" {
56 #endif
57 
58 #if !defined(HAVE_GPIO_IRQ_TRIG_T) || defined(DOXYGEN)
72 typedef enum {
81 #endif
82 
88 typedef void (*gpio_ll_cb_t)(void *arg);
89 
109 int gpio_ll_irq(gpio_port_t port, uint8_t pin, gpio_irq_trig_t trig,
110  gpio_ll_cb_t cb, void *arg);
111 
124 void gpio_ll_irq_mask(gpio_port_t port, uint8_t pin);
125 
126 #if MODULE_PERIPH_GPIO_LL_IRQ_UNMASK || defined(DOXYGEN)
143 void gpio_ll_irq_unmask(gpio_port_t port, uint8_t pin);
144 #endif
145 
158 
174 void gpio_ll_irq_off(gpio_port_t port, uint8_t pin);
175 
176 #ifdef __cplusplus
177 }
178 #endif
179 
180 #endif /* PERIPH_GPIO_LL_IRQ_H */
Peripheral GPIO Low-Level API.
gpio_irq_trig_t
Definition of possible IRQ triggers.
Definition: gpio_ll_irq.h:72
void gpio_ll_irq_unmask_and_clear(gpio_port_t port, uint8_t pin)
Unmask IRQs on the given GPIO pin and clear pending IRQs.
void gpio_ll_irq_mask(gpio_port_t port, uint8_t pin)
Mask IRQs on the given GPIO pin.
int gpio_ll_irq(gpio_port_t port, uint8_t pin, gpio_irq_trig_t trig, gpio_ll_cb_t cb, void *arg)
Set up an IRQ for the given GPIO pin and activate it.
void(* gpio_ll_cb_t)(void *arg)
Signature of event callback function that is called on IRQs.
Definition: gpio_ll_irq.h:88
void gpio_ll_irq_unmask(gpio_port_t port, uint8_t pin)
Unmask IRQs on the given GPIO pin.
void gpio_ll_irq_off(gpio_port_t port, uint8_t pin)
Disable IRQs on the given GPIO pin.
@ GPIO_TRIGGER_EDGE_FALLING
edge triggered IRQ on falling flanks only
Definition: gpio_ll_irq.h:73
@ GPIO_TRIGGER_LEVEL_HIGH
level triggered IRQ on high input
Definition: gpio_ll_irq.h:78
@ GPIO_TRIGGER_EDGE_RISING
edge triggered IRQ on rising flanks only
Definition: gpio_ll_irq.h:75
@ GPIO_TRIGGER_EDGE_BOTH
edge triggered IRQ on falling AND rising flanks
Definition: gpio_ll_irq.h:76
@ GPIO_TRIGGER_LEVEL_LOW
level triggered IRQ on low input
Definition: gpio_ll_irq.h:79
uintptr_t gpio_port_t
GPIO port type.
Definition: gpio_ll.h:87
Adds include for missing inttype definitions.