The system designer decides whether their system needs more than one Controller on the Bus. To provide that flexibility MIPI I3C allows this, but also does not require it. Controller Role Handoff is a well-defined and controlled mechanism in I3C; if used, it can be relied on.

For most use cases, a Secondary Controller is not a required component for an I3C Bus. If your Primary Controller has all the capabilities and features that you need, and if your use of the I3C Bus wouldn’t benefit from having multiple Controller-capable Devices, then you might not need a Secondary Controller.

Examples where Secondary Controllers are useful:

  1. A Debug controller, if present, would be a Secondary Controller
  2. A sensor hub or other offload device can be used to continue operating during periods when the Host processor is in deep sleep (i.e., to save power)
  3. The system can switch between standalone use (such as IoT devices) and connected uses. For example, perhaps a USB-to-I3C cable is attached to take over temporarily.

Note that Devices such as MCUs will usually be able to operate as fully-fledged Targets, as fully-fledged Primary Controllers, and as Secondary Controllers (i.e., Devices that come up as Targets but can become the Active Controller later), depending solely on the particular needs of the given system. They can simply be configured for the Bus they are on by the firmware.

Note: This FAQ entry has been updated for I3C v1.1.1 and I3C Basic v1.1.1. In this FAQ entry, the terms “Primary Controller” and “Secondary Controller” refer to an I3C Device’s initial configuration and capabilities. In other sections of this FAQ and the I3C specification, the term “Secondary Controller” might instead reflect a Controller-capable Device’s current role, i.e., as and when it is not currently the “Active Controller” of the Bus. See Q13.4 for additional details.

FAQ Type: 
I3C