7#ifndef ZEPHYR_INCLUDE_DRIVERS_MISC_TT_GRENDEL_I3C_H_
8#define ZEPHYR_INCLUDE_DRIVERS_MISC_TT_GRENDEL_I3C_H_
38#define TT_GRENDEL_I3C_CMD_PING 0x01U
48#define TT_GRENDEL_I3C_CMD_D2D_INIT 0x02U
54#define TT_GRENDEL_I3C_CMD_D2D_START 0x03U
71#define TT_GRENDEL_I3C_CMD_PAYLOAD_MAX_LEN sizeof(struct tt_grendel_i3c_d2d_req)
Command frame, written by the controller.
Definition tt_grendel_i3c.h:80
uint8_t opcode
Definition tt_grendel_i3c.h:82
uint8_t payload[sizeof(struct tt_grendel_i3c_d2d_req)]
Definition tt_grendel_i3c.h:83
Payload for TT_GRENDEL_I3C_CMD_D2D_INIT and TT_GRENDEL_I3C_CMD_D2D_START.
Definition tt_grendel_i3c.h:65
uint8_t instance
Definition tt_grendel_i3c.h:67
Response frame, written by the target once a command has run.
Definition tt_grendel_i3c.h:87
uint8_t reserved[2]
Definition tt_grendel_i3c.h:92
uint8_t opcode
Definition tt_grendel_i3c.h:91
uint8_t result
Definition tt_grendel_i3c.h:89
struct fw_bundle_manifest __packed
BUILD_ASSERT(sizeof(struct tt_grendel_i3c_response)==4, "response frame must stay 4 bytes")
int tt_grendel_i3c_d2d_start(const struct device *dev, uint8_t instance, k_timeout_t timeout)
Release D2D tile instance's Rocket on the remote die so its loaded firmware runs.
Definition tt_grendel_i3c_controller.c:171
int tt_grendel_i3c_wait_ready(const struct device *dev, k_timeout_t timeout)
Wait until the remote die is on the bus and answering.
Definition tt_grendel_i3c_controller.c:84
tt_grendel_i3c_result
Result reported in tt_grendel_i3c_response.
Definition tt_grendel_i3c.h:57
@ TT_GRENDEL_I3C_OK
Definition tt_grendel_i3c.h:59
@ TT_GRENDEL_I3C_NOT_OK
Definition tt_grendel_i3c.h:61
int tt_grendel_i3c_d2d_init(const struct device *dev, uint8_t instance, k_timeout_t timeout)
Reset-release D2D tile instance on the remote die and load its firmware.
Definition tt_grendel_i3c_controller.c:164
#define TT_GRENDEL_I3C_CMD_PAYLOAD_MAX_LEN
Largest payload carried by any TT_GRENDEL_I3C_CMD_* opcode.
Definition tt_grendel_i3c.h:71