diff --git a/drivers/can/can_mcux_flexcan.c b/drivers/can/can_mcux_flexcan.c
index 0f570bf..1a03b52 100644
--- a/drivers/can/can_mcux_flexcan.c
+++ b/drivers/can/can_mcux_flexcan.c
@@ -104,8 +104,6 @@
 };
 
 struct mcux_flexcan_tx_callback {
-	struct k_sem done;
-	int status;
 	flexcan_frame_t frame;
 	can_tx_callback_t function;
 	void *arg;
@@ -408,6 +406,8 @@
 	status_t status;
 	int alloc;
 
+	__ASSERT_NO_MSG(callback != NULL);
+
 	if (frame->dlc > CAN_MAX_DLC) {
 		LOG_ERR("DLC of %d exceeds maximum (%d)", frame->dlc, CAN_MAX_DLC);
 		return -EINVAL;
@@ -445,11 +445,6 @@
 		return -EIO;
 	}
 
-	if (callback == NULL) {
-		k_sem_take(&data->tx_cbs[alloc].done, K_FOREVER);
-		return data->tx_cbs[alloc].status;
-	}
-
 	return 0;
 }
 
@@ -647,13 +642,8 @@
 			if (atomic_test_and_clear_bit(data->tx_allocs, alloc)) {
 				FLEXCAN_TransferAbortSend(config->base, &data->handle,
 							  ALLOC_IDX_TO_TXMB_IDX(alloc));
-				if (function != NULL) {
-					function(dev, -ENETUNREACH, arg);
-				} else {
-					data->tx_cbs[alloc].status = -ENETUNREACH;
-					k_sem_give(&data->tx_cbs[alloc].done);
-				}
 
+				function(dev, -ENETUNREACH, arg);
 				k_sem_give(&data->tx_allocs_sem);
 			}
 		}
@@ -675,12 +665,7 @@
 	arg = data->tx_cbs[alloc].arg;
 
 	if (atomic_test_and_clear_bit(data->tx_allocs, alloc)) {
-		if (function != NULL) {
-			function(dev, 0, arg);
-		} else {
-			data->tx_cbs[alloc].status = 0;
-			k_sem_give(&data->tx_cbs[alloc].done);
-		}
+		function(dev, 0, arg);
 		k_sem_give(&data->tx_allocs_sem);
 	}
 }
@@ -774,7 +759,6 @@
 	flexcan_config_t flexcan_config;
 	uint32_t clock_freq;
 	int err;
-	int i;
 
 	if (config->phy != NULL) {
 		if (!device_is_ready(config->phy)) {
@@ -792,10 +776,6 @@
 	k_sem_init(&data->tx_allocs_sem, MCUX_FLEXCAN_MAX_TX,
 		   MCUX_FLEXCAN_MAX_TX);
 
-	for (i = 0; i < ARRAY_SIZE(data->tx_cbs); i++) {
-		k_sem_init(&data->tx_cbs[i].done, 0, 1);
-	}
-
 	data->timing.sjw = config->sjw;
 	if (config->sample_point && USE_SP_ALGO) {
 		err = can_calc_timing(dev, &data->timing, config->bitrate,
