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