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;
33 struct mctp_pktbuf *tx_pkt;
34 struct k_sem *tx_lock;
35 struct k_sem *tx_complete;
36 struct mctp_pktbuf *rx_pkt;
37 uint8_t tx_storage[MCTP_PKTBUF_SIZE(MCTP_I3C_MAX_PKT_SIZE)] PKTBUF_STORAGE_ALIGN;
43int mctp_i3c_target_start(
struct mctp_binding *binding);
44int mctp_i3c_target_tx(
struct mctp_binding *binding,
struct mctp_pktbuf *pkt);
53#define MCTP_I3C_TARGET_DT_DEFINE(_name, _node_id) \
54 K_SEM_DEFINE(_name##_tx_lock, 1, 1); \
55 K_SEM_DEFINE(_name##_tx_complete, 0, 1); \
56 struct mctp_binding_i3c_target _name = { \
58 .name = STRINGIFY(_name), .version = 1, \
59 .start = mctp_i3c_target_start, \
60 .tx = mctp_i3c_target_tx, \
61 .pkt_size = MCTP_I3C_MAX_PKT_SIZE, \
62 .tx_storage = _name.tx_storage, \
64 .i3c = DEVICE_DT_GET(DT_PHANDLE(_node_id, i3c)), \
66 .callbacks = &mctp_i3c_target_callbacks, \
68 .endpoint_id = DT_PROP(_node_id, endpoint_id), \
69 .tx_lock = &_name##_tx_lock, \
70 .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:3798
An MCTP binding for Zephyr's I3C target interface using GPIO.
Definition mctp_i3c_target.h:27