16#ifndef ZEPHYR_INCLUDE_DRIVERS_KB_SCAN_H_
17#define ZEPHYR_INCLUDE_DRIVERS_KB_SCAN_H_
55typedef int (*kscan_config_t)(
const struct device *dev,
57typedef int (*kscan_disable_callback_t)(
const struct device *dev);
58typedef int (*kscan_enable_callback_t)(
const struct device *dev);
60__subsystem
struct kscan_driver_api {
61 kscan_config_t config;
62 kscan_disable_callback_t disable_callback;
63 kscan_enable_callback_t enable_callback;
82static inline int z_impl_kscan_config(
const struct device *dev,
85 const struct kscan_driver_api *api =
86 (
struct kscan_driver_api *)dev->
api;
88 return api->config(dev, callback);
99static inline int z_impl_kscan_enable_callback(
const struct device *dev)
101 const struct kscan_driver_api *api =
102 (
const struct kscan_driver_api *)dev->
api;
104 if (api->enable_callback == NULL) {
108 return api->enable_callback(dev);
120static inline int z_impl_kscan_disable_callback(
const struct device *dev)
122 const struct kscan_driver_api *api =
123 (
const struct kscan_driver_api *)dev->
api;
125 if (api->disable_callback == NULL) {
129 return api->disable_callback(dev);
140#include <syscalls/kscan.h>
int kscan_disable_callback(const struct device *dev)
Disables callback.
int kscan_config(const struct device *dev, kscan_callback_t callback)
Configure a Keyboard scan instance.
int kscan_enable_callback(const struct device *dev)
Enables callback.
void(* kscan_callback_t)(const struct device *dev, uint32_t row, uint32_t column, bool pressed)
Keyboard scan callback called when user press/release a key on a matrix keyboard.
Definition: kscan.h:44
#define ENOSYS
Function not implemented.
Definition: errno.h:83
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
Runtime device structure (in ROM) per driver instance.
Definition: device.h:381
const void * api
Address of the API structure exposed by the device instance.
Definition: device.h:387