123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- ((gpio_port_pins_t)(((uint64_t)1 << (ngpios)) - 1U))
- GPIO_PORT_PIN_MASK_FROM_NGPIOS(DT_PROP(node_id, ngpios))
- GPIO_PORT_PIN_MASK_FROM_NGPIOS(DT_INST_PROP(inst, ngpios))
- static inline int gpio_manage_callback(sys_slist_t *callbacks,
- struct gpio_callback *callback,
- bool set)
- {
- __ASSERT(callback, "No callback!");
- __ASSERT(callback->handler, "No callback handler!");
- if (!sys_slist_is_empty(callbacks)) {
- if (!sys_slist_find_and_remove(callbacks, &callback->node)) {
- if (!set) {
- return -EINVAL;
- }
- }
- }
- if (set) {
- sys_slist_prepend(callbacks, &callback->node);
- }
- return 0;
- }
- static inline void gpio_fire_callbacks(sys_slist_t *list,
- const struct device *port,
- uint32_t pins)
- {
- struct gpio_callback *cb, *tmp;
- SYS_SLIST_FOR_EACH_CONTAINER_SAFE(list, cb, tmp, node) {
- if (cb->pin_mask & pins) {
- __ASSERT(cb->handler, "No callback handler!");
- cb->handler(port, cb, cb->pin_mask & pins);
- }
- }
- }
|