14#ifndef ZEPHYR_INCLUDE_PMCI_MCTP_MCTP_I3C_TARGET_H_
15#define ZEPHYR_INCLUDE_PMCI_MCTP_MCTP_I3C_TARGET_H_
29 struct mctp_binding binding;
34 struct mctp_pktbuf *tx_pkt;
35 struct k_sem *tx_lock;
36 struct k_sem *tx_complete;
37 struct mctp_pktbuf *rx_pkt;
38 uint8_t tx_storage[MCTP_PKTBUF_SIZE(MCTP_I3C_MAX_PKT_SIZE)] PKTBUF_STORAGE_ALIGN;
45int mctp_i3c_target_start(
struct mctp_binding *binding);
46int mctp_i3c_target_tx(
struct mctp_binding *binding,
struct mctp_pktbuf *pkt);
55#define MCTP_I3C_TARGET_DT_DEFINE(_name, _node_id) \
56 K_SEM_DEFINE(_name##_tx_lock, 1, 1); \
57 K_SEM_DEFINE(_name##_tx_complete, 0, 1); \
58 struct mctp_binding_i3c_target _name = { \
60 .name = STRINGIFY(_name), .version = 1, \
61 .start = mctp_i3c_target_start, \
62 .tx = mctp_i3c_target_tx, \
63 .pkt_size = MCTP_I3C_MAX_PKT_SIZE, \
64 .tx_storage = _name.tx_storage, \
66 .i3c = DEVICE_DT_GET(DT_PHANDLE(_node_id, i3c)), \
68 .callbacks = &mctp_i3c_target_callbacks, \
70 .endpoint_id = DT_PROP(_node_id, endpoint_id), \
71 .tx_lock = &_name##_tx_lock, \
72 .tx_complete = &_name##_tx_complete, \
Main header file for I3C (Inter-Integrated Circuit) driver API.
Internal definitions shared by the MCTP I3C controller and target bindings.
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
Runtime device structure (in ROM) per driver instance.
Definition device.h:513
Definition target_device.h:106
Structure describing a device that supports the I3C target API.
Definition target_device.h:101
Semaphore structure.
Definition kernel.h:3807
An MCTP binding for Zephyr's I3C target interface using GPIO.
Definition mctp_i3c_target.h:27