Skip to content

Commit 6d01483

Browse files
xodus7kartben
authored andcommitted
drivers: i3c: i3c_dw: skip I3C bus init on pure I2C buses
If the bus is only used I2C we can skip I3C bus initialization which will send a number of unnecessary CCC transactions. Signed-off-by: Corey Wharton <[email protected]>
1 parent a19429e commit 6d01483

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

drivers/i3c/i3c_dw.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2312,8 +2312,10 @@ static int dw_i3c_init(const struct device *dev)
23122312
if (ret) {
23132313
return ret;
23142314
}
2315-
/* Perform bus initialization */
2316-
ret = i3c_bus_init(dev, &config->common.dev_list);
2315+
/* Perform bus initialization - skip if no I3C devices are known. */
2316+
if (config->common.dev_list.num_i3c > 0) {
2317+
ret = i3c_bus_init(dev, &config->common.dev_list);
2318+
}
23172319
/* Bus Initialization Complete, allow HJ ACKs */
23182320
sys_write32(sys_read32(config->regs + DEVICE_CTRL) & ~(DEV_CTRL_HOT_JOIN_NACK),
23192321
config->regs + DEVICE_CTRL);

0 commit comments

Comments
 (0)