@@ -247,6 +247,7 @@ module controller_standby_i3c
247247 logic [7 : 0 ] ccc;
248248 logic ccc_valid;
249249 logic is_ccc_done;
250+ logic is_next_ccc;
250251 logic is_hotjoin_done;
251252
252253 //
@@ -303,7 +304,7 @@ module controller_standby_i3c
303304 2'b10 : xfer_mux_sel <= Ibi;
304305 default : xfer_mux_sel <= Fsm;
305306 endcase
306- else if (xfer_mux_sel == Ccc && is_ccc_done) xfer_mux_sel <= Fsm;
307+ else if (( xfer_mux_sel == Ccc && is_ccc_done) || (xfer_mux_sel == Ccc && is_next_ccc) ) xfer_mux_sel <= Fsm;
307308 else if (xfer_mux_sel == Ibi && ibi_done) xfer_mux_sel <= Fsm;
308309 end
309310
@@ -455,6 +456,7 @@ module controller_standby_i3c
455456 .ccc_o (ccc),
456457 .ccc_valid_o (ccc_valid),
457458 .is_ccc_done_i (is_ccc_done),
459+ .is_next_ccc_i (is_next_ccc),
458460 .is_hotjoin_done_i (is_hotjoin_done),
459461 .last_addr_o (bus_addr_o),
460462 .last_addr_valid_o (bus_addr_valid_o),
@@ -475,6 +477,7 @@ module controller_standby_i3c
475477 .ccc_i (ccc),
476478 .ccc_valid_i (ccc_valid),
477479 .done_fsm_o (is_ccc_done),
480+ .next_ccc_o (is_next_ccc),
478481 .bus_start_det_i (ctrl_bus_i.start_det),
479482 .bus_rstart_det_i (ctrl_bus_i.rstart_det),
480483 .bus_stop_det_i (ctrl_bus_i.stop_det),
0 commit comments