Detecting Dead Bus
When the Target application randomly requests an IBI (In-Band Interrupt) or CRR (Controller Role Request) and finds no response within 50 ms (expected to be handled by the application), it is treated as a Dead Bus scenario. The sequence of steps to initiate the IBI/CRR is as follows:
Set I3CxCLTINT[SIRCTRL] = 01/00b (to raise IBI/CRR) and I3CxCLTINT[SIR] = 1b. Program an external timer with 50 ms. The Target application waits for a response based on the polling or interrupt method.
Polling Method: Poll I3CxCLTINT[SIR]. If it is 0, then there is no error scenario, and reset the timer. Otherwise, if the timer expires and I3CxCLTINT[SIR] is still not 0, then the I3C bus is in Dead Mode, and it is recommended to follow the recovery sequence.
Interrupt Method: The Target application must wait for the IBI completion status interrupt I3CxINTSTA[IBIUPDSTA] and then read the I3CxCLTIBIRESP[IBISTAT] field to check if the Controller accepts IBI. In the meantime, if the timer expires and the application layer does not receive any interrupt, then the I3C bus is in Dead mode and should follow the recovery sequence.
