When mastership takeover IBI request appears on
the I3C bus, I3C master hardware automatically sends the
response based on settings in I3C_SIR_MAP0 through I3C_SIR_MAP5 registers. After
this host is informed by the I3C_MST_ISR interrupt that handoff procedure should be
executed. At this point, firmware should:
- Read I3C_IBIR register to determine requesting device
(optionally, if such information is useful for application host)
- Send the GETACCMST CCC to confirm mastership handover
- Wait for the completion of pending I3C master command
signaled by I3C_MST_ISR interrupt – at this moment I3C master switches to
the slave mode
- Write 0x001FXXXX to FLUSH_CTRL register to flush the FIFOs
as the slave mode reuses TX and RX FIFOs (bits marked X hold RX_FIFO
threshold so should be set/maintained as needed)
- Depending on application/system, prepare for slave
operation
Note that it is firmware and/or system responsibility to provide bus information to Secondary Masters before mastership handover is granted. It can be achieved in several ways:
- Secondary Masters listen to the bus during DAA and store necessary data
- Main Master sends DEFSLVS CCC after each ENTDAA / RSTDAA / SETNEWDA / SETDASA sequence that modifies bus