diff --git a/drivers/can/can_mcan.h b/drivers/can/can_mcan.h index dd8cce64a1388..62b16c3f4da84 100644 --- a/drivers/can/can_mcan.h +++ b/drivers/can/can_mcan.h @@ -26,6 +26,8 @@ #define NUM_RX_FIFO0_ELEMENTS DT_PROP(MCAN_DT_PATH, rx_fifo0_elements) #define NUM_RX_FIFO1_ELEMENTS DT_PROP(MCAN_DT_PATH, rx_fifo0_elements) #define NUM_RX_BUF_ELEMENTS DT_PROP(MCAN_DT_PATH, rx_buffer_elements) +#define NUM_TX_EVENT_FIFO_ELEMENTS \ + DT_PROP(MCAN_DT_PATH, tx_event_fifo_elements) #define NUM_TX_BUF_ELEMENTS DT_PROP(MCAN_DT_PATH, tx_buffer_elements) #ifdef CONFIG_CAN_STM32FD @@ -161,7 +163,7 @@ struct can_mcan_msg_sram { volatile struct can_mcan_rx_fifo rx_fifo0[NUM_RX_FIFO0_ELEMENTS]; volatile struct can_mcan_rx_fifo rx_fifo1[NUM_RX_FIFO1_ELEMENTS]; volatile struct can_mcan_rx_fifo rx_buffer[NUM_RX_BUF_ELEMENTS]; - volatile struct can_mcan_tx_event_fifo tx_event_fifo[NUM_TX_BUF_ELEMENTS]; + volatile struct can_mcan_tx_event_fifo tx_event_fifo[NUM_TX_EVENT_FIFO_ELEMENTS]; volatile struct can_mcan_tx_buffer tx_buffer[NUM_TX_BUF_ELEMENTS]; } __packed __aligned(4); diff --git a/dts/arm/atmel/same70.dtsi b/dts/arm/atmel/same70.dtsi index 3ffbe83466c65..1f8495950e277 100644 --- a/dts/arm/atmel/same70.dtsi +++ b/dts/arm/atmel/same70.dtsi @@ -457,6 +457,7 @@ rx-fifo1-elements = <3>; rx-buffer-elements = <0>; tx-buffer-elements = <1>; + tx-event-fifo-elements = <1>; can0: can@40030000 { compatible = "atmel,sam-can"; diff --git a/dts/arm/nxp/nxp_lpc55S1x_common.dtsi b/dts/arm/nxp/nxp_lpc55S1x_common.dtsi index 1f918307874da..e4072cccd6619 100644 --- a/dts/arm/nxp/nxp_lpc55S1x_common.dtsi +++ b/dts/arm/nxp/nxp_lpc55S1x_common.dtsi @@ -227,6 +227,7 @@ rx-fifo1-elements = <64>; rx-buffer-elements = <64>; tx-buffer-elements = <32>; + tx-event-fifo-elements = <32>; sjw = <1>; sample-point = <875>; sjw-data = <1>; diff --git a/dts/arm/st/g4/stm32g4.dtsi b/dts/arm/st/g4/stm32g4.dtsi index ce01f29fcd474..f7f63633a8c5f 100644 --- a/dts/arm/st/g4/stm32g4.dtsi +++ b/dts/arm/st/g4/stm32g4.dtsi @@ -358,6 +358,7 @@ rx-fifo1-elements = <3>; rx-buffer-elements = <0>; tx-buffer-elements = <3>; + tx-event-fifo-elements = <3>; can1: can@40006400 { compatible = "st,stm32-fdcan"; diff --git a/dts/arm/st/h7/stm32h7.dtsi b/dts/arm/st/h7/stm32h7.dtsi index 9e96cbd96f86c..22547dac8365e 100644 --- a/dts/arm/st/h7/stm32h7.dtsi +++ b/dts/arm/st/h7/stm32h7.dtsi @@ -451,6 +451,7 @@ rx-fifo1-elements = <3>; rx-buffer-elements = <3>; tx-buffer-elements = <3>; + tx-event-fifo-elements = <3>; can1: can@4000a000 { compatible = "st,stm32h7-fdcan"; diff --git a/dts/bindings/can/bosch,m-can-base.yaml b/dts/bindings/can/bosch,m-can-base.yaml index 44e0271ce3325..72c3ce138825a 100644 --- a/dts/bindings/can/bosch,m-can-base.yaml +++ b/dts/bindings/can/bosch,m-can-base.yaml @@ -23,6 +23,10 @@ properties: type: int required: true + tx-event-fifo-elements: + type: int + required: true + tx-buffer-elements: type: int required: true