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 
10 #pragma once
11 
47 #include <inttypes.h>
48 #include <stdbool.h>
49 #include <stdint.h>
50 
51 #include "periph/gpio_ll.h"
52 
53 #ifdef __cplusplus
54 extern "C" {
55 #endif
56 
57 #if !defined(HAVE_GPIO_IRQ_TRIG_T) || defined(DOXYGEN)
71 typedef enum {
80 #endif
81 
87 typedef void (*gpio_ll_cb_t)(void *arg);
88 
108 int gpio_ll_irq(gpio_port_t port, uint8_t pin, gpio_irq_trig_t trig,
109  gpio_ll_cb_t cb, void *arg);
110 
123 void gpio_ll_irq_mask(gpio_port_t port, uint8_t pin);
124 
125 #if MODULE_PERIPH_GPIO_LL_IRQ_UNMASK || defined(DOXYGEN)
142 void gpio_ll_irq_unmask(gpio_port_t port, uint8_t pin);
143 #endif
144 
157 
173 void gpio_ll_irq_off(gpio_port_t port, uint8_t pin);
174 
175 #ifdef __cplusplus
176 }
177 #endif
178 
Peripheral GPIO Low-Level API.
gpio_irq_trig_t
Definition of possible IRQ triggers.
Definition: gpio_ll_irq.h:71
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:87
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:72
@ GPIO_TRIGGER_LEVEL_HIGH
level triggered IRQ on high input
Definition: gpio_ll_irq.h:77
@ GPIO_TRIGGER_EDGE_RISING
edge triggered IRQ on rising flanks only
Definition: gpio_ll_irq.h:74
@ GPIO_TRIGGER_EDGE_BOTH
edge triggered IRQ on falling AND rising flanks
Definition: gpio_ll_irq.h:75
@ GPIO_TRIGGER_LEVEL_LOW
level triggered IRQ on low input
Definition: gpio_ll_irq.h:78
uintptr_t gpio_port_t
GPIO port type.
Definition: gpio_ll.h:95
Adds include for missing inttype definitions.