37.2.6.1 Provisional ID

Each I3C device connected to the I3C bus must be uniquely identifiable to receive a Dynamic Address. For this purpose, the Target module contains a 48-bit Provisional ID available via I3CxPID0 through I3CxPID5 registers. The Controller uses this 48-bit Provisional ID to assign a Dynamic Address to the device. The Controller can also request for this data using the GETPID Common Command Code (CCC).

The Provisional ID is composed of three parts:

  • PID[47:33]: MIPI Manufacturer ID (15 bits)
  • PID[32]: Provisional ID Type Selector (1 bit)
  • PID[31:0]: Vendor Fixed Value or Random Value (32 bits)

The MIPI Manufacturer ID is a two-byte Hexadecimal ID that is assigned by MIPI Alliance, Inc., and is available on the “MIPI Alliance Manufacturer ID Page” at https://mid.mipi.org/. Only the 15 Least Significant bits are used in PID[47:33]. The most significant bit is discarded.

The Provisional ID Type Selector (PID[32]) determines whether PID[31:0] is a Vendor Fixed Value or a Random Value.

If PID[32] = 1, PID[31:0] is a 32-bit value randomly generated by the user software.

If PID[32] = 0, PID[31:0] is a 32-bit Vendor Fixed Value composed of three parts:

  • PID[31:16]: Part ID (16 bits): This is defined by the device vendor.
  • PID[15:12]: Instance ID (4 bits): This defines the individual device using a method defined by the user.
  • PID[11:0] (12 bits): The user or the vendor can use this to provide additional information to the Controller (for example, deeper device characteristics may be provided).