/* SPDX-License-Identifier: GPL-2.0-or-later */ /******************************************************************************* * * CTU CAN FD IP Core * * Copyright (C) 2015-2018 Ondrej Ille FEE CTU * Copyright (C) 2018-2022 Ondrej Ille self-funded * Copyright (C) 2018-2019 Martin Jerabek FEE CTU * Copyright (C) 2018-2022 Pavel Pisa FEE CTU/self-funded * * Project advisors: * Jiri Novak * Pavel Pisa * * 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 file is autogenerated, DO NOT EDIT! */ #ifndef __CTU_CAN_FD_CAN_FD_REGISTER_MAP__ #define __CTU_CAN_FD_CAN_FD_REGISTER_MAP__ #include /* CAN_Registers memory map */ enum ctu_can_fd_can_registers { CTUCANFD_DEVICE_ID = 0x0, CTUCANFD_VERSION = 0x2, CTUCANFD_MODE = 0x4, CTUCANFD_SETTINGS = 0x6, CTUCANFD_STATUS = 0x8, CTUCANFD_COMMAND = 0xc, CTUCANFD_INT_STAT = 0x10, CTUCANFD_INT_ENA_SET = 0x14, CTUCANFD_INT_ENA_CLR = 0x18, CTUCANFD_INT_MASK_SET = 0x1c, CTUCANFD_INT_MASK_CLR = 0x20, CTUCANFD_BTR = 0x24, CTUCANFD_BTR_FD = 0x28, CTUCANFD_EWL = 0x2c, CTUCANFD_ERP = 0x2d, CTUCANFD_FAULT_STATE = 0x2e, CTUCANFD_REC = 0x30, CTUCANFD_TEC = 0x32, CTUCANFD_ERR_NORM = 0x34, CTUCANFD_ERR_FD = 0x36, CTUCANFD_CTR_PRES = 0x38, CTUCANFD_FILTER_A_MASK = 0x3c, CTUCANFD_FILTER_A_VAL = 0x40, CTUCANFD_FILTER_B_MASK = 0x44, CTUCANFD_FILTER_B_VAL = 0x48, CTUCANFD_FILTER_C_MASK = 0x4c, CTUCANFD_FILTER_C_VAL = 0x50, CTUCANFD_FILTER_RAN_LOW = 0x54, CTUCANFD_FILTER_RAN_HIGH = 0x58, CTUCANFD_FILTER_CONTROL = 0x5c, CTUCANFD_FILTER_STATUS = 0x5e, CTUCANFD_RX_MEM_INFO = 0x60, CTUCANFD_RX_POINTERS = 0x64, CTUCANFD_RX_STATUS = 0x68, CTUCANFD_RX_SETTINGS = 0x6a, CTUCANFD_RX_DATA = 0x6c, CTUCANFD_TX_STATUS = 0x70, CTUCANFD_TX_COMMAND = 0x74, CTUCANFD_TXTB_INFO = 0x76, CTUCANFD_TX_PRIORITY = 0x78, CTUCANFD_ERR_CAPT = 0x7c, CTUCANFD_RETR_CTR = 0x7d, CTUCANFD_ALC = 0x7e, CTUCANFD_TS_INFO = 0x7f, CTUCANFD_TRV_DELAY = 0x80, CTUCANFD_SSP_CFG = 0x82, CTUCANFD_RX_FR_CTR = 0x84, CTUCANFD_TX_FR_CTR = 0x88, CTUCANFD_DEBUG_REGISTER = 0x8c, CTUCANFD_YOLO_REG = 0x90, CTUCANFD_TIMESTAMP_LOW = 0x94, CTUCANFD_TIMESTAMP_HIGH = 0x98, CTUCANFD_TXTB1_DATA_1 = 0x100, CTUCANFD_TXTB1_DATA_2 = 0x104, CTUCANFD_TXTB1_DATA_20 = 0x14c, CTUCANFD_TXTB2_DATA_1 = 0x200, CTUCANFD_TXTB2_DATA_2 = 0x204, CTUCANFD_TXTB2_DATA_20 = 0x24c, CTUCANFD_TXTB3_DATA_1 = 0x300, CTUCANFD_TXTB3_DATA_2 = 0x304, CTUCANFD_TXTB3_DATA_20 = 0x34c, CTUCANFD_TXTB4_DATA_1 = 0x400, CTUCANFD_TXTB4_DATA_2 = 0x404, CTUCANFD_TXTB4_DATA_20 = 0x44c, }; /* Control_registers memory region */ /* DEVICE_ID VERSION registers */ #define REG_DEVICE_ID_DEVICE_ID GENMASK(15, 0) #define REG_DEVICE_ID_VER_MINOR GENMASK(23, 16) #define REG_DEVICE_ID_VER_MAJOR GENMASK(31, 24) /* MODE SETTINGS registers */ #define REG_MODE_RST BIT(0) #define REG_MODE_BMM BIT(1) #define REG_MODE_STM BIT(2) #define REG_MODE_AFM BIT(3) #define REG_MODE_FDE BIT(4) #define REG_MODE_TTTM BIT(5) #define REG_MODE_ROM BIT(6) #define REG_MODE_ACF BIT(7) #define REG_MODE_TSTM BIT(8) #define REG_MODE_RXBAM BIT(9) #define REG_MODE_SAM BIT(11) #define REG_MODE_RTRLE BIT(16) #define REG_MODE_RTRTH GENMASK(20, 17) #define REG_MODE_ILBP BIT(21) #define REG_MODE_ENA BIT(22) #define REG_MODE_NISOFD BIT(23) #define REG_MODE_PEX BIT(24) #define REG_MODE_TBFBO BIT(25) #define REG_MODE_FDRF BIT(26) /* STATUS registers */ #define REG_STATUS_RXNE BIT(0) #define REG_STATUS_DOR BIT(1) #define REG_STATUS_TXNF BIT(2) #define REG_STATUS_EFT BIT(3) #define REG_STATUS_RXS BIT(4) #define REG_STATUS_TXS BIT(5) #define REG_STATUS_EWL BIT(6) #define REG_STATUS_IDLE BIT(7) #define REG_STATUS_PEXS BIT(8) #define REG_STATUS_STCNT BIT(16) /* COMMAND registers */ #define REG_COMMAND_RXRPMV BIT(1) #define REG_COMMAND_RRB BIT(2) #define REG_COMMAND_CDO BIT(3) #define REG_COMMAND_ERCRST BIT(4) #define REG_COMMAND_RXFCRST BIT(5) #define REG_COMMAND_TXFCRST BIT(6) #define REG_COMMAND_CPEXS BIT(7) /* INT_STAT registers */ #define REG_INT_STAT_RXI BIT(0) #define REG_INT_STAT_TXI BIT(1) #define REG_INT_STAT_EWLI BIT(2) #define REG_INT_STAT_DOI BIT(3) #define REG_INT_STAT_FCSI BIT(4) #define REG_INT_STAT_ALI BIT(5) #define REG_INT_STAT_BEI BIT(6) #define REG_INT_STAT_OFI BIT(7) #define REG_INT_STAT_RXFI BIT(8) #define REG_INT_STAT_BSI BIT(9) #define REG_INT_STAT_RBNEI BIT(10) #define REG_INT_STAT_TXBHCI BIT(11) /* INT_ENA_SET registers */ #define REG_INT_ENA_SET_INT_ENA_SET GENMASK(11, 0) /* INT_ENA_CLR registers */ #define REG_INT_ENA_CLR_INT_ENA_CLR GENMASK(11, 0) /* INT_MASK_SET registers */ #define REG_INT_MASK_SET_INT_MASK_SET GENMASK(11, 0) /* INT_MASK_CLR registers */ #define REG_INT_MASK_CLR_INT_MASK_CLR GENMASK(11, 0) /* BTR registers */ #define REG_BTR_PROP GENMASK(6, 0) #define REG_BTR_PH1 GENMASK(12, 7) #define REG_BTR_PH2 GENMASK(18, 13) #define REG_BTR_BRP GENMASK(26, 19) #define REG_BTR_SJW GENMASK(31, 27) /* BTR_FD registers */ #define REG_BTR_FD_PROP_FD GENMASK(5, 0) #define REG_BTR_FD_PH1_FD GENMASK(11, 7) #define REG_BTR_FD_PH2_FD GENMASK(17, 13) #define REG_BTR_FD_BRP_FD GENMASK(26, 19) #define REG_BTR_FD_SJW_FD GENMASK(31, 27) /* EWL ERP FAULT_STATE registers */ #define REG_EWL_EW_LIMIT GENMASK(7, 0) #define REG_EWL_ERP_LIMIT GENMASK(15, 8) #define REG_EWL_ERA BIT(16) #define REG_EWL_ERP BIT(17) #define REG_EWL_BOF BIT(18) /* REC TEC registers */ #define REG_REC_REC_VAL GENMASK(8, 0) #define REG_REC_TEC_VAL GENMASK(24, 16) /* ERR_NORM ERR_FD registers */ #define REG_ERR_NORM_ERR_NORM_VAL GENMASK(15, 0) #define REG_ERR_NORM_ERR_FD_VAL GENMASK(31, 16) /* CTR_PRES registers */ #define REG_CTR_PRES_CTPV GENMASK(8, 0) #define REG_CTR_PRES_PTX BIT(9) #define REG_CTR_PRES_PRX BIT(10) #define REG_CTR_PRES_ENORM BIT(11) #define REG_CTR_PRES_EFD BIT(12) /* FILTER_A_MASK registers */ #define REG_FILTER_A_MASK_BIT_MASK_A_VAL GENMASK(28, 0) /* FILTER_A_VAL registers */ #define REG_FILTER_A_VAL_BIT_VAL_A_VAL GENMASK(28, 0) /* FILTER_B_MASK registers */ #define REG_FILTER_B_MASK_BIT_MASK_B_VAL GENMASK(28, 0) /* FILTER_B_VAL registers */ #define REG_FILTER_B_VAL_BIT_VAL_B_VAL GENMASK(28, 0) /* FILTER_C_MASK registers */ #define REG_FILTER_C_MASK_BIT_MASK_C_VAL GENMASK(28, 0) /* FILTER_C_VAL registers */ #define REG_FILTER_C_VAL_BIT_VAL_C_VAL GENMASK(28, 0) /* FILTER_RAN_LOW registers */ #define REG_FILTER_RAN_LOW_BIT_RAN_LOW_VAL GENMASK(28, 0) /* FILTER_RAN_HIGH registers */ #define REG_FILTER_RAN_HIGH_BIT_RAN_HIGH_VAL GENMASK(28, 0) /* FILTER_CONTROL FILTER_STATUS registers */ #define REG_FILTER_CONTROL_FANB BIT(0) #define REG_FILTER_CONTROL_FANE BIT(1) #define REG_FILTER_CONTROL_FAFB BIT(2) #define REG_FILTER_CONTROL_FAFE BIT(3) #define REG_FILTER_CONTROL_FBNB BIT(4) #define REG_FILTER_CONTROL_FBNE BIT(5) #define REG_FILTER_CONTROL_FBFB BIT(6) #define REG_FILTER_CONTROL_FBFE BIT(7) #define REG_FILTER_CONTROL_FCNB BIT(8) #define REG_FILTER_CONTROL_FCNE BIT(9) #define REG_FILTER_CONTROL_FCFB BIT(10) #define REG_FILTER_CONTROL_FCFE BIT(11) #define REG_FILTER_CONTROL_FRNB BIT(12) #define REG_FILTER_CONTROL_FRNE BIT(13) #define REG_FILTER_CONTROL_FRFB BIT(14) #define REG_FILTER_CONTROL_FRFE BIT(15) #define REG_FILTER_CONTROL_SFA BIT(16) #define REG_FILTER_CONTROL_SFB BIT(17) #define REG_FILTER_CONTROL_SFC BIT(18) #define REG_FILTER_CONTROL_SFR BIT(19) /* RX_MEM_INFO registers */ #define REG_RX_MEM_INFO_RX_BUFF_SIZE GENMASK(12, 0) #define REG_RX_MEM_INFO_RX_MEM_FREE GENMASK(28, 16) /* RX_POINTERS registers */ #define REG_RX_POINTERS_RX_WPP GENMASK(11, 0) #define REG_RX_POINTERS_RX_RPP GENMASK(27, 16) /* RX_STATUS RX_SETTINGS registers */ #define REG_RX_STATUS_RXE BIT(0) #define REG_RX_STATUS_RXF BIT(1) #define REG_RX_STATUS_RXMOF BIT(2) #define REG_RX_STATUS_RXFRC GENMASK(14, 4) #define REG_RX_STATUS_RTSOP BIT(16) /* RX_DATA registers */ #define REG_RX_DATA_RX_DATA GENMASK(31, 0) /* TX_STATUS registers */ #define REG_TX_STATUS_TX1S GENMASK(3, 0) #define REG_TX_STATUS_TX2S GENMASK(7, 4) #define REG_TX_STATUS_TX3S GENMASK(11, 8) #define REG_TX_STATUS_TX4S GENMASK(15, 12) #define REG_TX_STATUS_TX5S GENMASK(19, 16) #define REG_TX_STATUS_TX6S GENMASK(23, 20) #define REG_TX_STATUS_TX7S GENMASK(27, 24) #define REG_TX_STATUS_TX8S GENMASK(31, 28) /* TX_COMMAND TXTB_INFO registers */ #define REG_TX_COMMAND_TXCE BIT(0) #define REG_TX_COMMAND_TXCR BIT(1) #define REG_TX_COMMAND_TXCA BIT(2) #define REG_TX_COMMAND_TXB1 BIT(8) #define REG_TX_COMMAND_TXB2 BIT(9) #define REG_TX_COMMAND_TXB3 BIT(10) #define REG_TX_COMMAND_TXB4 BIT(11) #define REG_TX_COMMAND_TXB5 BIT(12) #define REG_TX_COMMAND_TXB6 BIT(13) #define REG_TX_COMMAND_TXB7 BIT(14) #define REG_TX_COMMAND_TXB8 BIT(15) #define REG_TX_COMMAND_TXT_BUFFER_COUNT GENMASK(19, 16) /* TX_PRIORITY registers */ #define REG_TX_PRIORITY_TXT1P GENMASK(2, 0) #define REG_TX_PRIORITY_TXT2P GENMASK(6, 4) #define REG_TX_PRIORITY_TXT3P GENMASK(10, 8) #define REG_TX_PRIORITY_TXT4P GENMASK(14, 12) #define REG_TX_PRIORITY_TXT5P GENMASK(18, 16) #define REG_TX_PRIORITY_TXT6P GENMASK(22, 20) #define REG_TX_PRIORITY_TXT7P GENMASK(26, 24) #define REG_TX_PRIORITY_TXT8P GENMASK(30, 28) /* ERR_CAPT RETR_CTR ALC TS_INFO registers */ #define REG_ERR_CAPT_ERR_POS GENMASK(4, 0) #define REG_ERR_CAPT_ERR_TYPE GENMASK(7, 5) #define REG_ERR_CAPT_RETR_CTR_VAL GENMASK(11, 8) #define REG_ERR_CAPT_ALC_BIT GENMASK(20, 16) #define REG_ERR_CAPT_ALC_ID_FIELD GENMASK(23, 21) #define REG_ERR_CAPT_TS_BITS GENMASK(29, 24) /* TRV_DELAY SSP_CFG registers */ #define REG_TRV_DELAY_TRV_DELAY_VALUE GENMASK(6, 0) #define REG_TRV_DELAY_SSP_OFFSET GENMASK(23, 16) #define REG_TRV_DELAY_SSP_SRC GENMASK(25, 24) /* RX_FR_CTR registers */ #define REG_RX_FR_CTR_RX_FR_CTR_VAL GENMASK(31, 0) /* TX_FR_CTR registers */ #define REG_TX_FR_CTR_TX_FR_CTR_VAL GENMASK(31, 0) /* DEBUG_REGISTER registers */ #define REG_DEBUG_REGISTER_STUFF_COUNT GENMASK(2, 0) #define REG_DEBUG_REGISTER_DESTUFF_COUNT GENMASK(5, 3) #define REG_DEBUG_REGISTER_PC_ARB BIT(6) #define REG_DEBUG_REGISTER_PC_CON BIT(7) #define REG_DEBUG_REGISTER_PC_DAT BIT(8) #define REG_DEBUG_REGISTER_PC_STC BIT(9) #define REG_DEBUG_REGISTER_PC_CRC BIT(10) #define REG_DEBUG_REGISTER_PC_CRCD BIT(11) #define REG_DEBUG_REGISTER_PC_ACK BIT(12) #define REG_DEBUG_REGISTER_PC_ACKD BIT(13) #define REG_DEBUG_REGISTER_PC_EOF BIT(14) #define REG_DEBUG_REGISTER_PC_INT BIT(15) #define REG_DEBUG_REGISTER_PC_SUSP BIT(16) #define REG_DEBUG_REGISTER_PC_OVR BIT(17) #define REG_DEBUG_REGISTER_PC_SOF BIT(18) /* YOLO_REG registers */ #define REG_YOLO_REG_YOLO_VAL GENMASK(31, 0) /* TIMESTAMP_LOW registers */ #define REG_TIMESTAMP_LOW_TIMESTAMP_LOW GENMASK(31, 0) /* TIMESTAMP_HIGH registers */ #define REG_TIMESTAMP_HIGH_TIMESTAMP_HIGH GENMASK(31, 0) #endif