/* 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 __CTU_CAN_FD_CAN_FD_REGISTER_MAP__
#define __CTU_CAN_FD_CAN_FD_REGISTER_MAP__

/* 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_TXTB_INFO            = 0x76,
	CTU_CAN_FD_TX_PRIORITY          = 0x78,
	CTU_CAN_FD_ERR_CAPT             = 0x7c,
	CTU_CAN_FD_RETR_CTR             = 0x7d,
	CTU_CAN_FD_ALC                  = 0x7e,
	CTU_CAN_FD_TS_INFO              = 0x7f,
	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_3        = 0x108,
	CTU_CAN_FD_TXTB1_DATA_4        = 0x10c,
	CTU_CAN_FD_TXTB1_DATA_5        = 0x110,
	CTU_CAN_FD_TXTB1_DATA_6        = 0x114,
	CTU_CAN_FD_TXTB1_DATA_7        = 0x118,
	CTU_CAN_FD_TXTB1_DATA_8        = 0x11c,
	CTU_CAN_FD_TXTB1_DATA_9        = 0x120,
	CTU_CAN_FD_TXTB1_DATA_10       = 0x124,
	CTU_CAN_FD_TXTB1_DATA_11       = 0x128,
	CTU_CAN_FD_TXTB1_DATA_12       = 0x12c,
	CTU_CAN_FD_TXTB1_DATA_13       = 0x130,
	CTU_CAN_FD_TXTB1_DATA_14       = 0x134,
	CTU_CAN_FD_TXTB1_DATA_15       = 0x138,
	CTU_CAN_FD_TXTB1_DATA_16       = 0x13c,
	CTU_CAN_FD_TXTB1_DATA_17       = 0x140,
	CTU_CAN_FD_TXTB1_DATA_18       = 0x144,
	CTU_CAN_FD_TXTB1_DATA_19       = 0x148,
	CTU_CAN_FD_TXTB1_DATA_20       = 0x14c,
	CTU_CAN_FD_TXTB1_DATA_21       = 0x150,
	CTU_CAN_FD_TXTB2_DATA_1        = 0x200,
	CTU_CAN_FD_TXTB2_DATA_2        = 0x204,
	CTU_CAN_FD_TXTB2_DATA_3        = 0x208,
	CTU_CAN_FD_TXTB2_DATA_4        = 0x20c,
	CTU_CAN_FD_TXTB2_DATA_5        = 0x210,
	CTU_CAN_FD_TXTB2_DATA_6        = 0x214,
	CTU_CAN_FD_TXTB2_DATA_7        = 0x218,
	CTU_CAN_FD_TXTB2_DATA_8        = 0x21c,
	CTU_CAN_FD_TXTB2_DATA_9        = 0x220,
	CTU_CAN_FD_TXTB2_DATA_10       = 0x224,
	CTU_CAN_FD_TXTB2_DATA_11       = 0x228,
	CTU_CAN_FD_TXTB2_DATA_12       = 0x22c,
	CTU_CAN_FD_TXTB2_DATA_13       = 0x230,
	CTU_CAN_FD_TXTB2_DATA_14       = 0x234,
	CTU_CAN_FD_TXTB2_DATA_15       = 0x238,
	CTU_CAN_FD_TXTB2_DATA_16       = 0x23c,
	CTU_CAN_FD_TXTB2_DATA_17       = 0x240,
	CTU_CAN_FD_TXTB2_DATA_18       = 0x244,
	CTU_CAN_FD_TXTB2_DATA_19       = 0x248,
	CTU_CAN_FD_TXTB2_DATA_20       = 0x24c,
	CTU_CAN_FD_TXTB2_DATA_21       = 0x250,
	CTU_CAN_FD_TXTB3_DATA_1        = 0x300,
	CTU_CAN_FD_TXTB3_DATA_2        = 0x304,
	CTU_CAN_FD_TXTB3_DATA_3        = 0x308,
	CTU_CAN_FD_TXTB3_DATA_4        = 0x30c,
	CTU_CAN_FD_TXTB3_DATA_5        = 0x310,
	CTU_CAN_FD_TXTB3_DATA_6        = 0x314,
	CTU_CAN_FD_TXTB3_DATA_7        = 0x318,
	CTU_CAN_FD_TXTB3_DATA_8        = 0x31c,
	CTU_CAN_FD_TXTB3_DATA_9        = 0x320,
	CTU_CAN_FD_TXTB3_DATA_10       = 0x324,
	CTU_CAN_FD_TXTB3_DATA_11       = 0x328,
	CTU_CAN_FD_TXTB3_DATA_12       = 0x32c,
	CTU_CAN_FD_TXTB3_DATA_13       = 0x330,
	CTU_CAN_FD_TXTB3_DATA_14       = 0x334,
	CTU_CAN_FD_TXTB3_DATA_15       = 0x338,
	CTU_CAN_FD_TXTB3_DATA_16       = 0x33c,
	CTU_CAN_FD_TXTB3_DATA_17       = 0x340,
	CTU_CAN_FD_TXTB3_DATA_18       = 0x344,
	CTU_CAN_FD_TXTB3_DATA_19       = 0x348,
	CTU_CAN_FD_TXTB3_DATA_20       = 0x34c,
	CTU_CAN_FD_TXTB3_DATA_21       = 0x350,
	CTU_CAN_FD_TXTB4_DATA_1        = 0x400,
	CTU_CAN_FD_TXTB4_DATA_2        = 0x404,
	CTU_CAN_FD_TXTB4_DATA_3        = 0x408,
	CTU_CAN_FD_TXTB4_DATA_4        = 0x40c,
	CTU_CAN_FD_TXTB4_DATA_5        = 0x410,
	CTU_CAN_FD_TXTB4_DATA_6        = 0x414,
	CTU_CAN_FD_TXTB4_DATA_7        = 0x418,
	CTU_CAN_FD_TXTB4_DATA_8        = 0x41c,
	CTU_CAN_FD_TXTB4_DATA_9        = 0x420,
	CTU_CAN_FD_TXTB4_DATA_10       = 0x424,
	CTU_CAN_FD_TXTB4_DATA_11       = 0x428,
	CTU_CAN_FD_TXTB4_DATA_12       = 0x42c,
	CTU_CAN_FD_TXTB4_DATA_13       = 0x430,
	CTU_CAN_FD_TXTB4_DATA_14       = 0x434,
	CTU_CAN_FD_TXTB4_DATA_15       = 0x438,
	CTU_CAN_FD_TXTB4_DATA_16       = 0x43c,
	CTU_CAN_FD_TXTB4_DATA_17       = 0x440,
	CTU_CAN_FD_TXTB4_DATA_18       = 0x444,
	CTU_CAN_FD_TXTB4_DATA_19       = 0x448,
	CTU_CAN_FD_TXTB4_DATA_20       = 0x44c,
	CTU_CAN_FD_TXTB4_DATA_21       = 0x450,
	CTU_CAN_FD_TXTB5_DATA_1        = 0x500,
	CTU_CAN_FD_TXTB5_DATA_2        = 0x504,
	CTU_CAN_FD_TXTB5_DATA_3        = 0x508,
	CTU_CAN_FD_TXTB5_DATA_4        = 0x50c,
	CTU_CAN_FD_TXTB5_DATA_5        = 0x510,
	CTU_CAN_FD_TXTB5_DATA_6        = 0x514,
	CTU_CAN_FD_TXTB5_DATA_7        = 0x518,
	CTU_CAN_FD_TXTB5_DATA_8        = 0x51c,
	CTU_CAN_FD_TXTB5_DATA_9        = 0x520,
	CTU_CAN_FD_TXTB5_DATA_10       = 0x524,
	CTU_CAN_FD_TXTB5_DATA_11       = 0x528,
	CTU_CAN_FD_TXTB5_DATA_12       = 0x52c,
	CTU_CAN_FD_TXTB5_DATA_13       = 0x530,
	CTU_CAN_FD_TXTB5_DATA_14       = 0x534,
	CTU_CAN_FD_TXTB5_DATA_15       = 0x538,
	CTU_CAN_FD_TXTB5_DATA_16       = 0x53c,
	CTU_CAN_FD_TXTB5_DATA_17       = 0x540,
	CTU_CAN_FD_TXTB5_DATA_18       = 0x544,
	CTU_CAN_FD_TXTB5_DATA_19       = 0x548,
	CTU_CAN_FD_TXTB5_DATA_20       = 0x54c,
	CTU_CAN_FD_TXTB5_DATA_21       = 0x550,
	CTU_CAN_FD_TXTB6_DATA_1        = 0x600,
	CTU_CAN_FD_TXTB6_DATA_2        = 0x604,
	CTU_CAN_FD_TXTB6_DATA_3        = 0x608,
	CTU_CAN_FD_TXTB6_DATA_4        = 0x60c,
	CTU_CAN_FD_TXTB6_DATA_5        = 0x610,
	CTU_CAN_FD_TXTB6_DATA_6        = 0x614,
	CTU_CAN_FD_TXTB6_DATA_7        = 0x618,
	CTU_CAN_FD_TXTB6_DATA_8        = 0x61c,
	CTU_CAN_FD_TXTB6_DATA_9        = 0x620,
	CTU_CAN_FD_TXTB6_DATA_10       = 0x624,
	CTU_CAN_FD_TXTB6_DATA_11       = 0x628,
	CTU_CAN_FD_TXTB6_DATA_12       = 0x62c,
	CTU_CAN_FD_TXTB6_DATA_13       = 0x630,
	CTU_CAN_FD_TXTB6_DATA_14       = 0x634,
	CTU_CAN_FD_TXTB6_DATA_15       = 0x638,
	CTU_CAN_FD_TXTB6_DATA_16       = 0x63c,
	CTU_CAN_FD_TXTB6_DATA_17       = 0x640,
	CTU_CAN_FD_TXTB6_DATA_18       = 0x644,
	CTU_CAN_FD_TXTB6_DATA_19       = 0x648,
	CTU_CAN_FD_TXTB6_DATA_20       = 0x64c,
	CTU_CAN_FD_TXTB6_DATA_21       = 0x650,
	CTU_CAN_FD_TXTB7_DATA_1        = 0x700,
	CTU_CAN_FD_TXTB7_DATA_2        = 0x704,
	CTU_CAN_FD_TXTB7_DATA_3        = 0x708,
	CTU_CAN_FD_TXTB7_DATA_4        = 0x70c,
	CTU_CAN_FD_TXTB7_DATA_5        = 0x710,
	CTU_CAN_FD_TXTB7_DATA_6        = 0x714,
	CTU_CAN_FD_TXTB7_DATA_7        = 0x718,
	CTU_CAN_FD_TXTB7_DATA_8        = 0x71c,
	CTU_CAN_FD_TXTB7_DATA_9        = 0x720,
	CTU_CAN_FD_TXTB7_DATA_10       = 0x724,
	CTU_CAN_FD_TXTB7_DATA_11       = 0x728,
	CTU_CAN_FD_TXTB7_DATA_12       = 0x72c,
	CTU_CAN_FD_TXTB7_DATA_13       = 0x730,
	CTU_CAN_FD_TXTB7_DATA_14       = 0x734,
	CTU_CAN_FD_TXTB7_DATA_15       = 0x738,
	CTU_CAN_FD_TXTB7_DATA_16       = 0x73c,
	CTU_CAN_FD_TXTB7_DATA_17       = 0x740,
	CTU_CAN_FD_TXTB7_DATA_18       = 0x744,
	CTU_CAN_FD_TXTB7_DATA_19       = 0x748,
	CTU_CAN_FD_TXTB7_DATA_20       = 0x74c,
	CTU_CAN_FD_TXTB7_DATA_21       = 0x750,
	CTU_CAN_FD_TXTB8_DATA_1        = 0x800,
	CTU_CAN_FD_TXTB8_DATA_2        = 0x804,
	CTU_CAN_FD_TXTB8_DATA_3        = 0x808,
	CTU_CAN_FD_TXTB8_DATA_4        = 0x80c,
	CTU_CAN_FD_TXTB8_DATA_5        = 0x810,
	CTU_CAN_FD_TXTB8_DATA_6        = 0x814,
	CTU_CAN_FD_TXTB8_DATA_7        = 0x818,
	CTU_CAN_FD_TXTB8_DATA_8        = 0x81c,
	CTU_CAN_FD_TXTB8_DATA_9        = 0x820,
	CTU_CAN_FD_TXTB8_DATA_10       = 0x824,
	CTU_CAN_FD_TXTB8_DATA_11       = 0x828,
	CTU_CAN_FD_TXTB8_DATA_12       = 0x82c,
	CTU_CAN_FD_TXTB8_DATA_13       = 0x830,
	CTU_CAN_FD_TXTB8_DATA_14       = 0x834,
	CTU_CAN_FD_TXTB8_DATA_15       = 0x838,
	CTU_CAN_FD_TXTB8_DATA_16       = 0x83c,
	CTU_CAN_FD_TXTB8_DATA_17       = 0x840,
	CTU_CAN_FD_TXTB8_DATA_18       = 0x844,
	CTU_CAN_FD_TXTB8_DATA_19       = 0x848,
	CTU_CAN_FD_TXTB8_DATA_20       = 0x84c,
	CTU_CAN_FD_TXTB8_DATA_21       = 0x850,
	CTU_CAN_FD_TST_CONTROL         = 0x900,
	CTU_CAN_FD_TST_DEST            = 0x904,
	CTU_CAN_FD_TST_WDATA           = 0x908,
	CTU_CAN_FD_TST_RDATA           = 0x90c,
};


/* 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 bmm                     : 1;
		uint32_t stm                     : 1;
		uint32_t afm                     : 1;
		uint32_t fde                     : 1;
		uint32_t tttm                    : 1;
		uint32_t rom                     : 1;
		uint32_t acf                     : 1;
		uint32_t tstm                    : 1;
		uint32_t rxbam                   : 1;
		uint32_t txbbm                   : 1;
		uint32_t sam                     : 1;
		uint32_t erfm                    : 1;
		uint32_t reserved_15_13          : 3;
  /* 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 tbfbo                   : 1;
		uint32_t fdrf                    : 1;
		uint32_t pchke                   : 1;
		uint32_t reserved_31_28          : 4;
#else
		uint32_t reserved_31_28          : 4;
		uint32_t pchke                   : 1;
		uint32_t fdrf                    : 1;
		uint32_t tbfbo                   : 1;
		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_13          : 3;
		uint32_t erfm                    : 1;
		uint32_t sam                     : 1;
		uint32_t txbbm                   : 1;
		uint32_t rxbam                   : 1;
		uint32_t tstm                    : 1;
		uint32_t acf                     : 1;
		uint32_t rom                     : 1;
		uint32_t tttm                    : 1;
		uint32_t fde                     : 1;
		uint32_t afm                     : 1;
		uint32_t stm                     : 1;
		uint32_t bmm                     : 1;
		uint32_t rst                     : 1;
#endif
	} s;
};

enum ctu_can_fd_mode_bmm {
	BMM_DISABLED       = 0x0,
	BMM_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_tttm {
	TTTM_DISABLED       = 0x0,
	TTTM_ENABLED        = 0x1,
};

enum ctu_can_fd_mode_rom {
	ROM_DISABLED       = 0x0,
	ROM_ENABLED        = 0x1,
};

enum ctu_can_fd_mode_acf {
	ACF_DISABLED       = 0x0,
	ACF_ENABLED        = 0x1,
};

enum ctu_can_fd_mode_rxbam {
	RXBAM_DISABLED       = 0x0,
	RXBAM_ENABLED        = 0x1,
};

enum ctu_can_fd_mode_txbbm {
	TXBBM_DISABLED       = 0x0,
	TXBBM_ENABLED        = 0x1,
};

enum ctu_can_fd_mode_sam {
	SAM_DISABLE       = 0x0,
	SAM_ENABLE        = 0x1,
};

enum ctu_can_fd_mode_erfm {
	ERFM_DISABLED       = 0x0,
	ERFM_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,
};

enum ctu_can_fd_settings_tbfbo {
	TXTBUF_FAILED_BUS_OFF_DISABLED       = 0x0,
	TXTBUF_FAILED_BUS_OFF_ENABLED        = 0x1,
};

enum ctu_can_fd_settings_fdrf {
	DROP_RF_DISABLED       = 0x0,
	DROP_RF_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 pexs                    : 1;
		uint32_t rxpe                    : 1;
		uint32_t txpe                    : 1;
		uint32_t txdpe                   : 1;
		uint32_t reserved_15_12          : 4;
		uint32_t stcnt                   : 1;
		uint32_t strgs                   : 1;
		uint32_t sprt                    : 1;
		uint32_t reserved_31_19         : 13;
#else
		uint32_t reserved_31_19         : 13;
		uint32_t sprt                    : 1;
		uint32_t strgs                   : 1;
		uint32_t stcnt                   : 1;
		uint32_t reserved_15_12          : 4;
		uint32_t txdpe                   : 1;
		uint32_t txpe                    : 1;
		uint32_t rxpe                    : 1;
		uint32_t pexs                    : 1;
		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_0              : 1;
  /* COMMAND */
		uint32_t rxrpmv                  : 1;
		uint32_t rrb                     : 1;
		uint32_t cdo                     : 1;
		uint32_t ercrst                  : 1;
		uint32_t rxfcrst                 : 1;
		uint32_t txfcrst                 : 1;
		uint32_t cpexs                   : 1;
		uint32_t crxpe                   : 1;
		uint32_t ctxpe                   : 1;
		uint32_t ctxdpe                  : 1;
		uint32_t reserved_31_11         : 21;
