Lines Matching refs:ibi

407 	} ibi;  member
877 s16 ibi; member
965 data->ibi = -1; in cdns_i3c_master_attach_i3c_dev()
1320 if (id >= master->ibi.num_slots || (ibir & IBIR_ERROR)) in cdns_i3c_master_handle_ibi()
1323 dev = master->ibi.slots[id]; in cdns_i3c_master_handle_ibi()
1324 spin_lock(&master->ibi.lock); in cdns_i3c_master_handle_ibi()
1342 dev->ibi->max_payload_len); in cdns_i3c_master_handle_ibi()
1347 spin_unlock(&master->ibi.lock); in cdns_i3c_master_handle_ibi()
1423 spin_lock_irqsave(&master->ibi.lock, flags); in cdns_i3c_master_disable_ibi()
1424 sirmap = readl(master->regs + SIR_MAP_DEV_REG(data->ibi)); in cdns_i3c_master_disable_ibi()
1425 sirmap &= ~SIR_MAP_DEV_CONF_MASK(data->ibi); in cdns_i3c_master_disable_ibi()
1426 sirmap |= SIR_MAP_DEV_CONF(data->ibi, in cdns_i3c_master_disable_ibi()
1428 writel(sirmap, master->regs + SIR_MAP_DEV_REG(data->ibi)); in cdns_i3c_master_disable_ibi()
1429 spin_unlock_irqrestore(&master->ibi.lock, flags); in cdns_i3c_master_disable_ibi()
1443 spin_lock_irqsave(&master->ibi.lock, flags); in cdns_i3c_master_enable_ibi()
1444 sirmap = readl(master->regs + SIR_MAP_DEV_REG(data->ibi)); in cdns_i3c_master_enable_ibi()
1445 sirmap &= ~SIR_MAP_DEV_CONF_MASK(data->ibi); in cdns_i3c_master_enable_ibi()
1454 sirmap |= SIR_MAP_DEV_CONF(data->ibi, sircfg); in cdns_i3c_master_enable_ibi()
1455 writel(sirmap, master->regs + SIR_MAP_DEV_REG(data->ibi)); in cdns_i3c_master_enable_ibi()
1456 spin_unlock_irqrestore(&master->ibi.lock, flags); in cdns_i3c_master_enable_ibi()
1461 spin_lock_irqsave(&master->ibi.lock, flags); in cdns_i3c_master_enable_ibi()
1462 sirmap = readl(master->regs + SIR_MAP_DEV_REG(data->ibi)); in cdns_i3c_master_enable_ibi()
1463 sirmap &= ~SIR_MAP_DEV_CONF_MASK(data->ibi); in cdns_i3c_master_enable_ibi()
1464 sirmap |= SIR_MAP_DEV_CONF(data->ibi, in cdns_i3c_master_enable_ibi()
1466 writel(sirmap, master->regs + SIR_MAP_DEV_REG(data->ibi)); in cdns_i3c_master_enable_ibi()
1467 spin_unlock_irqrestore(&master->ibi.lock, flags); in cdns_i3c_master_enable_ibi()
1486 spin_lock_irqsave(&master->ibi.lock, flags); in cdns_i3c_master_request_ibi()
1487 for (i = 0; i < master->ibi.num_slots; i++) { in cdns_i3c_master_request_ibi()
1488 if (!master->ibi.slots[i]) { in cdns_i3c_master_request_ibi()
1489 data->ibi = i; in cdns_i3c_master_request_ibi()
1490 master->ibi.slots[i] = dev; in cdns_i3c_master_request_ibi()
1494 spin_unlock_irqrestore(&master->ibi.lock, flags); in cdns_i3c_master_request_ibi()
1496 if (i < master->ibi.num_slots) in cdns_i3c_master_request_ibi()
1512 spin_lock_irqsave(&master->ibi.lock, flags); in cdns_i3c_master_free_ibi()
1513 master->ibi.slots[data->ibi] = NULL; in cdns_i3c_master_free_ibi()
1514 data->ibi = -1; in cdns_i3c_master_free_ibi()
1515 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()