Skip to content

Commit 3327711

Browse files
mkurc-antPiotrZierhoffer
authored andcommitted
Ensure bus free time before issuing IBI
Internal-tag: [#76483] Signed-off-by: Maciej Kurc <[email protected]>
1 parent ef6594e commit 3327711

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

src/ctrl/controller_standby_i3c.sv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,7 @@ module controller_standby_i3c
464464
.scl_posedge_i (ctrl_bus_i.scl.pos_edge),
465465
.sda_negedge_i (ctrl_bus_i.sda.neg_edge),
466466
.sda_posedge_i (ctrl_bus_i.sda.pos_edge),
467+
.bus_free_i (bus_free),
467468
.parity_err_o,
468469
.rx_overflow_err_o (rx_overflow_err),
469470
.virtual_device_sel_o (virtual_device_sel_o),

src/ctrl/i3c_target_fsm.sv

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ module i3c_target_fsm #(
120120
input logic scl_posedge_i,
121121
input logic sda_negedge_i,
122122
input logic sda_posedge_i,
123+
input logic bus_free_i,
123124

124125
output logic parity_err_o,
125126
output logic rx_overflow_err_o,
@@ -374,7 +375,7 @@ module i3c_target_fsm #(
374375

375376
case (state_q)
376377
Idle:
377-
ibi_begin_o = target_enable_i && !target_reset_detect_i && ibi_enable_i && ibi_pending_i;
378+
ibi_begin_o = target_enable_i && !target_reset_detect_i && ibi_enable_i && ibi_pending_i && bus_free_i;
378379
RxFByte: begin
379380
bus_rx_req_byte_o = ~bus_start_det;
380381
if (bus_rx_done_i) begin
@@ -473,7 +474,7 @@ module i3c_target_fsm #(
473474
state_d = target_reset_detect_i ? DoRstAction :
474475
// TODO: Add flow for Hot-Join
475476
// do_hot_join ? DoHotJoin :
476-
(ibi_pending_i && ibi_enable_i) ? DoIBI : bus_start_det ? RxFByte : Idle;
477+
(ibi_pending_i && ibi_enable_i && bus_free_i) ? DoIBI : bus_start_det ? RxFByte : Idle;
477478
end
478479
RxFByte: begin
479480
if (bus_rx_done_i) begin

0 commit comments

Comments
 (0)