#else
		uint32_t reserved_31_11         : 21;
		uint32_t ctxdpe                  : 1;
		uint32_t ctxpe                   : 1;
		uint32_t crxpe                   : 1;
		uint32_t cpexs                   : 1;
		uint32_t txfcrst                 : 1;
		uint32_t rxfcrst                 : 1;
		uint32_t ercrst                  : 1;
		uint32_t cdo                     : 1;
		uint32_t rrb                     : 1;
		uint32_t rxrpmv                  : 1;
		uint32_t reserved_0              : 1;
#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 rxmof                   : 1;
		uint32_t reserved_3              : 1;
		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              : 1;
		uint32_t rxmof                   : 1;
		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 tx5s                    : 4;
		uint32_t tx6s                    : 4;
		uint32_t tx7s                    : 4;
		uint32_t tx8s                    : 4;
#else
		uint32_t tx8s                    : 4;
		uint32_t tx7s                    : 4;
		uint32_t tx6s                    : 4;
		uint32_t tx5s                    : 4;
		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_NOT_EXIST       = 0x0,
	TXT_RDY             = 0x1,
	TXT_TRAN            = 0x2,
	TXT_ABTP            = 0x3,
	TXT_TOK             = 0x4,
	TXT_ERR             = 0x6,
	TXT_ABT             = 0x7,
	TXT_ETY             = 0x8,
	TXT_PER             = 0x9,
};

