Zephyr Project API 3.7.0
A Scalable Open Source RTOS
|
Go to the source code of this file.
Data Structures | |
struct | i3c_addr_slots |
Structure to keep track of addresses on I3C bus. More... | |
Macros | |
#define | I3C_BROADCAST_ADDR 0x7E |
Broadcast Address on I3C bus. | |
#define | I3C_MAX_ADDR 0x7F |
Maximum value of device addresses. | |
Enumerations | |
enum | i3c_addr_slot_status { I3C_ADDR_SLOT_STATUS_FREE = 0U , I3C_ADDR_SLOT_STATUS_RSVD , I3C_ADDR_SLOT_STATUS_I3C_DEV , I3C_ADDR_SLOT_STATUS_I2C_DEV , I3C_ADDR_SLOT_STATUS_MASK = 0x03U } |
Enum to indicate whether an address is reserved, has I2C/I3C device attached, or no device attached. More... | |
Functions | |
int | i3c_addr_slots_init (const struct device *dev) |
Initialize the I3C address slots struct. | |
void | i3c_addr_slots_set (struct i3c_addr_slots *slots, uint8_t dev_addr, enum i3c_addr_slot_status status) |
Set the address status of a device. | |
enum i3c_addr_slot_status | i3c_addr_slots_status (struct i3c_addr_slots *slots, uint8_t dev_addr) |
Get the address status of a device. | |
bool | i3c_addr_slots_is_free (struct i3c_addr_slots *slots, uint8_t dev_addr) |
Check if the address is free. | |
uint8_t | i3c_addr_slots_next_free_find (struct i3c_addr_slots *slots, uint8_t start_addr) |
Find the next free address. | |
static void | i3c_addr_slots_mark_free (struct i3c_addr_slots *addr_slots, uint8_t addr) |
Mark the address as free (not used) in device list. | |
static void | i3c_addr_slots_mark_rsvd (struct i3c_addr_slots *addr_slots, uint8_t addr) |
Mark the address as reserved in device list. | |
static void | i3c_addr_slots_mark_i3c (struct i3c_addr_slots *addr_slots, uint8_t addr) |
Mark the address as I3C device in device list. | |
static void | i3c_addr_slots_mark_i2c (struct i3c_addr_slots *addr_slots, uint8_t addr) |
Mark the address as I2C device in device list. | |