OpenBIC
OpenSource Bridge-IC
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
hal_i3c.h File Reference
#include <zephyr.h>
#include <drivers/i3c/i3c.h>
Include dependency graph for hal_i3c.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _I3C_MSG_
 
struct  _i3c_ibi_dev
 

Macros

#define DEV_I3C(n)   DEV_I3C_##n
 
#define DEV_I3CSMQ(n)   DEV_I3CSMQ_##n
 
#define I3C_MAX_NUM   8
 
#define I3C_MAX_DATA_SIZE   256
 
#define I3C_DEBUG   0
 
#define I3C_SMQ_SUCCESS   0
 
#define I3C_MAX_BUFFER_COUNT   2
 
#define IBI_PAYLOAD_SIZE   128
 
#define I3C_DEV_STR_LEN   8
 
#define I3C_BUS_STR_LEN   4
 

Typedefs

typedef struct _I3C_MSG_ I3C_MSG
 
typedef struct _i3c_ibi_dev i3c_ibi_dev
 

Enumerations

enum  I3C_WRITE_READ_CMD { I3C_WRITE_CMD = 0 , I3C_READ_CMD }
 

Functions

void util_init_i3c (void)
 
int i3c_mutex_lock (int bus)
 
int i3c_mutex_unlock (int bus)
 
int i3c_smq_read (I3C_MSG *msg)
 api to read i3c message from target message queue More...
 
int i3c_smq_write (I3C_MSG *msg)
 api to write i3c message to target message queue More...
 
int i3c_slave_mqueue_read (const struct device *dev, uint8_t *dest, int budget)
 
int i3c_slave_mqueue_write (const struct device *dev, uint8_t *src, int size)
 
int i3c_attach (I3C_MSG *msg)
 
int i3c_detach (I3C_MSG *msg)
 
int i3c_transfer (I3C_MSG *msg)
 
int i3c_brocast_ccc (I3C_MSG *msg, uint8_t ccc_id, uint8_t ccc_addr)
 
int i3c_spd_reg_read (I3C_MSG *msg, bool is_nvm)
 
int i3c_set_pid (I3C_MSG *msg, uint16_t slot_pid)
 
int i3c_controller_write (I3C_MSG *msg)
 
int i3c_controller_ibi_init (I3C_MSG *msg)
 
int i3c_controller_ibi_read (I3C_MSG *msg)
 
int i3c_target_set_address (I3C_MSG *msg)
 
int i3c_target_get_dynamic_address (I3C_MSG *msg, uint8_t *dynamic_addr)
 
__weak bool pal_get_slot_pid (uint16_t *pid)
 

Macro Definition Documentation

◆ DEV_I3C

#define DEV_I3C (   n)    DEV_I3C_##n

◆ DEV_I3CSMQ

#define DEV_I3CSMQ (   n)    DEV_I3CSMQ_##n

◆ I3C_BUS_STR_LEN

#define I3C_BUS_STR_LEN   4

◆ I3C_DEBUG

#define I3C_DEBUG   0

◆ I3C_DEV_STR_LEN

#define I3C_DEV_STR_LEN   8

◆ I3C_MAX_BUFFER_COUNT

#define I3C_MAX_BUFFER_COUNT   2

◆ I3C_MAX_DATA_SIZE

#define I3C_MAX_DATA_SIZE   256

◆ I3C_MAX_NUM

#define I3C_MAX_NUM   8

◆ I3C_SMQ_SUCCESS

#define I3C_SMQ_SUCCESS   0

◆ IBI_PAYLOAD_SIZE

#define IBI_PAYLOAD_SIZE   128

Typedef Documentation

◆ i3c_ibi_dev

typedef struct _i3c_ibi_dev i3c_ibi_dev

◆ I3C_MSG

typedef struct _I3C_MSG_ I3C_MSG

Enumeration Type Documentation

◆ I3C_WRITE_READ_CMD

Enumerator
I3C_WRITE_CMD 
I3C_READ_CMD 

Function Documentation

◆ i3c_attach()

int i3c_attach ( I3C_MSG msg)

◆ i3c_brocast_ccc()

int i3c_brocast_ccc ( I3C_MSG msg,
uint8_t  ccc_id,
uint8_t  ccc_addr 
)

◆ i3c_controller_ibi_init()

int i3c_controller_ibi_init ( I3C_MSG msg)

◆ i3c_controller_ibi_read()

int i3c_controller_ibi_read ( I3C_MSG msg)

◆ i3c_controller_write()

int i3c_controller_write ( I3C_MSG msg)

◆ i3c_detach()

int i3c_detach ( I3C_MSG msg)

◆ i3c_mutex_lock()

int i3c_mutex_lock ( int  bus)

◆ i3c_mutex_unlock()

int i3c_mutex_unlock ( int  bus)

◆ i3c_set_pid()

int i3c_set_pid ( I3C_MSG msg,
uint16_t  slot_pid 
)

◆ i3c_slave_mqueue_read()

int i3c_slave_mqueue_read ( const struct device *  dev,
uint8_t *  dest,
int  budget 
)

◆ i3c_slave_mqueue_write()

int i3c_slave_mqueue_write ( const struct device *  dev,
uint8_t *  src,
int  size 
)

◆ i3c_smq_read()

int i3c_smq_read ( I3C_MSG msg)

api to read i3c message from target message queue

Parameters
msgi3c message structure
Returns
ret: return the data size

◆ i3c_smq_write()

int i3c_smq_write ( I3C_MSG msg)

api to write i3c message to target message queue

Parameters
msgi3c message structure
Returns
0: api to write i3c message to target message queue

◆ i3c_spd_reg_read()

int i3c_spd_reg_read ( I3C_MSG msg,
bool  is_nvm 
)

◆ i3c_target_get_dynamic_address()

int i3c_target_get_dynamic_address ( I3C_MSG msg,
uint8_t *  dynamic_addr 
)

◆ i3c_target_set_address()

int i3c_target_set_address ( I3C_MSG msg)

◆ i3c_transfer()

int i3c_transfer ( I3C_MSG msg)

◆ pal_get_slot_pid()

__weak bool pal_get_slot_pid ( uint16_t *  pid)

◆ util_init_i3c()

void util_init_i3c ( void  )