union ctu_can_fd_tx_command_txtb_info {
	uint32_t u32;
	struct ctu_can_fd_tx_command_txtb_info_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 txb5                    : 1;
		uint32_t txb6                    : 1;
		uint32_t txb7                    : 1;
		uint32_t txb8                    : 1;
  /* TXTB_INFO */
		uint32_t txt_buffer_count        : 4;
		uint32_t reserved_31_20         : 12;
#else
		uint32_t reserved_31_20         : 12;
		uint32_t txt_buffer_count        : 4;
		uint32_t txb8                    : 1;
		uint32_t txb7                    : 1;
		uint32_t txb6                    : 1;
		uint32_t txb5                    : 1;
		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_15             : 1;
		uint32_t txt5p                   : 3;
		uint32_t reserved_19             : 1;
		uint32_t txt6p                   : 3;
		uint32_t reserved_23             : 1;
		uint32_t txt7p                   : 3;
		uint32_t reserved_27             : 1;
		uint32_t txt8p                   : 3;
		uint32_t reserved_31             : 1;
#else
		uint32_t reserved_31             : 1;
		uint32_t txt8p                   : 3;
		uint32_t reserved_27             : 1;
		uint32_t txt7p                   : 3;
		uint32_t reserved_23             : 1;
		uint32_t txt6p                   : 3;
		uint32_t reserved_19             : 1;
		uint32_t txt5p                   : 3;
		uint32_t reserved_15             : 1;
		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_retr_ctr_alc_ts_info {
	uint32_t u32;
	struct ctu_can_fd_err_capt_retr_ctr_alc_ts_info_s {
#ifdef __LITTLE_ENDIAN_BITFIELD
  /* ERR_CAPT */
		uint32_t err_pos                 : 4;
		uint32_t err_erp                 : 1;
		uint32_t err_type                : 3;
  /* RETR_CTR */
		uint32_t retr_ctr_val            : 4;
		uint32_t reserved_15_12          : 4;
  /* ALC */
		uint32_t alc_bit                 : 5;
		uint32_t alc_id_field            : 3;
  /* TS_INFO */
		uint32_t ts_bits                 : 6;
		uint32_t reserved_31_30          : 2;
#else
		uint32_t reserved_31_30          : 2;
		uint32_t ts_bits                 : 6;
		uint32_t alc_id_field            : 3;
		uint32_t alc_bit                 : 5;
		uint32_t reserved_15_12          : 4;
		uint32_t retr_ctr_val            : 4;
		uint32_t err_type                : 3;
		uint32_t err_erp                 : 1;
		uint32_t err_pos                 : 4;
#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       = 0xf,
};

enum ctu_can_fd_err_capt_err_erp {
	ERR_ERP_ACTIVE        = 0x0,
	ERR_ERP_PASSIVE       = 0x1,
};

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,
	ERC_PRT_ERR        = 0x5,
};

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;
};

