21#include <drivers/i3c/i3c.h>
23#if DT_NODE_HAS_STATUS(DT_NODELABEL(i3c0), okay)
27#if DT_NODE_HAS_STATUS(DT_NODELABEL(i3c1), okay)
31#if DT_NODE_HAS_STATUS(DT_NODELABEL(i3c2), okay)
35#if DT_NODE_HAS_STATUS(DT_NODELABEL(i3c3), okay)
39#if DT_NODE_HAS_STATUS(DT_NODELABEL(i3c4), okay)
43#if DT_NODE_HAS_STATUS(DT_NODELABEL(i3c5), okay)
47#if DT_NODE_HAS_STATUS(DT_NODELABEL(i3c6), okay)
51#if DT_NODE_HAS_STATUS(DT_NODELABEL(i3c7), okay)
55#if DT_NODE_EXISTS(DT_NODELABEL(i3c0_smq))
59#if DT_NODE_EXISTS(DT_NODELABEL(i3c1_smq))
63#if DT_NODE_EXISTS(DT_NODELABEL(i3c2_smq))
67#if DT_NODE_EXISTS(DT_NODELABEL(i3c3_smq))
71#if DT_NODE_EXISTS(DT_NODELABEL(i3c4_smq))
75#if DT_NODE_EXISTS(DT_NODELABEL(i3c5_smq))
79#if DT_NODE_EXISTS(DT_NODELABEL(i3c6_smq))
83#if DT_NODE_EXISTS(DT_NODELABEL(i3c7_smq))
87#define DEV_I3C(n) DEV_I3C_##n
88#define DEV_I3CSMQ(n) DEV_I3CSMQ_##n
91#define I3C_MAX_DATA_SIZE 256
93#define I3C_SMQ_SUCCESS 0
94#define I3C_MAX_BUFFER_COUNT 2
95#define IBI_PAYLOAD_SIZE 128
97#define I3C_DEV_STR_LEN 8
98#define I3C_BUS_STR_LEN 4
int i3c_brocast_ccc(I3C_MSG *msg, uint8_t ccc_id, uint8_t ccc_addr)
Definition: hal_i3c.c:215
int i3c_mutex_lock(int bus)
Definition: hal_i3c.c:741
struct _i3c_ibi_dev i3c_ibi_dev
int i3c_target_get_dynamic_address(I3C_MSG *msg, uint8_t *dynamic_addr)
Definition: hal_i3c.c:710
int i3c_smq_write(I3C_MSG *msg)
api to write i3c message to target message queue
Definition: hal_i3c.c:97
int i3c_controller_write(I3C_MSG *msg)
Definition: hal_i3c.c:343
void util_init_i3c(void)
Definition: hal_i3c.c:421
int i3c_detach(I3C_MSG *msg)
Definition: hal_i3c.c:173
__weak bool pal_get_slot_pid(uint16_t *pid)
Definition: hal_i3c.c:736
int i3c_target_set_address(I3C_MSG *msg)
Definition: hal_i3c.c:685
#define I3C_MAX_DATA_SIZE
Definition: hal_i3c.h:91
int i3c_controller_ibi_read(I3C_MSG *msg)
Definition: hal_i3c.c:630
I3C_WRITE_READ_CMD
Definition: hal_i3c.h:100
@ I3C_READ_CMD
Definition: hal_i3c.h:102
@ I3C_WRITE_CMD
Definition: hal_i3c.h:101
int i3c_set_pid(I3C_MSG *msg, uint16_t slot_pid)
Definition: hal_i3c.c:381
int i3c_spd_reg_read(I3C_MSG *msg, bool is_nvm)
Definition: hal_i3c.c:296
int i3c_mutex_unlock(int bus)
Definition: hal_i3c.c:756
int i3c_slave_mqueue_write(const struct device *dev, uint8_t *src, int size)
int i3c_smq_read(I3C_MSG *msg)
api to read i3c message from target message queue
Definition: hal_i3c.c:66
int i3c_controller_ibi_init(I3C_MSG *msg)
Definition: hal_i3c.c:556
int i3c_transfer(I3C_MSG *msg)
Definition: hal_i3c.c:251
int i3c_attach(I3C_MSG *msg)
Definition: hal_i3c.c:131
int i3c_slave_mqueue_read(const struct device *dev, uint8_t *dest, int budget)
const struct device * dev
Definition: hal_peci.c:28
uint16_t size
Definition: pldm_oem.h:0
Definition: hal_i3c.h:105
uint8_t target_addr
Definition: hal_i3c.h:107
uint8_t tx_len
Definition: hal_i3c.h:108
uint8_t data[I3C_MAX_DATA_SIZE]
Definition: hal_i3c.h:110
int rx_len
Definition: hal_i3c.h:109
uint8_t bus
Definition: hal_i3c.h:106
Definition: hal_i3c.h:113
struct i3c_ibi_payload i3c_payload
Definition: hal_i3c.h:115
struct k_sem ibi_complete
Definition: hal_i3c.h:116
uint8_t data_rx[I3C_MAX_DATA_SIZE]
Definition: hal_i3c.h:114