8#ifndef ZEPHYR_MCTP_I3C_TARGET_H_
9#define ZEPHYR_MCTP_I3C_TARGET_H_
23 struct mctp_binding binding;
27 struct mctp_pktbuf *tx_pkt;
28 struct k_sem *tx_lock;
29 struct k_sem *tx_complete;
30 struct mctp_pktbuf *rx_pkt;
36int mctp_i3c_target_start(
struct mctp_binding *binding);
37int mctp_i3c_target_tx(
struct mctp_binding *binding,
struct mctp_pktbuf *pkt);
46#define MCTP_I3C_TARGET_DT_DEFINE(_name, _node_id) \
47 K_SEM_DEFINE(_name##_tx_lock, 1, 1); \
48 K_SEM_DEFINE(_name##_tx_complete, 0, 1); \
49 struct mctp_binding_i3c_target _name = { \
51 .name = STRINGIFY(_name), .version = 1, \
52 .start = mctp_i3c_target_start, \
53 .tx = mctp_i3c_target_tx, \
54 .pkt_size = MCTP_I3C_MAX_PKT_SIZE, \
56 .i3c = DEVICE_DT_GET(DT_PHANDLE(_node_id, i3c)), \
58 .callbacks = &mctp_i3c_target_callbacks, \
60 .endpoint_id = DT_PROP(_node_id, endpoint_id), \
61 .tx_lock = &_name##_tx_lock, \
62 .tx_complete = &_name##_tx_complete, \
Main header file for I3C (Inter-Integrated Circuit) driver API.
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
Runtime device structure (in ROM) per driver instance.
Definition device.h:513
Definition target_device.h:118
Structure describing a device that supports the I3C target API.
Definition target_device.h:102
Semaphore structure.
Definition kernel.h:3594
An MCTP binding for Zephyr's I3C target interface using GPIO.
Definition mctp_i3c_target.h:21