| /* SPDX-License-Identifier: GPL-2.0-or-later */ |
| /******************************************************************************* |
| * |
| * CTU CAN FD IP Core |
| * |
| * Copyright (C) 2015-2018 Ondrej Ille <ondrej.ille@gmail.com> FEE CTU |
| * Copyright (C) 2018-2020 Ondrej Ille <ondrej.ille@gmail.com> self-funded |
| * Copyright (C) 2018-2019 Martin Jerabek <martin.jerabek01@gmail.com> FEE CTU |
| * Copyright (C) 2018-2020 Pavel Pisa <pisa@cmp.felk.cvut.cz> FEE CTU/self-funded |
| * |
| * Project advisors: |
| * Jiri Novak <jnovak@fel.cvut.cz> |
| * Pavel Pisa <pisa@cmp.felk.cvut.cz> |
| * |
| * Department of Measurement (http://meas.fel.cvut.cz/) |
| * Faculty of Electrical Engineering (http://www.fel.cvut.cz) |
| * Czech Technical University (http://www.cvut.cz/) |
| * |
| * This program is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU General Public License |
| * as published by the Free Software Foundation; either version 2 |
| * of the License, or (at your option) any later version. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| ******************************************************************************/ |
| |
| /* This file is autogenerated, DO NOT EDIT! */ |
| |
| #ifndef HW_CAN_CTU_CAN_FD_FRAME_H |
| #define HW_CAN_CTU_CAN_FD_FRAME_H |
| |
| /* CAN_Frame_format memory map */ |
| enum ctu_can_fd_can_frame_format { |
| CTU_CAN_FD_FRAME_FORM_W = 0x0, |
| CTU_CAN_FD_IDENTIFIER_W = 0x4, |
| CTU_CAN_FD_TIMESTAMP_L_W = 0x8, |
| CTU_CAN_FD_TIMESTAMP_U_W = 0xc, |
| CTU_CAN_FD_DATA_1_4_W = 0x10, |
| CTU_CAN_FD_DATA_5_8_W = 0x14, |
| CTU_CAN_FD_DATA_61_64_W = 0x4c, |
| }; |
| |
| |
| /* Register descriptions: */ |
| union ctu_can_fd_frame_form_w { |
| uint32_t u32; |
| struct ctu_can_fd_frame_form_w_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* FRAME_FORM_W */ |
| uint32_t dlc : 4; |
| uint32_t reserved_4 : 1; |
| uint32_t rtr : 1; |
| uint32_t ide : 1; |
| uint32_t fdf : 1; |
| uint32_t reserved_8 : 1; |
| uint32_t brs : 1; |
| uint32_t esi_rsv : 1; |
| uint32_t rwcnt : 5; |
| uint32_t reserved_31_16 : 16; |
| #else |
| uint32_t reserved_31_16 : 16; |
| uint32_t rwcnt : 5; |
| uint32_t esi_rsv : 1; |
| uint32_t brs : 1; |
| uint32_t reserved_8 : 1; |
| uint32_t fdf : 1; |
| uint32_t ide : 1; |
| uint32_t rtr : 1; |
| uint32_t reserved_4 : 1; |
| uint32_t dlc : 4; |
| #endif |
| } s; |
| }; |
| |
| enum ctu_can_fd_frame_form_w_rtr { |
| NO_RTR_FRAME = 0x0, |
| RTR_FRAME = 0x1, |
| }; |
| |
| enum ctu_can_fd_frame_form_w_ide { |
| BASE = 0x0, |
| EXTENDED = 0x1, |
| }; |
| |
| enum ctu_can_fd_frame_form_w_fdf { |
| NORMAL_CAN = 0x0, |
| FD_CAN = 0x1, |
| }; |
| |
| enum ctu_can_fd_frame_form_w_brs { |
| BR_NO_SHIFT = 0x0, |
| BR_SHIFT = 0x1, |
| }; |
| |
| enum ctu_can_fd_frame_form_w_esi_rsv { |
| ESI_ERR_ACTIVE = 0x0, |
| ESI_ERR_PASIVE = 0x1, |
| }; |
| |
| union ctu_can_fd_identifier_w { |
| uint32_t u32; |
| struct ctu_can_fd_identifier_w_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* IDENTIFIER_W */ |
| uint32_t identifier_ext : 18; |
| uint32_t identifier_base : 11; |
| uint32_t reserved_31_29 : 3; |
| #else |
| uint32_t reserved_31_29 : 3; |
| uint32_t identifier_base : 11; |
| uint32_t identifier_ext : 18; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_timestamp_l_w { |
| uint32_t u32; |
| struct ctu_can_fd_timestamp_l_w_s { |
| /* TIMESTAMP_L_W */ |
| uint32_t time_stamp_31_0 : 32; |
| } s; |
| }; |
| |
| union ctu_can_fd_timestamp_u_w { |
| uint32_t u32; |
| struct ctu_can_fd_timestamp_u_w_s { |
| /* TIMESTAMP_U_W */ |
| uint32_t timestamp_l_w : 32; |
| } s; |
| }; |
| |
| union ctu_can_fd_data_1_4_w { |
| uint32_t u32; |
| struct ctu_can_fd_data_1_4_w_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* DATA_1_4_W */ |
| uint32_t data_1 : 8; |
| uint32_t data_2 : 8; |
| uint32_t data_3 : 8; |
| uint32_t data_4 : 8; |
| #else |
| uint32_t data_4 : 8; |
| uint32_t data_3 : 8; |
| uint32_t data_2 : 8; |
| uint32_t data_1 : 8; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_data_5_8_w { |
| uint32_t u32; |
| struct ctu_can_fd_data_5_8_w_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* DATA_5_8_W */ |
| uint32_t data_5 : 8; |
| uint32_t data_6 : 8; |
| uint32_t data_7 : 8; |
| uint32_t data_8 : 8; |
| #else |
| uint32_t data_8 : 8; |
| uint32_t data_7 : 8; |
| uint32_t data_6 : 8; |
| uint32_t data_5 : 8; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_data_61_64_w { |
| uint32_t u32; |
| struct ctu_can_fd_data_61_64_w_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* DATA_61_64_W */ |
| uint32_t data_61 : 8; |
| uint32_t data_62 : 8; |
| uint32_t data_63 : 8; |
| uint32_t data_64 : 8; |
| #else |
| uint32_t data_64 : 8; |
| uint32_t data_63 : 8; |
| uint32_t data_62 : 8; |
| uint32_t data_61 : 8; |
| #endif |
| } s; |
| }; |
| |
| #endif |