Present State Register (DWC_mipi_i3c_HCI_block.PRESENT_STATE_DEBUG) – Offset 24c
Present State debug register is used to get status of Host Controller. The present state of the Host Controller
is divided into mandatory part (this register) and optional part for debug purposes (PRESENT_STATE_DEBUG), part
of Debug Capability registers in Extended Capabilities list. The fields should not be repeated between both
registers.
| Bit Range | Default | Access | Field Name and Description |
| 31:29 | 0h | RO | Reserved |
| 28 | 1h | RO/V | (MASTER_IDLE) This field reflects whether the Master Controller is in Idle state or not. This bit is set when all the Queues(Command , Response, IBI) and Buffers(Transmit and Receive) are empty along with the Master State machine is in Idle state. |
| 27:24 | 0h | RO | (CMD_TID) This field reflects the Transaction-ID of the current executing command. The Transaction ID is optional, software defined tag for every command (opaque for Host Controller) Specifically it is useful for detection of currently executed command while scheduling transfers in PIO mode. |
| 23:22 | 0h | RO | Reserved |
| 21:16 | 0h | RO | (CM_TFR_ST_STATUS) Current Master Transfer State Status.
Indicates the state of current transfer currently executing by the Host controller.
- 6'h0: IDLE (Controller is Idle state, waiting for commands from application or Slave initated In-band Interrupt) - 6'h1: START Generation State. - 6'h2: RESTART Generation State. - 6'h3: STOP Generation State. - 6'h4: START Hold Generation for the Slave Initiated START State. - 6'h5: Broadcast Write Address Header(7'h7E,W) Generation State. - 6'h6: Broadcast Read Address Header(7'h7E,R) Generation State. - 6'h7: Dynamic Address Assignment State. - 6'h8: Slave Address Generation State. - 6'hB: CCC Byte Generation State. - 6'hC: HDR Command Generation State. - 6'hD: Write Data Transfer State. - 6'hE: Read Data Transfer State. - 6'hF: In-Band Interrupt(SIR) Address Read Data State. - 6'h10: In-Band Interrupt Auto-Disable State - 6'h11: HDR-DDR CRC Data Generation/Receive State. - 6'h12: Clock Extension State. - 6'h13: Halt State. - 6'h14: In-Band Interrupt(SIR) Read Data State. |
| 15:14 | 0h | RO | Reserved |
| 13:8 | 0h | RO | (CM_TFR_STATUS) Current Master Transfer Type Status.
Indicates the type of transfer currently executing by the DWC_mipi_i3c controller.
- 6'h0: IDLE (Controller is in Idle state, waiting for commands from application or Slave initated In-band Interrupt) - 6'h1: Broadcast CCC Write Transfer. - 6'h2: Directed CCC Write Transfer. - 6'h3: Directed CCC Read Transfer. - 6'h4: ENTDAA Address Assignment Transfer. - 6'h5: SETDASA Address Assignment Transfer. - 6'h6: Private I3C SDR Write Transfer. - 6'h7: Private I3C SDR Read Transfer. - 6'h8: Private I2C SDR Write Transfer. - 6'h9: Private I2C SDR Read Transfer. - 6'hA: Private HDR Ternary Symbol(TS) Write Transfer. - 6'hB: Private HDR Ternary Symbol(TS) Read Transfer. - 6'hC: Private HDR Double-Data Rate(DDR) Write Transfer. - 6'hD: Private HDR Double-Data Rate(DDR) Read Transfer. - 6'hE: Servicing In-Band Interrupt Transfer. - 6'hF: Halt state (Controller is in Halt State, waiting for the application to resume through DEVICE_CTRL Register) |
| 7:2 | 0h | RO | Reserved |
| 1 | 1h | RO/V | (SDA_LINE_SIGNAL_LEVEL) This bit is used to check the SDA line level to recover from errors and for debugging. This bit reflects the value of synchronized sda_in_a signal. |
| 0 | 1h | RO/V | (SCL_LINE_SIGNAL_LEVEL) This bit is used to check the SCL line level to recover from errors and for debugging. This bit reflects the value of synchronized scl_in_a signal. |