123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- #ifndef ZEPHYR_INCLUDE_DRIVERS_PS2_H_
- #define ZEPHYR_INCLUDE_DRIVERS_PS2_H_
- #include <zephyr/types.h>
- #include <stddef.h>
- #include <device.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef void (*ps2_callback_t)(const struct device *dev, uint8_t data);
- typedef int (*ps2_config_t)(const struct device *dev,
- ps2_callback_t callback_isr);
- typedef int (*ps2_read_t)(const struct device *dev, uint8_t *value);
- typedef int (*ps2_write_t)(const struct device *dev, uint8_t value);
- typedef int (*ps2_disable_callback_t)(const struct device *dev);
- typedef int (*ps2_enable_callback_t)(const struct device *dev);
- __subsystem struct ps2_driver_api {
- ps2_config_t config;
- ps2_read_t read;
- ps2_write_t write;
- ps2_disable_callback_t disable_callback;
- ps2_enable_callback_t enable_callback;
- };
- __syscall int ps2_config(const struct device *dev,
- ps2_callback_t callback_isr);
- static inline int z_impl_ps2_config(const struct device *dev,
- ps2_callback_t callback_isr)
- {
- const struct ps2_driver_api *api =
- (struct ps2_driver_api *)dev->api;
- return api->config(dev, callback_isr);
- }
- __syscall int ps2_write(const struct device *dev, uint8_t value);
- static inline int z_impl_ps2_write(const struct device *dev, uint8_t value)
- {
- const struct ps2_driver_api *api =
- (const struct ps2_driver_api *)dev->api;
- return api->write(dev, value);
- }
- __syscall int ps2_read(const struct device *dev, uint8_t *value);
- static inline int z_impl_ps2_read(const struct device *dev, uint8_t *value)
- {
- const struct ps2_driver_api *api =
- (const struct ps2_driver_api *)dev->api;
- return api->read(dev, value);
- }
- __syscall int ps2_enable_callback(const struct device *dev);
- static inline int z_impl_ps2_enable_callback(const struct device *dev)
- {
- const struct ps2_driver_api *api =
- (const struct ps2_driver_api *)dev->api;
- if (api->enable_callback == NULL) {
- return -ENOSYS;
- }
- return api->enable_callback(dev);
- }
- __syscall int ps2_disable_callback(const struct device *dev);
- static inline int z_impl_ps2_disable_callback(const struct device *dev)
- {
- const struct ps2_driver_api *api =
- (const struct ps2_driver_api *)dev->api;
- if (api->disable_callback == NULL) {
- return -ENOSYS;
- }
- return api->disable_callback(dev);
- }
- #ifdef __cplusplus
- }
- #endif
- #include <syscalls/ps2.h>
- #endif
|