Zephyr Project API  3.3.0
A Scalable Open Source RTOS
gpio_utils.h File Reference
#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...
 

Macro Definition Documentation

◆ GPIO_PORT_PIN_MASK_FROM_DT_INST

#define GPIO_PORT_PIN_MASK_FROM_DT_INST (   inst)     GPIO_PORT_PIN_MASK_FROM_NGPIOS(DT_INST_PROP(inst, ngpios))

◆ GPIO_PORT_PIN_MASK_FROM_DT_NODE

#define GPIO_PORT_PIN_MASK_FROM_DT_NODE (   node_id)     GPIO_PORT_PIN_MASK_FROM_NGPIOS(DT_PROP(node_id, ngpios))

◆ GPIO_PORT_PIN_MASK_FROM_NGPIOS

#define GPIO_PORT_PIN_MASK_FROM_NGPIOS (   ngpios)     ((gpio_port_pins_t)(((uint64_t)1 << (ngpios)) - 1U))

Function Documentation

◆ gpio_fire_callbacks()

static void gpio_fire_callbacks ( sys_slist_t list,
const struct device port,
uint32_t  pins 
)
inlinestatic

Generic function to go through and fire callback from a callback list.

Parameters
listA pointer on the gpio callback list
portA pointer on the gpio driver instance
pinsThe actual pin mask that triggered the interrupt

◆ gpio_manage_callback()

static int gpio_manage_callback ( sys_slist_t callbacks,
struct gpio_callback callback,
bool  set 
)
inlinestatic

Generic function to insert or remove a callback from a callback list.

Parameters
callbacksA pointer to the original list of callbacks (can be NULL)
callbackA pointer of the callback to insert or remove from the list
setA boolean indicating insertion or removal of the callback
Returns
0 on success, negative errno otherwise.