In order to achieve higher data rates, much of the activity on the I3C Bus occurs in Push-Pull mode (i.e., with the Open Drain Pull-Up resistor disabled).
However for some Bus management activities, and for backwards compatibility with I2C, Pull-Up-resistor-based Open Drain mode is enabled. Examples include:
- Arbitration during Dynamic Address Assignment
- Address Header following a START, which is arbitrable and can become an In-Band Interrupt Request
- ACK/NACK during the 9th bit of an Address Header.
With very few exceptions, the I3C Controller is responsible for providing an Open Drain class Pull-Up resistor when the Bus is in the Open Drain mode. See specification Section 18.104.22.168.
Note: The Open Drain class Pull-Up for SDA could either be provided internally by the Controller, or it could be an external device that is engaged or disengaged as needed, i.e., switchable between these states and controlled by a Controller output pin. By contrast, SCL should always be driven by the Active Controller (i.e., Push-Pull) and no Open Drain class Pull-Up is needed.