OpenBIC
OpenSource Bridge-IC
hal_i3c.c File Reference
#include "hal_i3c.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <zephyr.h>
#include <logging/log.h>
#include "libutil.h"
Include dependency graph for hal_i3c.c:

Functions

 LOG_MODULE_REGISTER (hal_i3c)
 
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_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_attach (I3C_MSG *msg)
 
int i3c_detach (I3C_MSG *msg)
 
int i3c_brocast_ccc (I3C_MSG *msg, uint8_t ccc_id, uint8_t ccc_addr)
 
int i3c_transfer (I3C_MSG *msg)
 
int i3c_spd_reg_read (I3C_MSG *msg, bool is_nvm)
 
int i3c_controller_write (I3C_MSG *msg)
 
int i3c_set_pid (I3C_MSG *msg, uint16_t slot_pid)
 
void util_init_i3c (void)
 
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)
 
int i3c_mutex_lock (int bus)
 
int i3c_mutex_unlock (int bus)
 

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)

◆ LOG_MODULE_REGISTER()

LOG_MODULE_REGISTER ( hal_i3c  )

◆ pal_get_slot_pid()

__weak bool pal_get_slot_pid ( uint16_t *  pid)

◆ util_init_i3c()

void util_init_i3c ( void  )