7#ifndef ZEPHYR_INCLUDE_DRIVERS_I3C_ADDRESSES_H_ 
    8#define ZEPHYR_INCLUDE_DRIVERS_I3C_ADDRESSES_H_ 
   25#define I3C_BROADCAST_ADDR                      0x7E 
   26#define I3C_MAX_ADDR                            0x7F 
uint8_t i3c_addr_slots_next_free_find(struct i3c_addr_slots *slots)
Find the next free address.
 
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.
 
#define I3C_MAX_ADDR
Definition: addresses.h:26
 
i3c_addr_slot_status
Definition: addresses.h:30
 
static void i3c_addr_slots_mark_rsvd(struct i3c_addr_slots *addr_slots, uint8_t addr)
Mark the address as reserved in device list.
Definition: addresses.h:124
 
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.
Definition: addresses.h:150
 
bool i3c_addr_slots_is_free(struct i3c_addr_slots *slots, uint8_t dev_addr)
Check if the address is free.
 
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.
Definition: addresses.h:137
 
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.
 
int i3c_addr_slots_init(const struct device *dev)
Initialize the I3C address slots struct.
 
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.
Definition: addresses.h:111
 
@ I3C_ADDR_SLOT_STATUS_RSVD
Definition: addresses.h:32
 
@ I3C_ADDR_SLOT_STATUS_MASK
Definition: addresses.h:35
 
@ I3C_ADDR_SLOT_STATUS_I3C_DEV
Definition: addresses.h:33
 
@ I3C_ADDR_SLOT_STATUS_FREE
Definition: addresses.h:31
 
@ I3C_ADDR_SLOT_STATUS_I2C_DEV
Definition: addresses.h:34
 
#define BITS_PER_LONG
Definition: util.h:56
 
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
 
Runtime device structure (in ROM) per driver instance.
Definition: device.h:380
 
Structure to keep track of addresses on I3C bus.
Definition: addresses.h:41
 
unsigned long slots[((0x7F+1) *2)/BITS_PER_LONG]
Definition: addresses.h:43
 
Structure for describing known devices for a controller.
Definition: i3c.h:989