Zephyr Project API
3.3.0
A Scalable Open Source RTOS
|
#include <stdbool.h>
#include <stdint.h>
#include <errno.h>
#include <zephyr/devicetree.h>
#include <zephyr/drivers/gpio.h>
#include <zephyr/sys/__assert.h>
#include <zephyr/sys/slist.h>
Go to the source code of this file.
Macros | |
#define | GPIO_PORT_PIN_MASK_FROM_NGPIOS(ngpios) ((gpio_port_pins_t)(((uint64_t)1 << (ngpios)) - 1U)) |
#define | GPIO_PORT_PIN_MASK_FROM_DT_NODE(node_id) GPIO_PORT_PIN_MASK_FROM_NGPIOS(DT_PROP(node_id, ngpios)) |
#define | GPIO_PORT_PIN_MASK_FROM_DT_INST(inst) GPIO_PORT_PIN_MASK_FROM_NGPIOS(DT_INST_PROP(inst, ngpios)) |
Functions | |
static int | gpio_manage_callback (sys_slist_t *callbacks, struct gpio_callback *callback, bool set) |
Generic function to insert or remove a callback from a callback list. More... | |
static void | gpio_fire_callbacks (sys_slist_t *list, const struct device *port, uint32_t pins) |
Generic function to go through and fire callback from a callback list. More... | |
#define GPIO_PORT_PIN_MASK_FROM_DT_INST | ( | inst | ) | GPIO_PORT_PIN_MASK_FROM_NGPIOS(DT_INST_PROP(inst, ngpios)) |
#define GPIO_PORT_PIN_MASK_FROM_DT_NODE | ( | node_id | ) | GPIO_PORT_PIN_MASK_FROM_NGPIOS(DT_PROP(node_id, ngpios)) |
#define GPIO_PORT_PIN_MASK_FROM_NGPIOS | ( | ngpios | ) | ((gpio_port_pins_t)(((uint64_t)1 << (ngpios)) - 1U)) |
|
inlinestatic |
Generic function to go through and fire callback from a callback list.
list | A pointer on the gpio callback list |
port | A pointer on the gpio driver instance |
pins | The actual pin mask that triggered the interrupt |
|
inlinestatic |
Generic function to insert or remove a callback from a callback list.
callbacks | A pointer to the original list of callbacks (can be NULL) |
callback | A pointer of the callback to insert or remove from the list |
set | A boolean indicating insertion or removal of the callback |