Zephyr Project API  3.2.0
A Scalable Open Source RTOS
addresses.h File Reference
#include <zephyr/types.h>
#include <zephyr/sys/sys_io.h>
#include <zephyr/sys/util.h>

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
 
#define I3C_MAX_ADDR   0x7F
 

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
}
 

Functions

int i3c_addr_slots_init (struct i3c_addr_slots *slots, const struct i3c_dev_list *dev_list)
 Initialize the I3C address slots struct. More...
 
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. More...
 
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. More...
 
bool i3c_addr_slots_is_free (struct i3c_addr_slots *slots, uint8_t dev_addr)
 Check if the address is free. More...
 
uint8_t i3c_addr_slots_next_free_find (struct i3c_addr_slots *slots)
 Find the next free address. More...
 
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. More...
 
static void i3c_addr_slots_mark_rsvd (struct i3c_addr_slots *addr_slots, uint8_t addr)
 Mark the address as reserved in device list. More...
 
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. More...
 
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. More...