|  | 
| 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