9.7.5.9 In-Band Interrupt (IBI) Detection and Handling
In-Band Interrupt (IBI) allows I3C target devices to initiate communication with the I3CC. The following types of IBIs are possible on an I3C bus:
- Hot-Join request from a Hot-Join capable target
- In-Band Interrupt request (IBI) from a target
- Controller-role request (CRR) from a Controller-capable target (Secondary Controller)
The I3CC must be enabled to detect (I3CC_SDA low) and receive the In-Band interrupt (IBI ID). The I3CC detects the IBI in the following scenarios:
- Upon detecting low on the I3CC_SDA input port after a Power-On-Reset (POR).
- Upon detecting an arbitration loss during an address phase of any controller-initiated transfer following a START condition (not RESTART).
- Upon detecting the I3CC_SDA input port going (not initiated by the controller) low following a STOP condition (target-initiated IBI).
The following table captures the key controls that are available that determine the response to the target-initiated IBIs and notification to the I3CC application on any rejected IBI (NACK).
IBI Context | I3CC Control |
---|---|
Controller Enable | I3CC_HC_CONTROL.BUS_ENABLE |
CRR Response Control (to target) | DAT Entry [CRR_REJECT] |
IBI Response Control (to target) | DAT Entry [IBI_REJECT] |
HJ Response Control (to target) | I3CC_HC_CONTROL.HOT_JOIN_CTRL |
CRR Reject Notify Control (to APP) | I3CC_IBI_NOTIFY_CTRL.NOTIFY_CRR_REJECTED |
IBI Reject Notify Control (to APP) | I3CC_IBI_NOTIFY_CTRL.NOTIFY_IBI_REJECTED |
HJ Reject Notify Control (to APP) | I3CC_IBI_NOTIFY_CTRL.NOTIFY_HJ_REJECTED |
IBI Payload Control | DAT Entry [IBI_PAYLOAD] |
IBI Data Chunk Size | I3CC_QUEUE_THLD_CTRL.IBI_DATA_THLD |