xref: /linux/drivers/net/can/ctucanfd/ctucanfd_kframe.h (revision dec1c62e91ba268ab2a6e339d4d7a59287d5eba1)
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*******************************************************************************
3  *
4  * CTU CAN FD IP Core
5  *
6  * Copyright (C) 2015-2018 Ondrej Ille <ondrej.ille@gmail.com> FEE CTU
7  * Copyright (C) 2018-2021 Ondrej Ille <ondrej.ille@gmail.com> self-funded
8  * Copyright (C) 2018-2019 Martin Jerabek <martin.jerabek01@gmail.com> FEE CTU
9  * Copyright (C) 2018-2021 Pavel Pisa <pisa@cmp.felk.cvut.cz> FEE CTU/self-funded
10  *
11  * Project advisors:
12  *     Jiri Novak <jnovak@fel.cvut.cz>
13  *     Pavel Pisa <pisa@cmp.felk.cvut.cz>
14  *
15  * Department of Measurement         (http://meas.fel.cvut.cz/)
16  * Faculty of Electrical Engineering (http://www.fel.cvut.cz)
17  * Czech Technical University        (http://www.cvut.cz/)
18  ******************************************************************************/
19 
20 /* This file is autogenerated, DO NOT EDIT! */
21 
22 #ifndef __CTU_CAN_FD_CAN_FD_FRAME_FORMAT__
23 #define __CTU_CAN_FD_CAN_FD_FRAME_FORMAT__
24 
25 #include <linux/bits.h>
26 
27 /* CAN_Frame_format memory map */
28 enum ctu_can_fd_can_frame_format {
29 	CTUCANFD_FRAME_FORMAT_W       = 0x0,
30 	CTUCANFD_IDENTIFIER_W         = 0x4,
31 	CTUCANFD_TIMESTAMP_L_W        = 0x8,
32 	CTUCANFD_TIMESTAMP_U_W        = 0xc,
33 	CTUCANFD_DATA_1_4_W          = 0x10,
34 	CTUCANFD_DATA_5_8_W          = 0x14,
35 	CTUCANFD_DATA_61_64_W        = 0x4c,
36 };
37 
38 /* CAN_FD_Frame_format memory region */
39 
40 /*  FRAME_FORMAT_W registers */
41 #define REG_FRAME_FORMAT_W_DLC GENMASK(3, 0)
42 #define REG_FRAME_FORMAT_W_RTR BIT(5)
43 #define REG_FRAME_FORMAT_W_IDE BIT(6)
44 #define REG_FRAME_FORMAT_W_FDF BIT(7)
45 #define REG_FRAME_FORMAT_W_BRS BIT(9)
46 #define REG_FRAME_FORMAT_W_ESI_RSV BIT(10)
47 #define REG_FRAME_FORMAT_W_RWCNT GENMASK(15, 11)
48 
49 /*  IDENTIFIER_W registers */
50 #define REG_IDENTIFIER_W_IDENTIFIER_EXT GENMASK(17, 0)
51 #define REG_IDENTIFIER_W_IDENTIFIER_BASE GENMASK(28, 18)
52 
53 /*  TIMESTAMP_L_W registers */
54 #define REG_TIMESTAMP_L_W_TIME_STAMP_L_W GENMASK(31, 0)
55 
56 /*  TIMESTAMP_U_W registers */
57 #define REG_TIMESTAMP_U_W_TIMESTAMP_U_W GENMASK(31, 0)
58 
59 /*  DATA_1_4_W registers */
60 #define REG_DATA_1_4_W_DATA_1 GENMASK(7, 0)
61 #define REG_DATA_1_4_W_DATA_2 GENMASK(15, 8)
62 #define REG_DATA_1_4_W_DATA_3 GENMASK(23, 16)
63 #define REG_DATA_1_4_W_DATA_4 GENMASK(31, 24)
64 
65 /*  DATA_5_8_W registers */
66 #define REG_DATA_5_8_W_DATA_5 GENMASK(7, 0)
67 #define REG_DATA_5_8_W_DATA_6 GENMASK(15, 8)
68 #define REG_DATA_5_8_W_DATA_7 GENMASK(23, 16)
69 #define REG_DATA_5_8_W_DATA_8 GENMASK(31, 24)
70 
71 /*  DATA_61_64_W registers */
72 #define REG_DATA_61_64_W_DATA_61 GENMASK(7, 0)
73 #define REG_DATA_61_64_W_DATA_62 GENMASK(15, 8)
74 #define REG_DATA_61_64_W_DATA_63 GENMASK(23, 16)
75 #define REG_DATA_61_64_W_DATA_64 GENMASK(31, 24)
76 
77 #endif
78