union ctu_can_fd_tst_control {
	uint32_t u32;
	struct ctu_can_fd_tst_control_s {
#ifdef __LITTLE_ENDIAN_BITFIELD
  /* TST_CONTROL */
		uint32_t tmaena                  : 1;
		uint32_t twrstb                  : 1;
		uint32_t reserved_31_2          : 30;
#else
		uint32_t reserved_31_2          : 30;
		uint32_t twrstb                  : 1;
		uint32_t tmaena                  : 1;
#endif
	} s;
};

union ctu_can_fd_tst_dest {
	uint32_t u32;
	struct ctu_can_fd_tst_dest_s {
#ifdef __LITTLE_ENDIAN_BITFIELD
  /* TST_DEST */
		uint32_t tst_addr               : 16;
		uint32_t tst_mtgt                : 4;
		uint32_t reserved_31_20         : 12;
#else
		uint32_t reserved_31_20         : 12;
		uint32_t tst_mtgt                : 4;
		uint32_t tst_addr               : 16;
#endif
	} s;
};

enum ctu_can_fd_tst_dest_tst_mtgt {
	TMTGT_NONE          = 0x0,
	TMTGT_RXBUF         = 0x1,
	TMTGT_TXTBUF1       = 0x2,
	TMTGT_TXTBUF2       = 0x3,
	TMTGT_TXTBUF3       = 0x4,
	TMTGT_TXTBUF4       = 0x5,
	TMTGT_TXTBUF5       = 0x6,
	TMTGT_TXTBUF6       = 0x7,
	TMTGT_TXTBUF7       = 0x8,
	TMTGT_TXTBUF8       = 0x9,
};

union ctu_can_fd_tst_wdata {
	uint32_t u32;
	struct ctu_can_fd_tst_wdata_s {
  /* TST_WDATA */
		uint32_t tst_wdata              : 32;
	} s;
};

union ctu_can_fd_tst_rdata {
	uint32_t u32;
	struct ctu_can_fd_tst_rdata_s {
  /* TST_RDATA */
		uint32_t tst_rdata              : 32;
	} s;
};

#endif
