@@ -86,6 +86,8 @@ void can_mcan_configure_timing(struct can_mcan_reg *can,
8686 timing -> phase_seg2 > 0 );
8787 __ASSERT_NO_MSG (timing -> prescaler <= 0x200 &&
8888 timing -> prescaler > 0 );
89+ __ASSERT_NO_MSG (timing -> sjw <= 0x80 && timing -> sjw > 0 );
90+
8991 can -> nbtp = (((uint32_t )timing -> phase_seg1 - 1UL ) & 0xFF ) <<
9092 CAN_MCAN_NBTP_NTSEG1_POS |
9193 (((uint32_t )timing -> phase_seg2 - 1UL ) & 0x7F ) <<
@@ -105,6 +107,8 @@ void can_mcan_configure_timing(struct can_mcan_reg *can,
105107 timing_data -> phase_seg2 > 0 );
106108 __ASSERT_NO_MSG (timing_data -> prescaler <= 20 &&
107109 timing_data -> prescaler > 0 );
110+ __ASSERT_NO_MSG (timing_data -> sjw <= 0x80 &&
111+ timing_data -> sjw > 0 );
108112
109113 can -> dbtp = (((uint32_t )timing_data -> phase_seg1 - 1UL ) & 0x1F ) <<
110114 CAN_MCAN_DBTP_DTSEG1_POS |
@@ -247,12 +251,12 @@ int can_mcan_init(const struct device *dev, const struct can_mcan_config *cfg,
247251 can -> txefc = ((uint32_t )msg_ram -> tx_event_fifo & CAN_MCAN_TXEFC_EFSA_MSK ) |
248252 (ARRAY_SIZE (msg_ram -> tx_event_fifo ) <<
249253 CAN_MCAN_TXEFC_EFS_POS );
250- can -> txbc = ((uint32_t )msg_ram -> tx_fifo & CAN_MCAN_TXBC_TBSA ) |
251- (ARRAY_SIZE (msg_ram -> tx_fifo ) << CAN_MCAN_TXBC_TFQS_POS );
252- if (sizeof (msg_ram -> tx_fifo [0 ].data ) <= 24 ) {
253- can -> txesc = (sizeof (msg_ram -> tx_fifo [0 ].data ) - 8 ) / 4 ;
254+ can -> txbc = ((uint32_t )msg_ram -> tx_buffer & CAN_MCAN_TXBC_TBSA ) |
255+ (ARRAY_SIZE (msg_ram -> tx_buffer ) << CAN_MCAN_TXBC_TFQS_POS );
256+ if (sizeof (msg_ram -> tx_buffer [0 ].data ) <= 24 ) {
257+ can -> txesc = (sizeof (msg_ram -> tx_buffer [0 ].data ) - 8 ) / 4 ;
254258 } else {
255- can -> txesc = (sizeof (msg_ram -> tx_fifo [0 ].data ) - 32 ) / 16 + 5 ;
259+ can -> txesc = (sizeof (msg_ram -> tx_buffer [0 ].data ) - 32 ) / 16 + 5 ;
256260 }
257261
258262 if (sizeof (msg_ram -> rx_fifo0 [0 ].data ) <= 24 ) {
@@ -612,7 +616,7 @@ int can_mcan_send(const struct can_mcan_config *cfg,
612616{
613617 struct can_mcan_reg * can = cfg -> can ;
614618 size_t data_length = can_dlc_to_bytes (frame -> dlc );
615- struct can_mcan_tx_fifo_hdr tx_hdr = {
619+ struct can_mcan_tx_buffer_hdr tx_hdr = {
616620 .rtr = frame -> rtr == CAN_REMOTEREQUEST ,
617621 .xtd = frame -> id_type == CAN_EXTENDED_IDENTIFIER ,
618622 .esi = 0 ,
@@ -675,10 +679,10 @@ int can_mcan_send(const struct can_mcan_config *cfg,
675679 tx_hdr .ext_id = frame -> id ;
676680 }
677681
678- msg_ram -> tx_fifo [put_idx ].hdr = tx_hdr ;
682+ msg_ram -> tx_buffer [put_idx ].hdr = tx_hdr ;
679683
680684 for (src = frame -> data_32 ,
681- dst = msg_ram -> tx_fifo [put_idx ].data_32 ,
685+ dst = msg_ram -> tx_buffer [put_idx ].data_32 ,
682686 end = dst + CAN_DIV_CEIL (data_length , sizeof (uint32_t ));
683687 dst < end ;
684688 src ++ , dst ++ ) {
0 commit comments