Something like having a WHO_AM_I register is not a standard. My understanding of reading the MIPI I3C specification is that the point of the Provisional ID is to identify device uniquely and associate them with device manufacturers (not chip manufacturers).
Here is one of the descriptions I've seen:
"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)."
Looking at other vendors data sheets (microchip, nxp, etc) the full Provisional ID can be specified. Seems like a huge oversight by ST to not make this fully configurable...