Lines Matching refs:ibi
407 } ibi; member
877 s16 ibi; member
964 data->ibi = -1; in cdns_i3c_master_attach_i3c_dev()
1319 if (id >= master->ibi.num_slots || (ibir & IBIR_ERROR)) in cdns_i3c_master_handle_ibi()
1322 dev = master->ibi.slots[id]; in cdns_i3c_master_handle_ibi()
1323 spin_lock(&master->ibi.lock); in cdns_i3c_master_handle_ibi()
1341 dev->ibi->max_payload_len); in cdns_i3c_master_handle_ibi()
1346 spin_unlock(&master->ibi.lock); in cdns_i3c_master_handle_ibi()
1422 spin_lock_irqsave(&master->ibi.lock, flags); in cdns_i3c_master_disable_ibi()
1423 sirmap = readl(master->regs + SIR_MAP_DEV_REG(data->ibi)); in cdns_i3c_master_disable_ibi()
1424 sirmap &= ~SIR_MAP_DEV_CONF_MASK(data->ibi); in cdns_i3c_master_disable_ibi()
1425 sirmap |= SIR_MAP_DEV_CONF(data->ibi, in cdns_i3c_master_disable_ibi()
1427 writel(sirmap, master->regs + SIR_MAP_DEV_REG(data->ibi)); in cdns_i3c_master_disable_ibi()
1428 spin_unlock_irqrestore(&master->ibi.lock, flags); in cdns_i3c_master_disable_ibi()
1442 spin_lock_irqsave(&master->ibi.lock, flags); in cdns_i3c_master_enable_ibi()
1443 sirmap = readl(master->regs + SIR_MAP_DEV_REG(data->ibi)); in cdns_i3c_master_enable_ibi()
1444 sirmap &= ~SIR_MAP_DEV_CONF_MASK(data->ibi); in cdns_i3c_master_enable_ibi()
1453 sirmap |= SIR_MAP_DEV_CONF(data->ibi, sircfg); in cdns_i3c_master_enable_ibi()
1454 writel(sirmap, master->regs + SIR_MAP_DEV_REG(data->ibi)); in cdns_i3c_master_enable_ibi()
1455 spin_unlock_irqrestore(&master->ibi.lock, flags); in cdns_i3c_master_enable_ibi()
1460 spin_lock_irqsave(&master->ibi.lock, flags); in cdns_i3c_master_enable_ibi()
1461 sirmap = readl(master->regs + SIR_MAP_DEV_REG(data->ibi)); in cdns_i3c_master_enable_ibi()
1462 sirmap &= ~SIR_MAP_DEV_CONF_MASK(data->ibi); in cdns_i3c_master_enable_ibi()
1463 sirmap |= SIR_MAP_DEV_CONF(data->ibi, in cdns_i3c_master_enable_ibi()
1465 writel(sirmap, master->regs + SIR_MAP_DEV_REG(data->ibi)); in cdns_i3c_master_enable_ibi()
1466 spin_unlock_irqrestore(&master->ibi.lock, flags); in cdns_i3c_master_enable_ibi()
1485 spin_lock_irqsave(&master->ibi.lock, flags); in cdns_i3c_master_request_ibi()
1486 for (i = 0; i < master->ibi.num_slots; i++) { in cdns_i3c_master_request_ibi()
1487 if (!master->ibi.slots[i]) { in cdns_i3c_master_request_ibi()
1488 data->ibi = i; in cdns_i3c_master_request_ibi()
1489 master->ibi.slots[i] = dev; in cdns_i3c_master_request_ibi()
1493 spin_unlock_irqrestore(&master->ibi.lock, flags); in cdns_i3c_master_request_ibi()
1495 if (i < master->ibi.num_slots) in cdns_i3c_master_request_ibi()
1511 spin_lock_irqsave(&master->ibi.lock, flags); in cdns_i3c_master_free_ibi()
1512 master->ibi.slots[data->ibi] = NULL; in cdns_i3c_master_free_ibi()
1513 data->ibi = -1; in cdns_i3c_master_free_ibi()
1514 spin_unlock_irqrestore(&master->ibi.lock, flags); in cdns_i3c_master_free_ibi()
1635 spin_lock_init(&master->ibi.lock); in cdns_i3c_master_probe()
1636 master->ibi.num_slots = CONF_STATUS1_IBI_HW_RES(val); in cdns_i3c_master_probe()
1637 master->ibi.slots = devm_kcalloc(&pdev->dev, master->ibi.num_slots, in cdns_i3c_master_probe()
1638 sizeof(*master->ibi.slots), in cdns_i3c_master_probe()
1640 if (!master->ibi.slots) { in cdns_i3c_master_probe()