i3c: add addr and lvr to i2c_dev_desc structure
I need to store address and lvr value for I2C devices without static definition in DT. This allows secondary master to transmit DEFSLVS command properly. Main changes between v4 and v5: - Change in defslvs to use addr and lvr from i2c_dev_desc structure - Change in CDNS and DW drivers to use addr and lvr from i2c_dev_desc structure Signed-off-by: Przemyslaw Gaj <pgaj@cadence.com> Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
This commit is contained in:
committed by
Boris Brezillon
parent
fd3f8f3118
commit
b1ac3a4b9a
@@ -600,6 +600,8 @@ i3c_master_alloc_i2c_dev(struct i3c_master_controller *master,
|
||||
|
||||
dev->common.master = master;
|
||||
dev->boardinfo = boardinfo;
|
||||
dev->addr = boardinfo->base.addr;
|
||||
dev->lvr = boardinfo->lvr;
|
||||
|
||||
return dev;
|
||||
}
|
||||
@@ -918,8 +920,8 @@ int i3c_master_defslvs_locked(struct i3c_master_controller *master)
|
||||
|
||||
desc = defslvs->slaves;
|
||||
i3c_bus_for_each_i2cdev(bus, i2cdev) {
|
||||
desc->lvr = i2cdev->boardinfo->lvr;
|
||||
desc->static_addr = i2cdev->boardinfo->base.addr << 1;
|
||||
desc->lvr = i2cdev->lvr;
|
||||
desc->static_addr = i2cdev->addr << 1;
|
||||
desc++;
|
||||
}
|
||||
|
||||
@@ -1586,8 +1588,8 @@ static void i3c_master_detach_free_devs(struct i3c_master_controller *master)
|
||||
common.node) {
|
||||
i3c_master_detach_i2c_dev(i2cdev);
|
||||
i3c_bus_set_addr_slot_status(&master->bus,
|
||||
i2cdev->boardinfo->base.addr,
|
||||
I3C_ADDR_SLOT_FREE);
|
||||
i2cdev->addr,
|
||||
I3C_ADDR_SLOT_FREE);
|
||||
i3c_master_free_i2c_dev(i2cdev);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user