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 I3CxTGTINT[SIRCTRL] = 01/00b (to raise IBI/CRR) and I3CxTGTINT[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 I3CxTGTINT[SIR]. If it is 0, then there is no error scenario, and reset the timer. Otherwise, if the timer expires and I3CxTGTINT[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 I3CxTGTIBIRESP[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.
