1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32#ifndef __CTU_CAN_FD_CAN_FD_REGISTER_MAP__
33#define __CTU_CAN_FD_CAN_FD_REGISTER_MAP__
34
35
36enum ctu_can_fd_can_registers {
37 CTU_CAN_FD_DEVICE_ID = 0x0,
38 CTU_CAN_FD_VERSION = 0x2,
39 CTU_CAN_FD_MODE = 0x4,
40 CTU_CAN_FD_SETTINGS = 0x6,
41 CTU_CAN_FD_STATUS = 0x8,
42 CTU_CAN_FD_COMMAND = 0xc,
43 CTU_CAN_FD_INT_STAT = 0x10,
44 CTU_CAN_FD_INT_ENA_SET = 0x14,
45 CTU_CAN_FD_INT_ENA_CLR = 0x18,
46 CTU_CAN_FD_INT_MASK_SET = 0x1c,
47 CTU_CAN_FD_INT_MASK_CLR = 0x20,
48 CTU_CAN_FD_BTR = 0x24,
49 CTU_CAN_FD_BTR_FD = 0x28,
50 CTU_CAN_FD_EWL = 0x2c,
51 CTU_CAN_FD_ERP = 0x2d,
52 CTU_CAN_FD_FAULT_STATE = 0x2e,
53 CTU_CAN_FD_REC = 0x30,
54 CTU_CAN_FD_TEC = 0x32,
55 CTU_CAN_FD_ERR_NORM = 0x34,
56 CTU_CAN_FD_ERR_FD = 0x36,
57 CTU_CAN_FD_CTR_PRES = 0x38,
58 CTU_CAN_FD_FILTER_A_MASK = 0x3c,
59 CTU_CAN_FD_FILTER_A_VAL = 0x40,
60 CTU_CAN_FD_FILTER_B_MASK = 0x44,
61 CTU_CAN_FD_FILTER_B_VAL = 0x48,
62 CTU_CAN_FD_FILTER_C_MASK = 0x4c,
63 CTU_CAN_FD_FILTER_C_VAL = 0x50,
64 CTU_CAN_FD_FILTER_RAN_LOW = 0x54,
65 CTU_CAN_FD_FILTER_RAN_HIGH = 0x58,
66 CTU_CAN_FD_FILTER_CONTROL = 0x5c,
67 CTU_CAN_FD_FILTER_STATUS = 0x5e,
68 CTU_CAN_FD_RX_MEM_INFO = 0x60,
69 CTU_CAN_FD_RX_POINTERS = 0x64,
70 CTU_CAN_FD_RX_STATUS = 0x68,
71 CTU_CAN_FD_RX_SETTINGS = 0x6a,
72 CTU_CAN_FD_RX_DATA = 0x6c,
73 CTU_CAN_FD_TX_STATUS = 0x70,
74 CTU_CAN_FD_TX_COMMAND = 0x74,
75 CTU_CAN_FD_TX_PRIORITY = 0x78,
76 CTU_CAN_FD_ERR_CAPT = 0x7c,
77 CTU_CAN_FD_ALC = 0x7e,
78 CTU_CAN_FD_TRV_DELAY = 0x80,
79 CTU_CAN_FD_SSP_CFG = 0x82,
80 CTU_CAN_FD_RX_FR_CTR = 0x84,
81 CTU_CAN_FD_TX_FR_CTR = 0x88,
82 CTU_CAN_FD_DEBUG_REGISTER = 0x8c,
83 CTU_CAN_FD_YOLO_REG = 0x90,
84 CTU_CAN_FD_TIMESTAMP_LOW = 0x94,
85 CTU_CAN_FD_TIMESTAMP_HIGH = 0x98,
86 CTU_CAN_FD_TXTB1_DATA_1 = 0x100,
87 CTU_CAN_FD_TXTB1_DATA_2 = 0x104,
88 CTU_CAN_FD_TXTB1_DATA_20 = 0x14c,
89 CTU_CAN_FD_TXTB2_DATA_1 = 0x200,
90 CTU_CAN_FD_TXTB2_DATA_2 = 0x204,
91 CTU_CAN_FD_TXTB2_DATA_20 = 0x24c,
92 CTU_CAN_FD_TXTB3_DATA_1 = 0x300,
93 CTU_CAN_FD_TXTB3_DATA_2 = 0x304,
94 CTU_CAN_FD_TXTB3_DATA_20 = 0x34c,
95 CTU_CAN_FD_TXTB4_DATA_1 = 0x400,
96 CTU_CAN_FD_TXTB4_DATA_2 = 0x404,
97 CTU_CAN_FD_TXTB4_DATA_20 = 0x44c,
98};
99
100
101
102union ctu_can_fd_device_id_version {
103 uint32_t u32;
104 struct ctu_can_fd_device_id_version_s {
105#ifdef __LITTLE_ENDIAN_BITFIELD
106
107 uint32_t device_id : 16;
108
109 uint32_t ver_minor : 8;
110 uint32_t ver_major : 8;
111#else
112 uint32_t ver_major : 8;
113 uint32_t ver_minor : 8;
114 uint32_t device_id : 16;
115#endif
116 } s;
117};
118
119enum ctu_can_fd_device_id_device_id {
120 CTU_CAN_FD_ID = 0xcafd,
121};
122
123union ctu_can_fd_mode_settings {
124 uint32_t u32;
125 struct ctu_can_fd_mode_settings_s {
126#ifdef __LITTLE_ENDIAN_BITFIELD
127
128 uint32_t rst : 1;
129 uint32_t lom : 1;
130 uint32_t stm : 1;
131 uint32_t afm : 1;
132 uint32_t fde : 1;
133 uint32_t reserved_6_5 : 2;
134 uint32_t acf : 1;
135 uint32_t tstm : 1;
136 uint32_t reserved_15_9 : 7;
137
138 uint32_t rtrle : 1;
139 uint32_t rtrth : 4;
140 uint32_t ilbp : 1;
141 uint32_t ena : 1;
142 uint32_t nisofd : 1;
143 uint32_t pex : 1;
144 uint32_t reserved_31_25 : 7;
145#else
146 uint32_t reserved_31_25 : 7;
147 uint32_t pex : 1;
148 uint32_t nisofd : 1;
149 uint32_t ena : 1;
150 uint32_t ilbp : 1;
151 uint32_t rtrth : 4;
152 uint32_t rtrle : 1;
153 uint32_t reserved_15_9 : 7;
154 uint32_t tstm : 1;
155 uint32_t acf : 1;
156 uint32_t reserved_6_5 : 2;
157 uint32_t fde : 1;
158 uint32_t afm : 1;
159 uint32_t stm : 1;
160 uint32_t lom : 1;
161 uint32_t rst : 1;
162#endif
163 } s;
164};
165
166enum ctu_can_fd_mode_lom {
167 LOM_DISABLED = 0x0,
168 LOM_ENABLED = 0x1,
169};
170
171enum ctu_can_fd_mode_stm {
172 STM_DISABLED = 0x0,
173 STM_ENABLED = 0x1,
174};
175
176enum ctu_can_fd_mode_afm {
177 AFM_DISABLED = 0x0,
178 AFM_ENABLED = 0x1,
179};
180
181enum ctu_can_fd_mode_fde {
182 FDE_DISABLE = 0x0,
183 FDE_ENABLE = 0x1,
184};
185
186enum ctu_can_fd_mode_acf {
187 ACF_DISABLED = 0x0,
188 ACF_ENABLED = 0x1,
189};
190
191enum ctu_can_fd_settings_rtrle {
192 RTRLE_DISABLED = 0x0,
193 RTRLE_ENABLED = 0x1,
194};
195
196enum ctu_can_fd_settings_ilbp {
197 INT_LOOP_DISABLED = 0x0,
198 INT_LOOP_ENABLED = 0x1,
199};
200
201enum ctu_can_fd_settings_ena {
202 CTU_CAN_DISABLED = 0x0,
203 CTU_CAN_ENABLED = 0x1,
204};
205
206enum ctu_can_fd_settings_nisofd {
207 ISO_FD = 0x0,
208 NON_ISO_FD = 0x1,
209};
210
211enum ctu_can_fd_settings_pex {
212 PROTOCOL_EXCEPTION_DISABLED = 0x0,
213 PROTOCOL_EXCEPTION_ENABLED = 0x1,
214};
215
216union ctu_can_fd_status {
217 uint32_t u32;
218 struct ctu_can_fd_status_s {
219#ifdef __LITTLE_ENDIAN_BITFIELD
220
221 uint32_t rxne : 1;
222 uint32_t dor : 1;
223 uint32_t txnf : 1;
224 uint32_t eft : 1;
225 uint32_t rxs : 1;
226 uint32_t txs : 1;
227 uint32_t ewl : 1;
228 uint32_t idle : 1;
229 uint32_t reserved_31_8 : 24;
230#else
231 uint32_t reserved_31_8 : 24;
232 uint32_t idle : 1;
233 uint32_t ewl : 1;
234 uint32_t txs : 1;
235 uint32_t rxs : 1;
236 uint32_t eft : 1;
237 uint32_t txnf : 1;
238 uint32_t dor : 1;
239 uint32_t rxne : 1;
240#endif
241 } s;
242};
243
244union ctu_can_fd_command {
245 uint32_t u32;
246 struct ctu_can_fd_command_s {
247#ifdef __LITTLE_ENDIAN_BITFIELD
248 uint32_t reserved_1_0 : 2;
249
250 uint32_t rrb : 1;
251 uint32_t cdo : 1;
252 uint32_t ercrst : 1;
253 uint32_t rxfcrst : 1;
254 uint32_t txfcrst : 1;
255 uint32_t reserved_31_7 : 25;
256#else
257 uint32_t reserved_31_7 : 25;
258 uint32_t txfcrst : 1;
259 uint32_t rxfcrst : 1;
260 uint32_t ercrst : 1;
261 uint32_t cdo : 1;
262 uint32_t rrb : 1;
263 uint32_t reserved_1_0 : 2;
264#endif
265 } s;
266};
267
268union ctu_can_fd_int_stat {
269 uint32_t u32;
270 struct ctu_can_fd_int_stat_s {
271#ifdef __LITTLE_ENDIAN_BITFIELD
272
273 uint32_t rxi : 1;
274 uint32_t txi : 1;
275 uint32_t ewli : 1;
276 uint32_t doi : 1;
277 uint32_t fcsi : 1;
278 uint32_t ali : 1;
279 uint32_t bei : 1;
280 uint32_t ofi : 1;
281 uint32_t rxfi : 1;
282 uint32_t bsi : 1;
283 uint32_t rbnei : 1;
284 uint32_t txbhci : 1;
285 uint32_t reserved_31_12 : 20;
286#else
287 uint32_t reserved_31_12 : 20;
288 uint32_t txbhci : 1;
289 uint32_t rbnei : 1;
290 uint32_t bsi : 1;
291 uint32_t rxfi : 1;
292 uint32_t ofi : 1;
293 uint32_t bei : 1;
294 uint32_t ali : 1;
295 uint32_t fcsi : 1;
296 uint32_t doi : 1;
297 uint32_t ewli : 1;
298 uint32_t txi : 1;
299 uint32_t rxi : 1;
300#endif
301 } s;
302};
303
304union ctu_can_fd_int_ena_set {
305 uint32_t u32;
306 struct ctu_can_fd_int_ena_set_s {
307#ifdef __LITTLE_ENDIAN_BITFIELD
308
309 uint32_t int_ena_set : 12;
310 uint32_t reserved_31_12 : 20;
311#else
312 uint32_t reserved_31_12 : 20;
313 uint32_t int_ena_set : 12;
314#endif
315 } s;
316};
317
318union ctu_can_fd_int_ena_clr {
319 uint32_t u32;
320 struct ctu_can_fd_int_ena_clr_s {
321#ifdef __LITTLE_ENDIAN_BITFIELD
322
323 uint32_t int_ena_clr : 12;
324 uint32_t reserved_31_12 : 20;
325#else
326 uint32_t reserved_31_12 : 20;
327 uint32_t int_ena_clr : 12;
328#endif
329 } s;
330};
331
332union ctu_can_fd_int_mask_set {
333 uint32_t u32;
334 struct ctu_can_fd_int_mask_set_s {
335#ifdef __LITTLE_ENDIAN_BITFIELD
336
337 uint32_t int_mask_set : 12;
338 uint32_t reserved_31_12 : 20;
339#else
340 uint32_t reserved_31_12 : 20;
341 uint32_t int_mask_set : 12;
342#endif
343 } s;
344};
345
346union ctu_can_fd_int_mask_clr {
347 uint32_t u32;
348 struct ctu_can_fd_int_mask_clr_s {
349#ifdef __LITTLE_ENDIAN_BITFIELD
350
351 uint32_t int_mask_clr : 12;
352 uint32_t reserved_31_12 : 20;
353#else
354 uint32_t reserved_31_12 : 20;
355 uint32_t int_mask_clr : 12;
356#endif
357 } s;
358};
359
360union ctu_can_fd_btr {
361 uint32_t u32;
362 struct ctu_can_fd_btr_s {
363#ifdef __LITTLE_ENDIAN_BITFIELD
364
365 uint32_t prop : 7;
366 uint32_t ph1 : 6;
367 uint32_t ph2 : 6;
368 uint32_t brp : 8;
369 uint32_t sjw : 5;
370#else
371 uint32_t sjw : 5;
372 uint32_t brp : 8;
373 uint32_t ph2 : 6;
374 uint32_t ph1 : 6;
375 uint32_t prop : 7;
376#endif
377 } s;
378};
379
380union ctu_can_fd_btr_fd {
381 uint32_t u32;
382 struct ctu_can_fd_btr_fd_s {
383#ifdef __LITTLE_ENDIAN_BITFIELD
384
385 uint32_t prop_fd : 6;
386 uint32_t reserved_6 : 1;
387 uint32_t ph1_fd : 5;
388 uint32_t reserved_12 : 1;
389 uint32_t ph2_fd : 5;
390 uint32_t reserved_18 : 1;
391 uint32_t brp_fd : 8;
392 uint32_t sjw_fd : 5;
393#else
394 uint32_t sjw_fd : 5;
395 uint32_t brp_fd : 8;
396 uint32_t reserved_18 : 1;
397 uint32_t ph2_fd : 5;
398 uint32_t reserved_12 : 1;
399 uint32_t ph1_fd : 5;
400 uint32_t reserved_6 : 1;
401 uint32_t prop_fd : 6;
402#endif
403 } s;
404};
405
406union ctu_can_fd_ewl_erp_fault_state {
407 uint32_t u32;
408 struct ctu_can_fd_ewl_erp_fault_state_s {
409#ifdef __LITTLE_ENDIAN_BITFIELD
410
411 uint32_t ew_limit : 8;
412
413 uint32_t erp_limit : 8;
414
415 uint32_t era : 1;
416 uint32_t erp : 1;
417 uint32_t bof : 1;
418 uint32_t reserved_31_19 : 13;
419#else
420 uint32_t reserved_31_19 : 13;
421 uint32_t bof : 1;
422 uint32_t erp : 1;
423 uint32_t era : 1;
424 uint32_t erp_limit : 8;
425 uint32_t ew_limit : 8;
426#endif
427 } s;
428};
429
430union ctu_can_fd_rec_tec {
431 uint32_t u32;
432 struct ctu_can_fd_rec_tec_s {
433#ifdef __LITTLE_ENDIAN_BITFIELD
434
435 uint32_t rec_val : 9;
436 uint32_t reserved_15_9 : 7;
437
438 uint32_t tec_val : 9;
439 uint32_t reserved_31_25 : 7;
440#else
441 uint32_t reserved_31_25 : 7;
442 uint32_t tec_val : 9;
443 uint32_t reserved_15_9 : 7;
444 uint32_t rec_val : 9;
445#endif
446 } s;
447};
448
449union ctu_can_fd_err_norm_err_fd {
450 uint32_t u32;
451 struct ctu_can_fd_err_norm_err_fd_s {
452#ifdef __LITTLE_ENDIAN_BITFIELD
453
454 uint32_t err_norm_val : 16;
455
456 uint32_t err_fd_val : 16;
457#else
458 uint32_t err_fd_val : 16;
459 uint32_t err_norm_val : 16;
460#endif
461 } s;
462};
463
464union ctu_can_fd_ctr_pres {
465 uint32_t u32;
466 struct ctu_can_fd_ctr_pres_s {
467#ifdef __LITTLE_ENDIAN_BITFIELD
468
469 uint32_t ctpv : 9;
470 uint32_t ptx : 1;
471 uint32_t prx : 1;
472 uint32_t enorm : 1;
473 uint32_t efd : 1;
474 uint32_t reserved_31_13 : 19;
475#else
476 uint32_t reserved_31_13 : 19;
477 uint32_t efd : 1;
478 uint32_t enorm : 1;
479 uint32_t prx : 1;
480 uint32_t ptx : 1;
481 uint32_t ctpv : 9;
482#endif
483 } s;
484};
485
486union ctu_can_fd_filter_a_mask {
487 uint32_t u32;
488 struct ctu_can_fd_filter_a_mask_s {
489#ifdef __LITTLE_ENDIAN_BITFIELD
490
491 uint32_t bit_mask_a_val : 29;
492 uint32_t reserved_31_29 : 3;
493#else
494 uint32_t reserved_31_29 : 3;
495 uint32_t bit_mask_a_val : 29;
496#endif
497 } s;
498};
499
500union ctu_can_fd_filter_a_val {
501 uint32_t u32;
502 struct ctu_can_fd_filter_a_val_s {
503#ifdef __LITTLE_ENDIAN_BITFIELD
504
505 uint32_t bit_val_a_val : 29;
506 uint32_t reserved_31_29 : 3;
507#else
508 uint32_t reserved_31_29 : 3;
509 uint32_t bit_val_a_val : 29;
510#endif
511 } s;
512};
513
514union ctu_can_fd_filter_b_mask {
515 uint32_t u32;
516 struct ctu_can_fd_filter_b_mask_s {
517#ifdef __LITTLE_ENDIAN_BITFIELD
518
519 uint32_t bit_mask_b_val : 29;
520 uint32_t reserved_31_29 : 3;
521#else
522 uint32_t reserved_31_29 : 3;
523 uint32_t bit_mask_b_val : 29;
524#endif
525 } s;
526};
527
528union ctu_can_fd_filter_b_val {
529 uint32_t u32;
530 struct ctu_can_fd_filter_b_val_s {
531#ifdef __LITTLE_ENDIAN_BITFIELD
532
533 uint32_t bit_val_b_val : 29;
534 uint32_t reserved_31_29 : 3;
535#else
536 uint32_t reserved_31_29 : 3;
537 uint32_t bit_val_b_val : 29;
538#endif
539 } s;
540};
541
542union ctu_can_fd_filter_c_mask {
543 uint32_t u32;
544 struct ctu_can_fd_filter_c_mask_s {
545#ifdef __LITTLE_ENDIAN_BITFIELD
546
547 uint32_t bit_mask_c_val : 29;
548 uint32_t reserved_31_29 : 3;
549#else
550 uint32_t reserved_31_29 : 3;
551 uint32_t bit_mask_c_val : 29;
552#endif
553 } s;
554};
555
556union ctu_can_fd_filter_c_val {
557 uint32_t u32;
558 struct ctu_can_fd_filter_c_val_s {
559#ifdef __LITTLE_ENDIAN_BITFIELD
560
561 uint32_t bit_val_c_val : 29;
562 uint32_t reserved_31_29 : 3;
563#else
564 uint32_t reserved_31_29 : 3;
565 uint32_t bit_val_c_val : 29;
566#endif
567 } s;
568};
569
570union ctu_can_fd_filter_ran_low {
571 uint32_t u32;
572 struct ctu_can_fd_filter_ran_low_s {
573#ifdef __LITTLE_ENDIAN_BITFIELD
574
575 uint32_t bit_ran_low_val : 29;
576 uint32_t reserved_31_29 : 3;
577#else
578 uint32_t reserved_31_29 : 3;
579 uint32_t bit_ran_low_val : 29;
580#endif
581 } s;
582};
583
584union ctu_can_fd_filter_ran_high {
585 uint32_t u32;
586 struct ctu_can_fd_filter_ran_high_s {
587#ifdef __LITTLE_ENDIAN_BITFIELD
588
589 uint32_t bit_ran_high_val : 29;
590 uint32_t reserved_31_29 : 3;
591#else
592 uint32_t reserved_31_29 : 3;
593 uint32_t bit_ran_high_val : 29;
594#endif
595 } s;
596};
597
598union ctu_can_fd_filter_control_filter_status {
599 uint32_t u32;
600 struct ctu_can_fd_filter_control_filter_status_s {
601#ifdef __LITTLE_ENDIAN_BITFIELD
602
603 uint32_t fanb : 1;
604 uint32_t fane : 1;
605 uint32_t fafb : 1;
606 uint32_t fafe : 1;
607 uint32_t fbnb : 1;
608 uint32_t fbne : 1;
609 uint32_t fbfb : 1;
610 uint32_t fbfe : 1;
611 uint32_t fcnb : 1;
612 uint32_t fcne : 1;
613 uint32_t fcfb : 1;
614 uint32_t fcfe : 1;
615 uint32_t frnb : 1;
616 uint32_t frne : 1;
617 uint32_t frfb : 1;
618 uint32_t frfe : 1;
619
620 uint32_t sfa : 1;
621 uint32_t sfb : 1;
622 uint32_t sfc : 1;
623 uint32_t sfr : 1;
624 uint32_t reserved_31_20 : 12;
625#else
626 uint32_t reserved_31_20 : 12;
627 uint32_t sfr : 1;
628 uint32_t sfc : 1;
629 uint32_t sfb : 1;
630 uint32_t sfa : 1;
631 uint32_t frfe : 1;
632 uint32_t frfb : 1;
633 uint32_t frne : 1;
634 uint32_t frnb : 1;
635 uint32_t fcfe : 1;
636 uint32_t fcfb : 1;
637 uint32_t fcne : 1;
638 uint32_t fcnb : 1;
639 uint32_t fbfe : 1;
640 uint32_t fbfb : 1;
641 uint32_t fbne : 1;
642 uint32_t fbnb : 1;
643 uint32_t fafe : 1;
644 uint32_t fafb : 1;
645 uint32_t fane : 1;
646 uint32_t fanb : 1;
647#endif
648 } s;
649};
650
651union ctu_can_fd_rx_mem_info {
652 uint32_t u32;
653 struct ctu_can_fd_rx_mem_info_s {
654#ifdef __LITTLE_ENDIAN_BITFIELD
655
656 uint32_t rx_buff_size : 13;
657 uint32_t reserved_15_13 : 3;
658 uint32_t rx_mem_free : 13;
659 uint32_t reserved_31_29 : 3;
660#else
661 uint32_t reserved_31_29 : 3;
662 uint32_t rx_mem_free : 13;
663 uint32_t reserved_15_13 : 3;
664 uint32_t rx_buff_size : 13;
665#endif
666 } s;
667};
668
669union ctu_can_fd_rx_pointers {
670 uint32_t u32;
671 struct ctu_can_fd_rx_pointers_s {
672#ifdef __LITTLE_ENDIAN_BITFIELD
673
674 uint32_t rx_wpp : 12;
675 uint32_t reserved_15_12 : 4;
676 uint32_t rx_rpp : 12;
677 uint32_t reserved_31_28 : 4;
678#else
679 uint32_t reserved_31_28 : 4;
680 uint32_t rx_rpp : 12;
681 uint32_t reserved_15_12 : 4;
682 uint32_t rx_wpp : 12;
683#endif
684 } s;
685};
686
687union ctu_can_fd_rx_status_rx_settings {
688 uint32_t u32;
689 struct ctu_can_fd_rx_status_rx_settings_s {
690#ifdef __LITTLE_ENDIAN_BITFIELD
691
692 uint32_t rxe : 1;
693 uint32_t rxf : 1;
694 uint32_t reserved_3_2 : 2;
695 uint32_t rxfrc : 11;
696 uint32_t reserved_15 : 1;
697
698 uint32_t rtsop : 1;
699 uint32_t reserved_31_17 : 15;
700#else
701 uint32_t reserved_31_17 : 15;
702 uint32_t rtsop : 1;
703 uint32_t reserved_15 : 1;
704 uint32_t rxfrc : 11;
705 uint32_t reserved_3_2 : 2;
706 uint32_t rxf : 1;
707 uint32_t rxe : 1;
708#endif
709 } s;
710};
711
712enum ctu_can_fd_rx_settings_rtsop {
713 RTS_END = 0x0,
714 RTS_BEG = 0x1,
715};
716
717union ctu_can_fd_rx_data {
718 uint32_t u32;
719 struct ctu_can_fd_rx_data_s {
720
721 uint32_t rx_data : 32;
722 } s;
723};
724
725union ctu_can_fd_tx_status {
726 uint32_t u32;
727 struct ctu_can_fd_tx_status_s {
728#ifdef __LITTLE_ENDIAN_BITFIELD
729
730 uint32_t tx1s : 4;
731 uint32_t tx2s : 4;
732 uint32_t tx3s : 4;
733 uint32_t tx4s : 4;
734 uint32_t reserved_31_16 : 16;
735#else
736 uint32_t reserved_31_16 : 16;
737 uint32_t tx4s : 4;
738 uint32_t tx3s : 4;
739 uint32_t tx2s : 4;
740 uint32_t tx1s : 4;
741#endif
742 } s;
743};
744
745enum ctu_can_fd_tx_status_tx1s {
746 TXT_RDY = 0x1,
747 TXT_TRAN = 0x2,
748 TXT_ABTP = 0x3,
749 TXT_TOK = 0x4,
750 TXT_ERR = 0x6,
751 TXT_ABT = 0x7,
752 TXT_ETY = 0x8,
753};
754
755union ctu_can_fd_tx_command {
756 uint32_t u32;
757 struct ctu_can_fd_tx_command_s {
758#ifdef __LITTLE_ENDIAN_BITFIELD
759
760 uint32_t txce : 1;
761 uint32_t txcr : 1;
762 uint32_t txca : 1;
763 uint32_t reserved_7_3 : 5;
764 uint32_t txb1 : 1;
765 uint32_t txb2 : 1;
766 uint32_t txb3 : 1;
767 uint32_t txb4 : 1;
768 uint32_t reserved_31_12 : 20;
769#else
770 uint32_t reserved_31_12 : 20;
771 uint32_t txb4 : 1;
772 uint32_t txb3 : 1;
773 uint32_t txb2 : 1;
774 uint32_t txb1 : 1;
775 uint32_t reserved_7_3 : 5;
776 uint32_t txca : 1;
777 uint32_t txcr : 1;
778 uint32_t txce : 1;
779#endif
780 } s;
781};
782
783union ctu_can_fd_tx_priority {
784 uint32_t u32;
785 struct ctu_can_fd_tx_priority_s {
786#ifdef __LITTLE_ENDIAN_BITFIELD
787
788 uint32_t txt1p : 3;
789 uint32_t reserved_3 : 1;
790 uint32_t txt2p : 3;
791 uint32_t reserved_7 : 1;
792 uint32_t txt3p : 3;
793 uint32_t reserved_11 : 1;
794 uint32_t txt4p : 3;
795 uint32_t reserved_31_15 : 17;
796#else
797 uint32_t reserved_31_15 : 17;
798 uint32_t txt4p : 3;
799 uint32_t reserved_11 : 1;
800 uint32_t txt3p : 3;
801 uint32_t reserved_7 : 1;
802 uint32_t txt2p : 3;
803 uint32_t reserved_3 : 1;
804 uint32_t txt1p : 3;
805#endif
806 } s;
807};
808
809union ctu_can_fd_err_capt_alc {
810 uint32_t u32;
811 struct ctu_can_fd_err_capt_alc_s {
812#ifdef __LITTLE_ENDIAN_BITFIELD
813
814 uint32_t err_pos : 5;
815 uint32_t err_type : 3;
816 uint32_t reserved_15_8 : 8;
817
818 uint32_t alc_bit : 5;
819 uint32_t alc_id_field : 3;
820 uint32_t reserved_31_24 : 8;
821#else
822 uint32_t reserved_31_24 : 8;
823 uint32_t alc_id_field : 3;
824 uint32_t alc_bit : 5;
825 uint32_t reserved_15_8 : 8;
826 uint32_t err_type : 3;
827 uint32_t err_pos : 5;
828#endif
829 } s;
830};
831
832enum ctu_can_fd_err_capt_err_pos {
833 ERC_POS_SOF = 0x0,
834 ERC_POS_ARB = 0x1,
835 ERC_POS_CTRL = 0x2,
836 ERC_POS_DATA = 0x3,
837 ERC_POS_CRC = 0x4,
838 ERC_POS_ACK = 0x5,
839 ERC_POS_EOF = 0x6,
840 ERC_POS_ERR = 0x7,
841 ERC_POS_OVRL = 0x8,
842 ERC_POS_OTHER = 0x1f,
843};
844
845enum ctu_can_fd_err_capt_err_type {
846 ERC_BIT_ERR = 0x0,
847 ERC_CRC_ERR = 0x1,
848 ERC_FRM_ERR = 0x2,
849 ERC_ACK_ERR = 0x3,
850 ERC_STUF_ERR = 0x4,
851};
852
853enum ctu_can_fd_alc_alc_id_field {
854 ALC_RSVD = 0x0,
855 ALC_BASE_ID = 0x1,
856 ALC_SRR_RTR = 0x2,
857 ALC_IDE = 0x3,
858 ALC_EXTENSION = 0x4,
859 ALC_RTR = 0x5,
860};
861
862union ctu_can_fd_trv_delay_ssp_cfg {
863 uint32_t u32;
864 struct ctu_can_fd_trv_delay_ssp_cfg_s {
865#ifdef __LITTLE_ENDIAN_BITFIELD
866
867 uint32_t trv_delay_value : 7;
868 uint32_t reserved_15_7 : 9;
869
870 uint32_t ssp_offset : 8;
871 uint32_t ssp_src : 2;
872 uint32_t reserved_31_26 : 6;
873#else
874 uint32_t reserved_31_26 : 6;
875 uint32_t ssp_src : 2;
876 uint32_t ssp_offset : 8;
877 uint32_t reserved_15_7 : 9;
878 uint32_t trv_delay_value : 7;
879#endif
880 } s;
881};
882
883enum ctu_can_fd_ssp_cfg_ssp_src {
884 SSP_SRC_MEAS_N_OFFSET = 0x0,
885 SSP_SRC_NO_SSP = 0x1,
886 SSP_SRC_OFFSET = 0x2,
887};
888
889union ctu_can_fd_rx_fr_ctr {
890 uint32_t u32;
891 struct ctu_can_fd_rx_fr_ctr_s {
892
893 uint32_t rx_fr_ctr_val : 32;
894 } s;
895};
896
897union ctu_can_fd_tx_fr_ctr {
898 uint32_t u32;
899 struct ctu_can_fd_tx_fr_ctr_s {
900
901 uint32_t tx_fr_ctr_val : 32;
902 } s;
903};
904
905union ctu_can_fd_debug_register {
906 uint32_t u32;
907 struct ctu_can_fd_debug_register_s {
908#ifdef __LITTLE_ENDIAN_BITFIELD
909
910 uint32_t stuff_count : 3;
911 uint32_t destuff_count : 3;
912 uint32_t pc_arb : 1;
913 uint32_t pc_con : 1;
914 uint32_t pc_dat : 1;
915 uint32_t pc_stc : 1;
916 uint32_t pc_crc : 1;
917 uint32_t pc_crcd : 1;
918 uint32_t pc_ack : 1;
919 uint32_t pc_ackd : 1;
920 uint32_t pc_eof : 1;
921 uint32_t pc_int : 1;
922 uint32_t pc_susp : 1;
923 uint32_t pc_ovr : 1;
924 uint32_t pc_sof : 1;
925 uint32_t reserved_31_19 : 13;
926#else
927 uint32_t reserved_31_19 : 13;
928 uint32_t pc_sof : 1;
929 uint32_t pc_ovr : 1;
930 uint32_t pc_susp : 1;
931 uint32_t pc_int : 1;
932 uint32_t pc_eof : 1;
933 uint32_t pc_ackd : 1;
934 uint32_t pc_ack : 1;
935 uint32_t pc_crcd : 1;
936 uint32_t pc_crc : 1;
937 uint32_t pc_stc : 1;
938 uint32_t pc_dat : 1;
939 uint32_t pc_con : 1;
940 uint32_t pc_arb : 1;
941 uint32_t destuff_count : 3;
942 uint32_t stuff_count : 3;
943#endif
944 } s;
945};
946
947union ctu_can_fd_yolo_reg {
948 uint32_t u32;
949 struct ctu_can_fd_yolo_reg_s {
950
951 uint32_t yolo_val : 32;
952 } s;
953};
954
955union ctu_can_fd_timestamp_low {
956 uint32_t u32;
957 struct ctu_can_fd_timestamp_low_s {
958
959 uint32_t timestamp_low : 32;
960 } s;
961};
962
963union ctu_can_fd_timestamp_high {
964 uint32_t u32;
965 struct ctu_can_fd_timestamp_high_s {
966
967 uint32_t timestamp_high : 32;
968 } s;
969};
970
971#endif
972