|
43 | 43 | #define CAN_NXP_S32_MAX_BITRATE 8000000
|
44 | 44 | #define CAN_NXP_S32_DATA_LENGTH 64
|
45 | 45 |
|
| 46 | +#define CAN_NXP_S32_TDCO_MAX FIELD_GET(CANXL_SIC_BTDCC_FTDCOFF_MASK, CANXL_SIC_BTDCC_FTDCOFF_MASK) |
| 47 | + |
46 | 48 | #ifdef CONFIG_CAN_NXP_S32_RX_FIFO
|
47 | 49 | /* RX FIFO depth is fixed to the maximum value */
|
48 | 50 | #define CAN_NXP_S32_RX_FIFO_DEPTH 32
|
@@ -706,6 +708,9 @@ static int can_nxp_s32_set_timing_data(const struct device *dev,
|
706 | 708 | /* Set timing for CAN FD instance*/
|
707 | 709 | CanXL_SetFDBaudRate(config->base_sic, &can_fd_time_segment);
|
708 | 710 |
|
| 711 | + Canexcel_Ip_SetTDCOffsetFD(config->instance, true, false, |
| 712 | + CAN_CALC_TDCO((timing_data), 0U, CAN_NXP_S32_TDCO_MAX)); |
| 713 | + |
709 | 714 | return 0;
|
710 | 715 | }
|
711 | 716 | #endif
|
@@ -964,6 +969,11 @@ static int can_nxp_s32_init(const struct device *dev)
|
964 | 969 | /* Initialize CAN structure */
|
965 | 970 | Canexcel_Ip_Init(config->instance, config->can_cfg, data->can_state);
|
966 | 971 |
|
| 972 | +#ifdef CAN_NXP_S32_FD_MODE |
| 973 | + Canexcel_Ip_SetTDCOffsetFD(config->instance, true, false, |
| 974 | + CAN_CALC_TDCO((&data->timing_data), 0U, CAN_NXP_S32_TDCO_MAX)); |
| 975 | +#endif |
| 976 | + |
967 | 977 | /* Configure time stamp */
|
968 | 978 | #ifdef CONFIG_CAN_RX_TIMESTAMP
|
969 | 979 | Canexcel_Ip_ConfigTimeStamp(config->instance, &time_stamp);
|
|
0 commit comments