9.7.5.4.2 Clock Stalling Conditions
The I3CC stalls I3CC_SCL clock during specific scenarios of non-HDR transfers. This is to accommodate intermittent system latencies during command pipelining, transmit data pre-fetching, response reading, and so on. The I3CC also provides additional options in the form of Start Thresholds and Buffer Thresholds to avoid clock stalling.
Clock stalling is a feature that helps avoid overrun and underrun errors when the I3CC is in SDR mode.
| Transfer Command | Previous Command Condition | Condition to Enter Clock Stalling |
|---|---|---|
| I3C/I2C Transfer, ACK/NACK Phase | ||
| Write Transfer Regular command | TOC bit set to '0' | Transmit FIFO is empty |
| Read Transfer Regular command | TOC bit set to '0' | Receive FIFO is full |
| Follow-up Directed CCC command without payload (Immediate/Regular) (Not 1st Directed CCC command) | Previous Directed CCC command, TOC bit set to '0' | CMD-QUEUE is empty. |
| Broadcast CCC Transfer with Regular command | TOC bit set to '0' | Transmit FIFO is empty |
| Directed CCC Write Transfer Regular command | TOC bit set to '0' | Transmit FIFO is empty |
| Directed CCC Read Transfer Regular command | TOC bit set to '0' | Receive FIFO is full |
| Directed CCC command without Payload and ROC bit is set to '1' | TOC bit set to '0' | RESP-Queue is full |
| Middle of I2C Write Transfer with Regular Transfer command | NA | Transmit FIFO is empty |
| Middle of I2C Read Transfer with Regular Transfer command | NA | Receive FIFO is full |
| End of I2C Write Transfer Regular command (Only I3CC Terminates) and TOC bit set to '0'. | NA | Next command unavailable |
| End of I2C Write Transfer Regular command (Only I3CC Terminates) and ROC bit is set to '1'. | NA | RESP-Queue is full |
| End of I2C Read Transfer Regular command (Either I3CC/target terminates) and TOC bit set to '0'. | NA | Next command unavailable |
| End of I2C Read Transfer Regular command (Only I3CC Terminates) and ROC bit is set to '1'. | NA | RESP-Queue is full |
| Write Data Transfer, Parity Bit | ||
| Middle of Write Transfer Regular command | NA | Transmit FIFO is empty |
| End of Write Transfer Regular command (Only I3CC Terminates) and TOC bit set to '0'. | NA | Next command unavailable |
| End of Write Transfer Regular command (Only I3CC Terminates) and ROC bit is set to '1'. | NA | RESP-Queue is full |
| I3C Read Transfer, Transition Bit | ||
| Middle of Read Transfer Regular command | NA | Receive FIFO is full |
| End of Read Transfer Regular command (Either I3CC/target terminates) and TOC bit set to '0'. | NA | Next command unavailable |
| End of Read Transfer Regular command (Only I3CC Terminates) and ROC is set to '1'. | NA | RESP-Queue is full |
| I3C IBI Transfer, Transition Bit | ||
| Middle of IBI Read Data Transfer | NA | IBI-Data FIFO is full |
| Middle of Auto Command Read Data Transfer | NA | IBI-Data FIFO is full |
The I3CC exits the clock stalling state once the condition mentioned in the column ‘Condition to Enter Clock Stalling’ column becomes invalid.
