| /* 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_REGS_H |
| #define HW_CAN_CTU_CAN_FD_REGS_H |
| |
| /* CAN_Registers memory map */ |
| enum ctu_can_fd_can_registers { |
| CTU_CAN_FD_DEVICE_ID = 0x0, |
| CTU_CAN_FD_VERSION = 0x2, |
| CTU_CAN_FD_MODE = 0x4, |
| CTU_CAN_FD_SETTINGS = 0x6, |
| CTU_CAN_FD_STATUS = 0x8, |
| CTU_CAN_FD_COMMAND = 0xc, |
| CTU_CAN_FD_INT_STAT = 0x10, |
| CTU_CAN_FD_INT_ENA_SET = 0x14, |
| CTU_CAN_FD_INT_ENA_CLR = 0x18, |
| CTU_CAN_FD_INT_MASK_SET = 0x1c, |
| CTU_CAN_FD_INT_MASK_CLR = 0x20, |
| CTU_CAN_FD_BTR = 0x24, |
| CTU_CAN_FD_BTR_FD = 0x28, |
| CTU_CAN_FD_EWL = 0x2c, |
| CTU_CAN_FD_ERP = 0x2d, |
| CTU_CAN_FD_FAULT_STATE = 0x2e, |
| CTU_CAN_FD_REC = 0x30, |
| CTU_CAN_FD_TEC = 0x32, |
| CTU_CAN_FD_ERR_NORM = 0x34, |
| CTU_CAN_FD_ERR_FD = 0x36, |
| CTU_CAN_FD_CTR_PRES = 0x38, |
| CTU_CAN_FD_FILTER_A_MASK = 0x3c, |
| CTU_CAN_FD_FILTER_A_VAL = 0x40, |
| CTU_CAN_FD_FILTER_B_MASK = 0x44, |
| CTU_CAN_FD_FILTER_B_VAL = 0x48, |
| CTU_CAN_FD_FILTER_C_MASK = 0x4c, |
| CTU_CAN_FD_FILTER_C_VAL = 0x50, |
| CTU_CAN_FD_FILTER_RAN_LOW = 0x54, |
| CTU_CAN_FD_FILTER_RAN_HIGH = 0x58, |
| CTU_CAN_FD_FILTER_CONTROL = 0x5c, |
| CTU_CAN_FD_FILTER_STATUS = 0x5e, |
| CTU_CAN_FD_RX_MEM_INFO = 0x60, |
| CTU_CAN_FD_RX_POINTERS = 0x64, |
| CTU_CAN_FD_RX_STATUS = 0x68, |
| CTU_CAN_FD_RX_SETTINGS = 0x6a, |
| CTU_CAN_FD_RX_DATA = 0x6c, |
| CTU_CAN_FD_TX_STATUS = 0x70, |
| CTU_CAN_FD_TX_COMMAND = 0x74, |
| CTU_CAN_FD_TX_PRIORITY = 0x78, |
| CTU_CAN_FD_ERR_CAPT = 0x7c, |
| CTU_CAN_FD_ALC = 0x7e, |
| CTU_CAN_FD_TRV_DELAY = 0x80, |
| CTU_CAN_FD_SSP_CFG = 0x82, |
| CTU_CAN_FD_RX_FR_CTR = 0x84, |
| CTU_CAN_FD_TX_FR_CTR = 0x88, |
| CTU_CAN_FD_DEBUG_REGISTER = 0x8c, |
| CTU_CAN_FD_YOLO_REG = 0x90, |
| CTU_CAN_FD_TIMESTAMP_LOW = 0x94, |
| CTU_CAN_FD_TIMESTAMP_HIGH = 0x98, |
| CTU_CAN_FD_TXTB1_DATA_1 = 0x100, |
| CTU_CAN_FD_TXTB1_DATA_2 = 0x104, |
| CTU_CAN_FD_TXTB1_DATA_20 = 0x14c, |
| CTU_CAN_FD_TXTB2_DATA_1 = 0x200, |
| CTU_CAN_FD_TXTB2_DATA_2 = 0x204, |
| CTU_CAN_FD_TXTB2_DATA_20 = 0x24c, |
| CTU_CAN_FD_TXTB3_DATA_1 = 0x300, |
| CTU_CAN_FD_TXTB3_DATA_2 = 0x304, |
| CTU_CAN_FD_TXTB3_DATA_20 = 0x34c, |
| CTU_CAN_FD_TXTB4_DATA_1 = 0x400, |
| CTU_CAN_FD_TXTB4_DATA_2 = 0x404, |
| CTU_CAN_FD_TXTB4_DATA_20 = 0x44c, |
| }; |
| |
| |
| /* Register descriptions: */ |
| union ctu_can_fd_device_id_version { |
| uint32_t u32; |
| struct ctu_can_fd_device_id_version_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* DEVICE_ID */ |
| uint32_t device_id : 16; |
| /* VERSION */ |
| uint32_t ver_minor : 8; |
| uint32_t ver_major : 8; |
| #else |
| uint32_t ver_major : 8; |
| uint32_t ver_minor : 8; |
| uint32_t device_id : 16; |
| #endif |
| } s; |
| }; |
| |
| enum ctu_can_fd_device_id_device_id { |
| CTU_CAN_FD_ID = 0xcafd, |
| }; |
| |
| union ctu_can_fd_mode_settings { |
| uint32_t u32; |
| struct ctu_can_fd_mode_settings_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* MODE */ |
| uint32_t rst : 1; |
| uint32_t lom : 1; |
| uint32_t stm : 1; |
| uint32_t afm : 1; |
| uint32_t fde : 1; |
| uint32_t reserved_6_5 : 2; |
| uint32_t acf : 1; |
| uint32_t tstm : 1; |
| uint32_t reserved_15_9 : 7; |
| /* SETTINGS */ |
| uint32_t rtrle : 1; |
| uint32_t rtrth : 4; |
| uint32_t ilbp : 1; |
| uint32_t ena : 1; |
| uint32_t nisofd : 1; |
| uint32_t pex : 1; |
| uint32_t reserved_31_25 : 7; |
| #else |
| uint32_t reserved_31_25 : 7; |
| uint32_t pex : 1; |
| uint32_t nisofd : 1; |
| uint32_t ena : 1; |
| uint32_t ilbp : 1; |
| uint32_t rtrth : 4; |
| uint32_t rtrle : 1; |
| uint32_t reserved_15_9 : 7; |
| uint32_t tstm : 1; |
| uint32_t acf : 1; |
| uint32_t reserved_6_5 : 2; |
| uint32_t fde : 1; |
| uint32_t afm : 1; |
| uint32_t stm : 1; |
| uint32_t lom : 1; |
| uint32_t rst : 1; |
| #endif |
| } s; |
| }; |
| |
| enum ctu_can_fd_mode_lom { |
| LOM_DISABLED = 0x0, |
| LOM_ENABLED = 0x1, |
| }; |
| |
| enum ctu_can_fd_mode_stm { |
| STM_DISABLED = 0x0, |
| STM_ENABLED = 0x1, |
| }; |
| |
| enum ctu_can_fd_mode_afm { |
| AFM_DISABLED = 0x0, |
| AFM_ENABLED = 0x1, |
| }; |
| |
| enum ctu_can_fd_mode_fde { |
| FDE_DISABLE = 0x0, |
| FDE_ENABLE = 0x1, |
| }; |
| |
| enum ctu_can_fd_mode_acf { |
| ACF_DISABLED = 0x0, |
| ACF_ENABLED = 0x1, |
| }; |
| |
| enum ctu_can_fd_settings_rtrle { |
| RTRLE_DISABLED = 0x0, |
| RTRLE_ENABLED = 0x1, |
| }; |
| |
| enum ctu_can_fd_settings_ilbp { |
| INT_LOOP_DISABLED = 0x0, |
| INT_LOOP_ENABLED = 0x1, |
| }; |
| |
| enum ctu_can_fd_settings_ena { |
| CTU_CAN_DISABLED = 0x0, |
| CTU_CAN_ENABLED = 0x1, |
| }; |
| |
| enum ctu_can_fd_settings_nisofd { |
| ISO_FD = 0x0, |
| NON_ISO_FD = 0x1, |
| }; |
| |
| enum ctu_can_fd_settings_pex { |
| PROTOCOL_EXCEPTION_DISABLED = 0x0, |
| PROTOCOL_EXCEPTION_ENABLED = 0x1, |
| }; |
| |
| union ctu_can_fd_status { |
| uint32_t u32; |
| struct ctu_can_fd_status_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* STATUS */ |
| uint32_t rxne : 1; |
| uint32_t dor : 1; |
| uint32_t txnf : 1; |
| uint32_t eft : 1; |
| uint32_t rxs : 1; |
| uint32_t txs : 1; |
| uint32_t ewl : 1; |
| uint32_t idle : 1; |
| uint32_t reserved_31_8 : 24; |
| #else |
| uint32_t reserved_31_8 : 24; |
| uint32_t idle : 1; |
| uint32_t ewl : 1; |
| uint32_t txs : 1; |
| uint32_t rxs : 1; |
| uint32_t eft : 1; |
| uint32_t txnf : 1; |
| uint32_t dor : 1; |
| uint32_t rxne : 1; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_command { |
| uint32_t u32; |
| struct ctu_can_fd_command_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| uint32_t reserved_1_0 : 2; |
| /* COMMAND */ |
| uint32_t rrb : 1; |
| uint32_t cdo : 1; |
| uint32_t ercrst : 1; |
| uint32_t rxfcrst : 1; |
| uint32_t txfcrst : 1; |
| uint32_t reserved_31_7 : 25; |
| #else |
| uint32_t reserved_31_7 : 25; |
| uint32_t txfcrst : 1; |
| uint32_t rxfcrst : 1; |
| uint32_t ercrst : 1; |
| uint32_t cdo : 1; |
| uint32_t rrb : 1; |
| uint32_t reserved_1_0 : 2; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_int_stat { |
| uint32_t u32; |
| struct ctu_can_fd_int_stat_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* INT_STAT */ |
| uint32_t rxi : 1; |
| uint32_t txi : 1; |
| uint32_t ewli : 1; |
| uint32_t doi : 1; |
| uint32_t fcsi : 1; |
| uint32_t ali : 1; |
| uint32_t bei : 1; |
| uint32_t ofi : 1; |
| uint32_t rxfi : 1; |
| uint32_t bsi : 1; |
| uint32_t rbnei : 1; |
| uint32_t txbhci : 1; |
| uint32_t reserved_31_12 : 20; |
| #else |
| uint32_t reserved_31_12 : 20; |
| uint32_t txbhci : 1; |
| uint32_t rbnei : 1; |
| uint32_t bsi : 1; |
| uint32_t rxfi : 1; |
| uint32_t ofi : 1; |
| uint32_t bei : 1; |
| uint32_t ali : 1; |
| uint32_t fcsi : 1; |
| uint32_t doi : 1; |
| uint32_t ewli : 1; |
| uint32_t txi : 1; |
| uint32_t rxi : 1; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_int_ena_set { |
| uint32_t u32; |
| struct ctu_can_fd_int_ena_set_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* INT_ENA_SET */ |
| uint32_t int_ena_set : 12; |
| uint32_t reserved_31_12 : 20; |
| #else |
| uint32_t reserved_31_12 : 20; |
| uint32_t int_ena_set : 12; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_int_ena_clr { |
| uint32_t u32; |
| struct ctu_can_fd_int_ena_clr_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* INT_ENA_CLR */ |
| uint32_t int_ena_clr : 12; |
| uint32_t reserved_31_12 : 20; |
| #else |
| uint32_t reserved_31_12 : 20; |
| uint32_t int_ena_clr : 12; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_int_mask_set { |
| uint32_t u32; |
| struct ctu_can_fd_int_mask_set_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* INT_MASK_SET */ |
| uint32_t int_mask_set : 12; |
| uint32_t reserved_31_12 : 20; |
| #else |
| uint32_t reserved_31_12 : 20; |
| uint32_t int_mask_set : 12; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_int_mask_clr { |
| uint32_t u32; |
| struct ctu_can_fd_int_mask_clr_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* INT_MASK_CLR */ |
| uint32_t int_mask_clr : 12; |
| uint32_t reserved_31_12 : 20; |
| #else |
| uint32_t reserved_31_12 : 20; |
| uint32_t int_mask_clr : 12; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_btr { |
| uint32_t u32; |
| struct ctu_can_fd_btr_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* BTR */ |
| uint32_t prop : 7; |
| uint32_t ph1 : 6; |
| uint32_t ph2 : 6; |
| uint32_t brp : 8; |
| uint32_t sjw : 5; |
| #else |
| uint32_t sjw : 5; |
| uint32_t brp : 8; |
| uint32_t ph2 : 6; |
| uint32_t ph1 : 6; |
| uint32_t prop : 7; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_btr_fd { |
| uint32_t u32; |
| struct ctu_can_fd_btr_fd_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* BTR_FD */ |
| uint32_t prop_fd : 6; |
| uint32_t reserved_6 : 1; |
| uint32_t ph1_fd : 5; |
| uint32_t reserved_12 : 1; |
| uint32_t ph2_fd : 5; |
| uint32_t reserved_18 : 1; |
| uint32_t brp_fd : 8; |
| uint32_t sjw_fd : 5; |
| #else |
| uint32_t sjw_fd : 5; |
| uint32_t brp_fd : 8; |
| uint32_t reserved_18 : 1; |
| uint32_t ph2_fd : 5; |
| uint32_t reserved_12 : 1; |
| uint32_t ph1_fd : 5; |
| uint32_t reserved_6 : 1; |
| uint32_t prop_fd : 6; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_ewl_erp_fault_state { |
| uint32_t u32; |
| struct ctu_can_fd_ewl_erp_fault_state_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* EWL */ |
| uint32_t ew_limit : 8; |
| /* ERP */ |
| uint32_t erp_limit : 8; |
| /* FAULT_STATE */ |
| uint32_t era : 1; |
| uint32_t erp : 1; |
| uint32_t bof : 1; |
| uint32_t reserved_31_19 : 13; |
| #else |
| uint32_t reserved_31_19 : 13; |
| uint32_t bof : 1; |
| uint32_t erp : 1; |
| uint32_t era : 1; |
| uint32_t erp_limit : 8; |
| uint32_t ew_limit : 8; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_rec_tec { |
| uint32_t u32; |
| struct ctu_can_fd_rec_tec_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* REC */ |
| uint32_t rec_val : 9; |
| uint32_t reserved_15_9 : 7; |
| /* TEC */ |
| uint32_t tec_val : 9; |
| uint32_t reserved_31_25 : 7; |
| #else |
| uint32_t reserved_31_25 : 7; |
| uint32_t tec_val : 9; |
| uint32_t reserved_15_9 : 7; |
| uint32_t rec_val : 9; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_err_norm_err_fd { |
| uint32_t u32; |
| struct ctu_can_fd_err_norm_err_fd_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* ERR_NORM */ |
| uint32_t err_norm_val : 16; |
| /* ERR_FD */ |
| uint32_t err_fd_val : 16; |
| #else |
| uint32_t err_fd_val : 16; |
| uint32_t err_norm_val : 16; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_ctr_pres { |
| uint32_t u32; |
| struct ctu_can_fd_ctr_pres_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* CTR_PRES */ |
| uint32_t ctpv : 9; |
| uint32_t ptx : 1; |
| uint32_t prx : 1; |
| uint32_t enorm : 1; |
| uint32_t efd : 1; |
| uint32_t reserved_31_13 : 19; |
| #else |
| uint32_t reserved_31_13 : 19; |
| uint32_t efd : 1; |
| uint32_t enorm : 1; |
| uint32_t prx : 1; |
| uint32_t ptx : 1; |
| uint32_t ctpv : 9; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_filter_a_mask { |
| uint32_t u32; |
| struct ctu_can_fd_filter_a_mask_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* FILTER_A_MASK */ |
| uint32_t bit_mask_a_val : 29; |
| uint32_t reserved_31_29 : 3; |
| #else |
| uint32_t reserved_31_29 : 3; |
| uint32_t bit_mask_a_val : 29; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_filter_a_val { |
| uint32_t u32; |
| struct ctu_can_fd_filter_a_val_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* FILTER_A_VAL */ |
| uint32_t bit_val_a_val : 29; |
| uint32_t reserved_31_29 : 3; |
| #else |
| uint32_t reserved_31_29 : 3; |
| uint32_t bit_val_a_val : 29; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_filter_b_mask { |
| uint32_t u32; |
| struct ctu_can_fd_filter_b_mask_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* FILTER_B_MASK */ |
| uint32_t bit_mask_b_val : 29; |
| uint32_t reserved_31_29 : 3; |
| #else |
| uint32_t reserved_31_29 : 3; |
| uint32_t bit_mask_b_val : 29; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_filter_b_val { |
| uint32_t u32; |
| struct ctu_can_fd_filter_b_val_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* FILTER_B_VAL */ |
| uint32_t bit_val_b_val : 29; |
| uint32_t reserved_31_29 : 3; |
| #else |
| uint32_t reserved_31_29 : 3; |
| uint32_t bit_val_b_val : 29; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_filter_c_mask { |
| uint32_t u32; |
| struct ctu_can_fd_filter_c_mask_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* FILTER_C_MASK */ |
| uint32_t bit_mask_c_val : 29; |
| uint32_t reserved_31_29 : 3; |
| #else |
| uint32_t reserved_31_29 : 3; |
| uint32_t bit_mask_c_val : 29; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_filter_c_val { |
| uint32_t u32; |
| struct ctu_can_fd_filter_c_val_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* FILTER_C_VAL */ |
| uint32_t bit_val_c_val : 29; |
| uint32_t reserved_31_29 : 3; |
| #else |
| uint32_t reserved_31_29 : 3; |
| uint32_t bit_val_c_val : 29; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_filter_ran_low { |
| uint32_t u32; |
| struct ctu_can_fd_filter_ran_low_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* FILTER_RAN_LOW */ |
| uint32_t bit_ran_low_val : 29; |
| uint32_t reserved_31_29 : 3; |
| #else |
| uint32_t reserved_31_29 : 3; |
| uint32_t bit_ran_low_val : 29; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_filter_ran_high { |
| uint32_t u32; |
| struct ctu_can_fd_filter_ran_high_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* FILTER_RAN_HIGH */ |
| uint32_t bit_ran_high_val : 29; |
| uint32_t reserved_31_29 : 3; |
| #else |
| uint32_t reserved_31_29 : 3; |
| uint32_t bit_ran_high_val : 29; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_filter_control_filter_status { |
| uint32_t u32; |
| struct ctu_can_fd_filter_control_filter_status_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* FILTER_CONTROL */ |
| uint32_t fanb : 1; |
| uint32_t fane : 1; |
| uint32_t fafb : 1; |
| uint32_t fafe : 1; |
| uint32_t fbnb : 1; |
| uint32_t fbne : 1; |
| uint32_t fbfb : 1; |
| uint32_t fbfe : 1; |
| uint32_t fcnb : 1; |
| uint32_t fcne : 1; |
| uint32_t fcfb : 1; |
| uint32_t fcfe : 1; |
| uint32_t frnb : 1; |
| uint32_t frne : 1; |
| uint32_t frfb : 1; |
| uint32_t frfe : 1; |
| /* FILTER_STATUS */ |
| uint32_t sfa : 1; |
| uint32_t sfb : 1; |
| uint32_t sfc : 1; |
| uint32_t sfr : 1; |
| uint32_t reserved_31_20 : 12; |
| #else |
| uint32_t reserved_31_20 : 12; |
| uint32_t sfr : 1; |
| uint32_t sfc : 1; |
| uint32_t sfb : 1; |
| uint32_t sfa : 1; |
| uint32_t frfe : 1; |
| uint32_t frfb : 1; |
| uint32_t frne : 1; |
| uint32_t frnb : 1; |
| uint32_t fcfe : 1; |
| uint32_t fcfb : 1; |
| uint32_t fcne : 1; |
| uint32_t fcnb : 1; |
| uint32_t fbfe : 1; |
| uint32_t fbfb : 1; |
| uint32_t fbne : 1; |
| uint32_t fbnb : 1; |
| uint32_t fafe : 1; |
| uint32_t fafb : 1; |
| uint32_t fane : 1; |
| uint32_t fanb : 1; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_rx_mem_info { |
| uint32_t u32; |
| struct ctu_can_fd_rx_mem_info_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* RX_MEM_INFO */ |
| uint32_t rx_buff_size : 13; |
| uint32_t reserved_15_13 : 3; |
| uint32_t rx_mem_free : 13; |
| uint32_t reserved_31_29 : 3; |
| #else |
| uint32_t reserved_31_29 : 3; |
| uint32_t rx_mem_free : 13; |
| uint32_t reserved_15_13 : 3; |
| uint32_t rx_buff_size : 13; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_rx_pointers { |
| uint32_t u32; |
| struct ctu_can_fd_rx_pointers_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* RX_POINTERS */ |
| uint32_t rx_wpp : 12; |
| uint32_t reserved_15_12 : 4; |
| uint32_t rx_rpp : 12; |
| uint32_t reserved_31_28 : 4; |
| #else |
| uint32_t reserved_31_28 : 4; |
| uint32_t rx_rpp : 12; |
| uint32_t reserved_15_12 : 4; |
| uint32_t rx_wpp : 12; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_rx_status_rx_settings { |
| uint32_t u32; |
| struct ctu_can_fd_rx_status_rx_settings_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* RX_STATUS */ |
| uint32_t rxe : 1; |
| uint32_t rxf : 1; |
| uint32_t reserved_3_2 : 2; |
| uint32_t rxfrc : 11; |
| uint32_t reserved_15 : 1; |
| /* RX_SETTINGS */ |
| uint32_t rtsop : 1; |
| uint32_t reserved_31_17 : 15; |
| #else |
| uint32_t reserved_31_17 : 15; |
| uint32_t rtsop : 1; |
| uint32_t reserved_15 : 1; |
| uint32_t rxfrc : 11; |
| uint32_t reserved_3_2 : 2; |
| uint32_t rxf : 1; |
| uint32_t rxe : 1; |
| #endif |
| } s; |
| }; |
| |
| enum ctu_can_fd_rx_settings_rtsop { |
| RTS_END = 0x0, |
| RTS_BEG = 0x1, |
| }; |
| |
| union ctu_can_fd_rx_data { |
| uint32_t u32; |
| struct ctu_can_fd_rx_data_s { |
| /* RX_DATA */ |
| uint32_t rx_data : 32; |
| } s; |
| }; |
| |
| union ctu_can_fd_tx_status { |
| uint32_t u32; |
| struct ctu_can_fd_tx_status_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* TX_STATUS */ |
| uint32_t tx1s : 4; |
| uint32_t tx2s : 4; |
| uint32_t tx3s : 4; |
| uint32_t tx4s : 4; |
| uint32_t reserved_31_16 : 16; |
| #else |
| uint32_t reserved_31_16 : 16; |
| uint32_t tx4s : 4; |
| uint32_t tx3s : 4; |
| uint32_t tx2s : 4; |
| uint32_t tx1s : 4; |
| #endif |
| } s; |
| }; |
| |
| enum ctu_can_fd_tx_status_tx1s { |
| TXT_RDY = 0x1, |
| TXT_TRAN = 0x2, |
| TXT_ABTP = 0x3, |
| TXT_TOK = 0x4, |
| TXT_ERR = 0x6, |
| TXT_ABT = 0x7, |
| TXT_ETY = 0x8, |
| }; |
| |
| union ctu_can_fd_tx_command { |
| uint32_t u32; |
| struct ctu_can_fd_tx_command_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* TX_COMMAND */ |
| uint32_t txce : 1; |
| uint32_t txcr : 1; |
| uint32_t txca : 1; |
| uint32_t reserved_7_3 : 5; |
| uint32_t txb1 : 1; |
| uint32_t txb2 : 1; |
| uint32_t txb3 : 1; |
| uint32_t txb4 : 1; |
| uint32_t reserved_31_12 : 20; |
| #else |
| uint32_t reserved_31_12 : 20; |
| uint32_t txb4 : 1; |
| uint32_t txb3 : 1; |
| uint32_t txb2 : 1; |
| uint32_t txb1 : 1; |
| uint32_t reserved_7_3 : 5; |
| uint32_t txca : 1; |
| uint32_t txcr : 1; |
| uint32_t txce : 1; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_tx_priority { |
| uint32_t u32; |
| struct ctu_can_fd_tx_priority_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* TX_PRIORITY */ |
| uint32_t txt1p : 3; |
| uint32_t reserved_3 : 1; |
| uint32_t txt2p : 3; |
| uint32_t reserved_7 : 1; |
| uint32_t txt3p : 3; |
| uint32_t reserved_11 : 1; |
| uint32_t txt4p : 3; |
| uint32_t reserved_31_15 : 17; |
| #else |
| uint32_t reserved_31_15 : 17; |
| uint32_t txt4p : 3; |
| uint32_t reserved_11 : 1; |
| uint32_t txt3p : 3; |
| uint32_t reserved_7 : 1; |
| uint32_t txt2p : 3; |
| uint32_t reserved_3 : 1; |
| uint32_t txt1p : 3; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_err_capt_alc { |
| uint32_t u32; |
| struct ctu_can_fd_err_capt_alc_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* ERR_CAPT */ |
| uint32_t err_pos : 5; |
| uint32_t err_type : 3; |
| uint32_t reserved_15_8 : 8; |
| /* ALC */ |
| uint32_t alc_bit : 5; |
| uint32_t alc_id_field : 3; |
| uint32_t reserved_31_24 : 8; |
| #else |
| uint32_t reserved_31_24 : 8; |
| uint32_t alc_id_field : 3; |
| uint32_t alc_bit : 5; |
| uint32_t reserved_15_8 : 8; |
| uint32_t err_type : 3; |
| uint32_t err_pos : 5; |
| #endif |
| } s; |
| }; |
| |
| enum ctu_can_fd_err_capt_err_pos { |
| ERC_POS_SOF = 0x0, |
| ERC_POS_ARB = 0x1, |
| ERC_POS_CTRL = 0x2, |
| ERC_POS_DATA = 0x3, |
| ERC_POS_CRC = 0x4, |
| ERC_POS_ACK = 0x5, |
| ERC_POS_EOF = 0x6, |
| ERC_POS_ERR = 0x7, |
| ERC_POS_OVRL = 0x8, |
| ERC_POS_OTHER = 0x1f, |
| }; |
| |
| enum ctu_can_fd_err_capt_err_type { |
| ERC_BIT_ERR = 0x0, |
| ERC_CRC_ERR = 0x1, |
| ERC_FRM_ERR = 0x2, |
| ERC_ACK_ERR = 0x3, |
| ERC_STUF_ERR = 0x4, |
| }; |
| |
| enum ctu_can_fd_alc_alc_id_field { |
| ALC_RSVD = 0x0, |
| ALC_BASE_ID = 0x1, |
| ALC_SRR_RTR = 0x2, |
| ALC_IDE = 0x3, |
| ALC_EXTENSION = 0x4, |
| ALC_RTR = 0x5, |
| }; |
| |
| union ctu_can_fd_trv_delay_ssp_cfg { |
| uint32_t u32; |
| struct ctu_can_fd_trv_delay_ssp_cfg_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* TRV_DELAY */ |
| uint32_t trv_delay_value : 7; |
| uint32_t reserved_15_7 : 9; |
| /* SSP_CFG */ |
| uint32_t ssp_offset : 8; |
| uint32_t ssp_src : 2; |
| uint32_t reserved_31_26 : 6; |
| #else |
| uint32_t reserved_31_26 : 6; |
| uint32_t ssp_src : 2; |
| uint32_t ssp_offset : 8; |
| uint32_t reserved_15_7 : 9; |
| uint32_t trv_delay_value : 7; |
| #endif |
| } s; |
| }; |
| |
| enum ctu_can_fd_ssp_cfg_ssp_src { |
| SSP_SRC_MEAS_N_OFFSET = 0x0, |
| SSP_SRC_NO_SSP = 0x1, |
| SSP_SRC_OFFSET = 0x2, |
| }; |
| |
| union ctu_can_fd_rx_fr_ctr { |
| uint32_t u32; |
| struct ctu_can_fd_rx_fr_ctr_s { |
| /* RX_FR_CTR */ |
| uint32_t rx_fr_ctr_val : 32; |
| } s; |
| }; |
| |
| union ctu_can_fd_tx_fr_ctr { |
| uint32_t u32; |
| struct ctu_can_fd_tx_fr_ctr_s { |
| /* TX_FR_CTR */ |
| uint32_t tx_fr_ctr_val : 32; |
| } s; |
| }; |
| |
| union ctu_can_fd_debug_register { |
| uint32_t u32; |
| struct ctu_can_fd_debug_register_s { |
| #ifdef __LITTLE_ENDIAN_BITFIELD |
| /* DEBUG_REGISTER */ |
| uint32_t stuff_count : 3; |
| uint32_t destuff_count : 3; |
| uint32_t pc_arb : 1; |
| uint32_t pc_con : 1; |
| uint32_t pc_dat : 1; |
| uint32_t pc_stc : 1; |
| uint32_t pc_crc : 1; |
| uint32_t pc_crcd : 1; |
| uint32_t pc_ack : 1; |
| uint32_t pc_ackd : 1; |
| uint32_t pc_eof : 1; |
| uint32_t pc_int : 1; |
| uint32_t pc_susp : 1; |
| uint32_t pc_ovr : 1; |
| uint32_t pc_sof : 1; |
| uint32_t reserved_31_19 : 13; |
| #else |
| uint32_t reserved_31_19 : 13; |
| uint32_t pc_sof : 1; |
| uint32_t pc_ovr : 1; |
| uint32_t pc_susp : 1; |
| uint32_t pc_int : 1; |
| uint32_t pc_eof : 1; |
| uint32_t pc_ackd : 1; |
| uint32_t pc_ack : 1; |
| uint32_t pc_crcd : 1; |
| uint32_t pc_crc : 1; |
| uint32_t pc_stc : 1; |
| uint32_t pc_dat : 1; |
| uint32_t pc_con : 1; |
| uint32_t pc_arb : 1; |
| uint32_t destuff_count : 3; |
| uint32_t stuff_count : 3; |
| #endif |
| } s; |
| }; |
| |
| union ctu_can_fd_yolo_reg { |
| uint32_t u32; |
| struct ctu_can_fd_yolo_reg_s { |
| /* YOLO_REG */ |
| uint32_t yolo_val : 32; |
| } s; |
| }; |
| |
| union ctu_can_fd_timestamp_low { |
| uint32_t u32; |
| struct ctu_can_fd_timestamp_low_s { |
| /* TIMESTAMP_LOW */ |
| uint32_t timestamp_low : 32; |
| } s; |
| }; |
| |
| union ctu_can_fd_timestamp_high { |
| uint32_t u32; |
| struct ctu_can_fd_timestamp_high_s { |
| /* TIMESTAMP_HIGH */ |
| uint32_t timestamp_high : 32; |
| } s; |
| }; |
| |
| #endif |