| 
    Zephyr Project API
    3.3.0
    
   A Scalable Open Source RTOS 
   | 
 
#include <zephyr/types.h>#include <zephyr/device.h>#include <zephyr/drivers/i3c/addresses.h>#include <zephyr/drivers/i3c/ccc.h>#include <zephyr/drivers/i3c/devicetree.h>#include <zephyr/drivers/i3c/ibi.h>#include <zephyr/drivers/i2c.h>#include <zephyr/drivers/i3c/target_device.h>#include <syscalls/i3c.h>Go to the source code of this file.
Data Structures | |
| struct | i3c_msg | 
| One I3C Message.  More... | |
| struct | i3c_config_controller | 
| Configuration parameters for I3C hardware to act as controller.  More... | |
| struct | i3c_config_custom | 
| Custom I3C configuration parameters.  More... | |
| struct | i3c_device_id | 
| Structure used for matching I3C devices.  More... | |
| struct | i3c_device_desc | 
| Structure describing a I3C target device.  More... | |
| struct | i3c_i2c_device_desc | 
| Structure describing a I2C device on I3C bus.  More... | |
| struct | i3c_dev_list | 
| Structure for describing attached devices for a controller.  More... | |
Functions | |
| struct i3c_device_desc * | i3c_dev_list_find (const struct i3c_dev_list *dev_list, const struct i3c_device_id *id) | 
| Find a I3C target device descriptor by ID.  More... | |
| struct i3c_device_desc * | i3c_dev_list_i3c_addr_find (const struct i3c_dev_list *dev_list, uint8_t addr) | 
| Find a I3C target device descriptor by dynamic address.  More... | |
| struct i3c_i2c_device_desc * | i3c_dev_list_i2c_addr_find (const struct i3c_dev_list *dev_list, uint16_t addr) | 
| Find a I2C target device descriptor by address.  More... | |
| int | i3c_dev_list_daa_addr_helper (struct i3c_addr_slots *addr_slots, const struct i3c_dev_list *dev_list, uint64_t pid, bool must_match, bool assigned_okay, struct i3c_device_desc **target, uint8_t *addr) | 
| Helper function to find a usable address during ENTDAA.  More... | |
| static int | i3c_configure (const struct device *dev, enum i3c_config_type type, void *config) | 
| Configure the I3C hardware.  More... | |
| static int | i3c_config_get (const struct device *dev, enum i3c_config_type type, void *config) | 
| Get configuration of the I3C hardware.  More... | |
| static int | i3c_recover_bus (const struct device *dev) | 
| Attempt bus recovery on the I3C bus.  More... | |
| static int | i3c_do_daa (const struct device *dev) | 
| Perform Dynamic Address Assignment on the I3C bus.  More... | |
| int | i3c_do_ccc (const struct device *dev, struct i3c_ccc_payload *payload) | 
| Send CCC to the bus.  More... | |
| int | i3c_transfer (struct i3c_device_desc *target, struct i3c_msg *msgs, uint8_t num_msgs) | 
| Perform data transfer from the controller to a I3C target device.  More... | |
| static struct i3c_device_desc * | i3c_device_find (const struct device *dev, const struct i3c_device_id *id) | 
| static int | i3c_ibi_raise (const struct device *dev, struct i3c_ibi *request) | 
| Raise an In-Band Interrupt (IBI).  More... | |
| static int | i3c_ibi_enable (struct i3c_device_desc *target) | 
| Enable IBI of a target device.  More... | |
| static int | i3c_ibi_disable (struct i3c_device_desc *target) | 
| Disable IBI of a target device.  More... | |
| static int | i3c_ibi_has_payload (struct i3c_device_desc *target) | 
| Check if target's IBI has payload.  More... | |
| static int | i3c_device_is_ibi_capable (struct i3c_device_desc *target) | 
| Check if device is IBI capable.  More... | |
| static int | i3c_write (struct i3c_device_desc *target, const uint8_t *buf, uint32_t num_bytes) | 
| Write a set amount of data to an I3C target device.  More... | |
| static int | i3c_read (struct i3c_device_desc *target, uint8_t *buf, uint32_t num_bytes) | 
| Read a set amount of data from an I3C target device.  More... | |
| static int | i3c_write_read (struct i3c_device_desc *target, const void *write_buf, size_t num_write, void *read_buf, size_t num_read) | 
| Write then read data from an I3C target device.  More... | |
| static int | i3c_burst_read (struct i3c_device_desc *target, uint8_t start_addr, uint8_t *buf, uint32_t num_bytes) | 
| Read multiple bytes from an internal address of an I3C target device.  More... | |
| static int | i3c_burst_write (struct i3c_device_desc *target, uint8_t start_addr, const uint8_t *buf, uint32_t num_bytes) | 
| Write multiple bytes to an internal address of an I3C target device.  More... | |
| static int | i3c_reg_read_byte (struct i3c_device_desc *target, uint8_t reg_addr, uint8_t *value) | 
| Read internal register of an I3C target device.  More... | |
| static int | i3c_reg_write_byte (struct i3c_device_desc *target, uint8_t reg_addr, uint8_t value) | 
| Write internal register of an I3C target device.  More... | |
| static int | i3c_reg_update_byte (struct i3c_device_desc *target, uint8_t reg_addr, uint8_t mask, uint8_t value) | 
| Update internal register of an I3C target device.  More... | |
| void | i3c_dump_msgs (const char *name, const struct i3c_msg *msgs, uint8_t num_msgs, struct i3c_device_desc *target) | 
| Dump out an I3C message.  More... | |
| int | i3c_bus_init (const struct device *dev, const struct i3c_dev_list *i3c_dev_list) | 
| Generic helper function to perform bus initialization.  More... | |
| int | i3c_device_basic_info_get (struct i3c_device_desc *target) | 
| Get basic information from device and update device descriptor.  More... | |