Zephyr Project API  3.3.0
A Scalable Open Source RTOS
gpio_keys.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2022 Google LLC
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_DRIVERS_GPIO_KEYS_H_
8#define ZEPHYR_INCLUDE_DRIVERS_GPIO_KEYS_H_
9
10#include <stdint.h>
11#include <zephyr/drivers/gpio.h>
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
21};
22
23typedef void (*gpio_keys_callback_handler_t)(const struct device *port,
24 struct gpio_keys_callback *cb, gpio_port_pins_t pins);
32__subsystem struct gpio_keys_api {
34 int (*disable_interrupt)(const struct device *dev);
35 int (*get_pin)(const struct device *dev, uint32_t idx);
36};
37
47
48static inline int z_impl_gpio_keys_enable_interrupt(const struct device *dev,
50{
51 struct gpio_keys_api *api;
52
53 api = (struct gpio_keys_api *)dev->api;
54 return api->enable_interrupt(dev, cb);
55}
56
64__syscall int gpio_keys_disable_interrupt(const struct device *dev);
65
66static inline int z_impl_gpio_keys_disable_interrupt(const struct device *dev)
67{
68 struct gpio_keys_api *api;
69
70 api = (struct gpio_keys_api *)dev->api;
71 return api->disable_interrupt(dev);
72}
73
84__syscall int gpio_keys_get_pin(const struct device *dev, uint32_t idx);
85
86static inline int z_impl_gpio_keys_get_pin(const struct device *dev, uint32_t idx)
87{
88 struct gpio_keys_api *api;
89
90 api = (struct gpio_keys_api *)dev->api;
91 return api->get_pin(dev, idx);
92}
93
98#ifdef __cplusplus
99}
100#endif
101
102#include <syscalls/gpio_keys.h>
103
104#endif /* ZEPHYR_INCLUDE_DRIVERS_GPIO_KEYS_H_ */
Public APIs for GPIO drivers.
void(* gpio_keys_callback_handler_t)(const struct device *port, struct gpio_keys_callback *cb, gpio_port_pins_t pins)
Definition: gpio_keys.h:23
uint32_t gpio_port_pins_t
Identifies a set of pins associated with a port.
Definition: gpio.h:216
int gpio_keys_enable_interrupt(const struct device *dev, gpio_keys_callback_handler_t cb)
Enable interrupt.
int gpio_keys_disable_interrupt(const struct device *dev)
Disable interrupt.
int gpio_keys_get_pin(const struct device *dev, uint32_t idx)
Get the logical level of GPIO Key.
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__INT8_TYPE__ int8_t
Definition: stdint.h:72
Runtime device structure (in ROM) per driver instance.
Definition: device.h:378
const void * api
Definition: device.h:384
GPIO callback structure.
Definition: gpio.h:480
Definition: gpio_keys.h:32
int(* get_pin)(const struct device *dev, uint32_t idx)
Definition: gpio_keys.h:35
int(* enable_interrupt)(const struct device *dev, gpio_keys_callback_handler_t cb)
Definition: gpio_keys.h:33
int(* disable_interrupt)(const struct device *dev)
Definition: gpio_keys.h:34
Definition: gpio_keys.h:17
struct gpio_callback gpio_cb
Definition: gpio_keys.h:18
uint32_t zephyr_code
Definition: gpio_keys.h:19
int8_t pin_state
Definition: gpio_keys.h:20