123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- #ifndef __CEC_H__
- #define __CEC_H__
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include <zephyr/types.h>
- #include <device.h>
- #define CEC_TRANSFER_MAX_SIZE (16)
- struct cec_msg {
- uint8_t buf[CEC_TRANSFER_MAX_SIZE];
- uint8_t len;
- uint8_t initiator : 4;
- uint8_t destination : 4;
- };
- struct cec_driver_api {
- int (*config)(const struct device *dev, uint8_t local_addr);
- int (*write)(const struct device *dev, const struct cec_msg *msg, uint32_t timeout_ms);
- int (*read)(const struct device *dev, struct cec_msg *msg, uint32_t timeout_ms);
- };
- static inline int cec_config_local_addr(const struct device *dev, uint8_t local_addr)
- {
- const struct cec_driver_api *api = dev->api;
- return api->config(dev, local_addr);
- }
- static inline int cec_write(const struct device *dev, const struct cec_msg *msg, uint32_t timeout_ms)
- {
- const struct cec_driver_api *api = dev->api;
- return api->write(dev, msg, timeout_ms);
- }
- static inline int cec_read(const struct device *dev, struct cec_msg *msg, uint32_t timeout_ms)
- {
- const struct cec_driver_api *api = dev->api;
- return api->read(dev, msg, timeout_ms);
- }
- #ifdef __cplusplus
- }
- #endif
- #endif
|