]> git.donarmstrong.com Git - qmk_firmware.git/blob - lib/arm_atsam/packs/atmel/SAMD51_DFP/1.0.70/include/component/can.h
Massdrop keyboard support (#3780)
[qmk_firmware.git] / lib / arm_atsam / packs / atmel / SAMD51_DFP / 1.0.70 / include / component / can.h
1 /**
2  * \file
3  *
4  * \brief Component description for CAN
5  *
6  * Copyright (c) 2016 Atmel Corporation. All rights reserved.
7  *
8  * \asf_license_start
9  *
10  * \page License
11  *
12  * Redistribution and use in source and binary forms, with or without
13  * modification, are permitted provided that the following conditions are met:
14  *
15  * 1. Redistributions of source code must retain the above copyright notice,
16  *    this list of conditions and the following disclaimer.
17  *
18  * 2. Redistributions in binary form must reproduce the above copyright notice,
19  *    this list of conditions and the following disclaimer in the documentation
20  *    and/or other materials provided with the distribution.
21  *
22  * 3. The name of Atmel may not be used to endorse or promote products derived
23  *    from this software without specific prior written permission.
24  *
25  * 4. This software may only be redistributed and used in connection with an
26  *    Atmel microcontroller product.
27  *
28  * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
29  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
30  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
31  * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
32  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
34  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
35  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
36  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
37  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
38  * POSSIBILITY OF SUCH DAMAGE.
39  *
40  * \asf_license_stop
41  *
42  */
43
44 #ifndef _SAMD51_CAN_COMPONENT_
45 #define _SAMD51_CAN_COMPONENT_
46
47 /* ========================================================================== */
48 /**  SOFTWARE API DEFINITION FOR CAN */
49 /* ========================================================================== */
50 /** \addtogroup SAMD51_CAN Control Area Network */
51 /*@{*/
52
53 #define CAN_U2003
54 #define REV_CAN                     0x321
55
56 /* -------- CAN_CREL : (CAN Offset: 0x00) (R/  32) Core Release -------- */
57 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
58 typedef union {
59   struct {
60     uint32_t :20;              /*!< bit:  0..19  Reserved                           */
61     uint32_t SUBSTEP:4;        /*!< bit: 20..23  Sub-step of Core Release           */
62     uint32_t STEP:4;           /*!< bit: 24..27  Step of Core Release               */
63     uint32_t REL:4;            /*!< bit: 28..31  Core Release                       */
64   } bit;                       /*!< Structure used for bit  access                  */
65   uint32_t reg;                /*!< Type      used for register access              */
66 } CAN_CREL_Type;
67 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
68
69 #define CAN_CREL_OFFSET             0x00         /**< \brief (CAN_CREL offset) Core Release */
70 #define CAN_CREL_RESETVALUE         0x32100000u  /**< \brief (CAN_CREL reset_value) Core Release */
71
72 #define CAN_CREL_SUBSTEP_Pos        20           /**< \brief (CAN_CREL) Sub-step of Core Release */
73 #define CAN_CREL_SUBSTEP_Msk        (0xFu << CAN_CREL_SUBSTEP_Pos)
74 #define CAN_CREL_SUBSTEP(value)     (CAN_CREL_SUBSTEP_Msk & ((value) << CAN_CREL_SUBSTEP_Pos))
75 #define CAN_CREL_STEP_Pos           24           /**< \brief (CAN_CREL) Step of Core Release */
76 #define CAN_CREL_STEP_Msk           (0xFu << CAN_CREL_STEP_Pos)
77 #define CAN_CREL_STEP(value)        (CAN_CREL_STEP_Msk & ((value) << CAN_CREL_STEP_Pos))
78 #define CAN_CREL_REL_Pos            28           /**< \brief (CAN_CREL) Core Release */
79 #define CAN_CREL_REL_Msk            (0xFu << CAN_CREL_REL_Pos)
80 #define CAN_CREL_REL(value)         (CAN_CREL_REL_Msk & ((value) << CAN_CREL_REL_Pos))
81 #define CAN_CREL_MASK               0xFFF00000u  /**< \brief (CAN_CREL) MASK Register */
82
83 /* -------- CAN_ENDN : (CAN Offset: 0x04) (R/  32) Endian -------- */
84 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
85 typedef union {
86   struct {
87     uint32_t ETV:32;           /*!< bit:  0..31  Endianness Test Value              */
88   } bit;                       /*!< Structure used for bit  access                  */
89   uint32_t reg;                /*!< Type      used for register access              */
90 } CAN_ENDN_Type;
91 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
92
93 #define CAN_ENDN_OFFSET             0x04         /**< \brief (CAN_ENDN offset) Endian */
94 #define CAN_ENDN_RESETVALUE         0x87654321u  /**< \brief (CAN_ENDN reset_value) Endian */
95
96 #define CAN_ENDN_ETV_Pos            0            /**< \brief (CAN_ENDN) Endianness Test Value */
97 #define CAN_ENDN_ETV_Msk            (0xFFFFFFFFu << CAN_ENDN_ETV_Pos)
98 #define CAN_ENDN_ETV(value)         (CAN_ENDN_ETV_Msk & ((value) << CAN_ENDN_ETV_Pos))
99 #define CAN_ENDN_MASK               0xFFFFFFFFu  /**< \brief (CAN_ENDN) MASK Register */
100
101 /* -------- CAN_MRCFG : (CAN Offset: 0x08) (R/W 32) Message RAM Configuration -------- */
102 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
103 typedef union {
104   struct {
105     uint32_t QOS:2;            /*!< bit:  0.. 1  Quality of Service                 */
106     uint32_t :30;              /*!< bit:  2..31  Reserved                           */
107   } bit;                       /*!< Structure used for bit  access                  */
108   uint32_t reg;                /*!< Type      used for register access              */
109 } CAN_MRCFG_Type;
110 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
111
112 #define CAN_MRCFG_OFFSET            0x08         /**< \brief (CAN_MRCFG offset) Message RAM Configuration */
113 #define CAN_MRCFG_RESETVALUE        0x00000002u  /**< \brief (CAN_MRCFG reset_value) Message RAM Configuration */
114
115 #define CAN_MRCFG_QOS_Pos           0            /**< \brief (CAN_MRCFG) Quality of Service */
116 #define CAN_MRCFG_QOS_Msk           (0x3u << CAN_MRCFG_QOS_Pos)
117 #define CAN_MRCFG_QOS(value)        (CAN_MRCFG_QOS_Msk & ((value) << CAN_MRCFG_QOS_Pos))
118 #define   CAN_MRCFG_QOS_DISABLE_Val       0x0u   /**< \brief (CAN_MRCFG) Background (no sensitive operation) */
119 #define   CAN_MRCFG_QOS_LOW_Val           0x1u   /**< \brief (CAN_MRCFG) Sensitive Bandwidth */
120 #define   CAN_MRCFG_QOS_MEDIUM_Val        0x2u   /**< \brief (CAN_MRCFG) Sensitive Latency */
121 #define   CAN_MRCFG_QOS_HIGH_Val          0x3u   /**< \brief (CAN_MRCFG) Critical Latency */
122 #define CAN_MRCFG_QOS_DISABLE       (CAN_MRCFG_QOS_DISABLE_Val     << CAN_MRCFG_QOS_Pos)
123 #define CAN_MRCFG_QOS_LOW           (CAN_MRCFG_QOS_LOW_Val         << CAN_MRCFG_QOS_Pos)
124 #define CAN_MRCFG_QOS_MEDIUM        (CAN_MRCFG_QOS_MEDIUM_Val      << CAN_MRCFG_QOS_Pos)
125 #define CAN_MRCFG_QOS_HIGH          (CAN_MRCFG_QOS_HIGH_Val        << CAN_MRCFG_QOS_Pos)
126 #define CAN_MRCFG_MASK              0x00000003u  /**< \brief (CAN_MRCFG) MASK Register */
127
128 /* -------- CAN_DBTP : (CAN Offset: 0x0C) (R/W 32) Fast Bit Timing and Prescaler -------- */
129 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
130 typedef union {
131   struct {
132     uint32_t DSJW:4;           /*!< bit:  0.. 3  Data (Re)Synchronization Jump Width */
133     uint32_t DTSEG2:4;         /*!< bit:  4.. 7  Data time segment after sample point */
134     uint32_t DTSEG1:5;         /*!< bit:  8..12  Data time segment before sample point */
135     uint32_t :3;               /*!< bit: 13..15  Reserved                           */
136     uint32_t DBRP:5;           /*!< bit: 16..20  Data Baud Rate Prescaler           */
137     uint32_t :2;               /*!< bit: 21..22  Reserved                           */
138     uint32_t TDC:1;            /*!< bit:     23  Tranceiver Delay Compensation      */
139     uint32_t :8;               /*!< bit: 24..31  Reserved                           */
140   } bit;                       /*!< Structure used for bit  access                  */
141   uint32_t reg;                /*!< Type      used for register access              */
142 } CAN_DBTP_Type;
143 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
144
145 #define CAN_DBTP_OFFSET             0x0C         /**< \brief (CAN_DBTP offset) Fast Bit Timing and Prescaler */
146 #define CAN_DBTP_RESETVALUE         0x00000A33u  /**< \brief (CAN_DBTP reset_value) Fast Bit Timing and Prescaler */
147
148 #define CAN_DBTP_DSJW_Pos           0            /**< \brief (CAN_DBTP) Data (Re)Synchronization Jump Width */
149 #define CAN_DBTP_DSJW_Msk           (0xFu << CAN_DBTP_DSJW_Pos)
150 #define CAN_DBTP_DSJW(value)        (CAN_DBTP_DSJW_Msk & ((value) << CAN_DBTP_DSJW_Pos))
151 #define CAN_DBTP_DTSEG2_Pos         4            /**< \brief (CAN_DBTP) Data time segment after sample point */
152 #define CAN_DBTP_DTSEG2_Msk         (0xFu << CAN_DBTP_DTSEG2_Pos)
153 #define CAN_DBTP_DTSEG2(value)      (CAN_DBTP_DTSEG2_Msk & ((value) << CAN_DBTP_DTSEG2_Pos))
154 #define CAN_DBTP_DTSEG1_Pos         8            /**< \brief (CAN_DBTP) Data time segment before sample point */
155 #define CAN_DBTP_DTSEG1_Msk         (0x1Fu << CAN_DBTP_DTSEG1_Pos)
156 #define CAN_DBTP_DTSEG1(value)      (CAN_DBTP_DTSEG1_Msk & ((value) << CAN_DBTP_DTSEG1_Pos))
157 #define CAN_DBTP_DBRP_Pos           16           /**< \brief (CAN_DBTP) Data Baud Rate Prescaler */
158 #define CAN_DBTP_DBRP_Msk           (0x1Fu << CAN_DBTP_DBRP_Pos)
159 #define CAN_DBTP_DBRP(value)        (CAN_DBTP_DBRP_Msk & ((value) << CAN_DBTP_DBRP_Pos))
160 #define CAN_DBTP_TDC_Pos            23           /**< \brief (CAN_DBTP) Tranceiver Delay Compensation */
161 #define CAN_DBTP_TDC                (0x1u << CAN_DBTP_TDC_Pos)
162 #define CAN_DBTP_MASK               0x009F1FFFu  /**< \brief (CAN_DBTP) MASK Register */
163
164 /* -------- CAN_TEST : (CAN Offset: 0x10) (R/W 32) Test -------- */
165 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
166 typedef union {
167   struct {
168     uint32_t :4;               /*!< bit:  0.. 3  Reserved                           */
169     uint32_t LBCK:1;           /*!< bit:      4  Loop Back Mode                     */
170     uint32_t TX:2;             /*!< bit:  5.. 6  Control of Transmit Pin            */
171     uint32_t RX:1;             /*!< bit:      7  Receive Pin                        */
172     uint32_t :24;              /*!< bit:  8..31  Reserved                           */
173   } bit;                       /*!< Structure used for bit  access                  */
174   uint32_t reg;                /*!< Type      used for register access              */
175 } CAN_TEST_Type;
176 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
177
178 #define CAN_TEST_OFFSET             0x10         /**< \brief (CAN_TEST offset) Test */
179 #define CAN_TEST_RESETVALUE         0x00000000u  /**< \brief (CAN_TEST reset_value) Test */
180
181 #define CAN_TEST_LBCK_Pos           4            /**< \brief (CAN_TEST) Loop Back Mode */
182 #define CAN_TEST_LBCK               (0x1u << CAN_TEST_LBCK_Pos)
183 #define CAN_TEST_TX_Pos             5            /**< \brief (CAN_TEST) Control of Transmit Pin */
184 #define CAN_TEST_TX_Msk             (0x3u << CAN_TEST_TX_Pos)
185 #define CAN_TEST_TX(value)          (CAN_TEST_TX_Msk & ((value) << CAN_TEST_TX_Pos))
186 #define   CAN_TEST_TX_CORE_Val            0x0u   /**< \brief (CAN_TEST) TX controlled by CAN core */
187 #define   CAN_TEST_TX_SAMPLE_Val          0x1u   /**< \brief (CAN_TEST) TX monitoring sample point */
188 #define   CAN_TEST_TX_DOMINANT_Val        0x2u   /**< \brief (CAN_TEST) Dominant (0) level at pin CAN_TX */
189 #define   CAN_TEST_TX_RECESSIVE_Val       0x3u   /**< \brief (CAN_TEST) Recessive (1) level at pin CAN_TX */
190 #define CAN_TEST_TX_CORE            (CAN_TEST_TX_CORE_Val          << CAN_TEST_TX_Pos)
191 #define CAN_TEST_TX_SAMPLE          (CAN_TEST_TX_SAMPLE_Val        << CAN_TEST_TX_Pos)
192 #define CAN_TEST_TX_DOMINANT        (CAN_TEST_TX_DOMINANT_Val      << CAN_TEST_TX_Pos)
193 #define CAN_TEST_TX_RECESSIVE       (CAN_TEST_TX_RECESSIVE_Val     << CAN_TEST_TX_Pos)
194 #define CAN_TEST_RX_Pos             7            /**< \brief (CAN_TEST) Receive Pin */
195 #define CAN_TEST_RX                 (0x1u << CAN_TEST_RX_Pos)
196 #define CAN_TEST_MASK               0x000000F0u  /**< \brief (CAN_TEST) MASK Register */
197
198 /* -------- CAN_RWD : (CAN Offset: 0x14) (R/W 32) RAM Watchdog -------- */
199 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
200 typedef union {
201   struct {
202     uint32_t WDC:8;            /*!< bit:  0.. 7  Watchdog Configuration             */
203     uint32_t WDV:8;            /*!< bit:  8..15  Watchdog Value                     */
204     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
205   } bit;                       /*!< Structure used for bit  access                  */
206   uint32_t reg;                /*!< Type      used for register access              */
207 } CAN_RWD_Type;
208 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
209
210 #define CAN_RWD_OFFSET              0x14         /**< \brief (CAN_RWD offset) RAM Watchdog */
211 #define CAN_RWD_RESETVALUE          0x00000000u  /**< \brief (CAN_RWD reset_value) RAM Watchdog */
212
213 #define CAN_RWD_WDC_Pos             0            /**< \brief (CAN_RWD) Watchdog Configuration */
214 #define CAN_RWD_WDC_Msk             (0xFFu << CAN_RWD_WDC_Pos)
215 #define CAN_RWD_WDC(value)          (CAN_RWD_WDC_Msk & ((value) << CAN_RWD_WDC_Pos))
216 #define CAN_RWD_WDV_Pos             8            /**< \brief (CAN_RWD) Watchdog Value */
217 #define CAN_RWD_WDV_Msk             (0xFFu << CAN_RWD_WDV_Pos)
218 #define CAN_RWD_WDV(value)          (CAN_RWD_WDV_Msk & ((value) << CAN_RWD_WDV_Pos))
219 #define CAN_RWD_MASK                0x0000FFFFu  /**< \brief (CAN_RWD) MASK Register */
220
221 /* -------- CAN_CCCR : (CAN Offset: 0x18) (R/W 32) CC Control -------- */
222 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
223 typedef union {
224   struct {
225     uint32_t INIT:1;           /*!< bit:      0  Initialization                     */
226     uint32_t CCE:1;            /*!< bit:      1  Configuration Change Enable        */
227     uint32_t ASM:1;            /*!< bit:      2  ASM Restricted Operation Mode      */
228     uint32_t CSA:1;            /*!< bit:      3  Clock Stop Acknowledge             */
229     uint32_t CSR:1;            /*!< bit:      4  Clock Stop Request                 */
230     uint32_t MON:1;            /*!< bit:      5  Bus Monitoring Mode                */
231     uint32_t DAR:1;            /*!< bit:      6  Disable Automatic Retransmission   */
232     uint32_t TEST:1;           /*!< bit:      7  Test Mode Enable                   */
233     uint32_t FDOE:1;           /*!< bit:      8  FD Operation Enable                */
234     uint32_t BRSE:1;           /*!< bit:      9  Bit Rate Switch Enable             */
235     uint32_t :2;               /*!< bit: 10..11  Reserved                           */
236     uint32_t PXHD:1;           /*!< bit:     12  Protocol Exception Handling Disable */
237     uint32_t EFBI:1;           /*!< bit:     13  Edge Filtering during Bus Integration */
238     uint32_t TXP:1;            /*!< bit:     14  Transmit Pause                     */
239     uint32_t NISO:1;           /*!< bit:     15  Non ISO Operation                  */
240     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
241   } bit;                       /*!< Structure used for bit  access                  */
242   uint32_t reg;                /*!< Type      used for register access              */
243 } CAN_CCCR_Type;
244 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
245
246 #define CAN_CCCR_OFFSET             0x18         /**< \brief (CAN_CCCR offset) CC Control */
247 #define CAN_CCCR_RESETVALUE         0x00000001u  /**< \brief (CAN_CCCR reset_value) CC Control */
248
249 #define CAN_CCCR_INIT_Pos           0            /**< \brief (CAN_CCCR) Initialization */
250 #define CAN_CCCR_INIT               (0x1u << CAN_CCCR_INIT_Pos)
251 #define CAN_CCCR_CCE_Pos            1            /**< \brief (CAN_CCCR) Configuration Change Enable */
252 #define CAN_CCCR_CCE                (0x1u << CAN_CCCR_CCE_Pos)
253 #define CAN_CCCR_ASM_Pos            2            /**< \brief (CAN_CCCR) ASM Restricted Operation Mode */
254 #define CAN_CCCR_ASM                (0x1u << CAN_CCCR_ASM_Pos)
255 #define CAN_CCCR_CSA_Pos            3            /**< \brief (CAN_CCCR) Clock Stop Acknowledge */
256 #define CAN_CCCR_CSA                (0x1u << CAN_CCCR_CSA_Pos)
257 #define CAN_CCCR_CSR_Pos            4            /**< \brief (CAN_CCCR) Clock Stop Request */
258 #define CAN_CCCR_CSR                (0x1u << CAN_CCCR_CSR_Pos)
259 #define CAN_CCCR_MON_Pos            5            /**< \brief (CAN_CCCR) Bus Monitoring Mode */
260 #define CAN_CCCR_MON                (0x1u << CAN_CCCR_MON_Pos)
261 #define CAN_CCCR_DAR_Pos            6            /**< \brief (CAN_CCCR) Disable Automatic Retransmission */
262 #define CAN_CCCR_DAR                (0x1u << CAN_CCCR_DAR_Pos)
263 #define CAN_CCCR_TEST_Pos           7            /**< \brief (CAN_CCCR) Test Mode Enable */
264 #define CAN_CCCR_TEST               (0x1u << CAN_CCCR_TEST_Pos)
265 #define CAN_CCCR_FDOE_Pos           8            /**< \brief (CAN_CCCR) FD Operation Enable */
266 #define CAN_CCCR_FDOE               (0x1u << CAN_CCCR_FDOE_Pos)
267 #define CAN_CCCR_BRSE_Pos           9            /**< \brief (CAN_CCCR) Bit Rate Switch Enable */
268 #define CAN_CCCR_BRSE               (0x1u << CAN_CCCR_BRSE_Pos)
269 #define CAN_CCCR_PXHD_Pos           12           /**< \brief (CAN_CCCR) Protocol Exception Handling Disable */
270 #define CAN_CCCR_PXHD               (0x1u << CAN_CCCR_PXHD_Pos)
271 #define CAN_CCCR_EFBI_Pos           13           /**< \brief (CAN_CCCR) Edge Filtering during Bus Integration */
272 #define CAN_CCCR_EFBI               (0x1u << CAN_CCCR_EFBI_Pos)
273 #define CAN_CCCR_TXP_Pos            14           /**< \brief (CAN_CCCR) Transmit Pause */
274 #define CAN_CCCR_TXP                (0x1u << CAN_CCCR_TXP_Pos)
275 #define CAN_CCCR_NISO_Pos           15           /**< \brief (CAN_CCCR) Non ISO Operation */
276 #define CAN_CCCR_NISO               (0x1u << CAN_CCCR_NISO_Pos)
277 #define CAN_CCCR_MASK               0x0000F3FFu  /**< \brief (CAN_CCCR) MASK Register */
278
279 /* -------- CAN_NBTP : (CAN Offset: 0x1C) (R/W 32) Nominal Bit Timing and Prescaler -------- */
280 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
281 typedef union {
282   struct {
283     uint32_t NTSEG2:7;         /*!< bit:  0.. 6  Nominal Time segment after sample point */
284     uint32_t :1;               /*!< bit:      7  Reserved                           */
285     uint32_t NTSEG1:8;         /*!< bit:  8..15  Nominal Time segment before sample point */
286     uint32_t NBRP:9;           /*!< bit: 16..24  Nominal Baud Rate Prescaler        */
287     uint32_t NSJW:7;           /*!< bit: 25..31  Nominal (Re)Synchronization Jump Width */
288   } bit;                       /*!< Structure used for bit  access                  */
289   uint32_t reg;                /*!< Type      used for register access              */
290 } CAN_NBTP_Type;
291 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
292
293 #define CAN_NBTP_OFFSET             0x1C         /**< \brief (CAN_NBTP offset) Nominal Bit Timing and Prescaler */
294 #define CAN_NBTP_RESETVALUE         0x06000A03u  /**< \brief (CAN_NBTP reset_value) Nominal Bit Timing and Prescaler */
295
296 #define CAN_NBTP_NTSEG2_Pos         0            /**< \brief (CAN_NBTP) Nominal Time segment after sample point */
297 #define CAN_NBTP_NTSEG2_Msk         (0x7Fu << CAN_NBTP_NTSEG2_Pos)
298 #define CAN_NBTP_NTSEG2(value)      (CAN_NBTP_NTSEG2_Msk & ((value) << CAN_NBTP_NTSEG2_Pos))
299 #define CAN_NBTP_NTSEG1_Pos         8            /**< \brief (CAN_NBTP) Nominal Time segment before sample point */
300 #define CAN_NBTP_NTSEG1_Msk         (0xFFu << CAN_NBTP_NTSEG1_Pos)
301 #define CAN_NBTP_NTSEG1(value)      (CAN_NBTP_NTSEG1_Msk & ((value) << CAN_NBTP_NTSEG1_Pos))
302 #define CAN_NBTP_NBRP_Pos           16           /**< \brief (CAN_NBTP) Nominal Baud Rate Prescaler */
303 #define CAN_NBTP_NBRP_Msk           (0x1FFu << CAN_NBTP_NBRP_Pos)
304 #define CAN_NBTP_NBRP(value)        (CAN_NBTP_NBRP_Msk & ((value) << CAN_NBTP_NBRP_Pos))
305 #define CAN_NBTP_NSJW_Pos           25           /**< \brief (CAN_NBTP) Nominal (Re)Synchronization Jump Width */
306 #define CAN_NBTP_NSJW_Msk           (0x7Fu << CAN_NBTP_NSJW_Pos)
307 #define CAN_NBTP_NSJW(value)        (CAN_NBTP_NSJW_Msk & ((value) << CAN_NBTP_NSJW_Pos))
308 #define CAN_NBTP_MASK               0xFFFFFF7Fu  /**< \brief (CAN_NBTP) MASK Register */
309
310 /* -------- CAN_TSCC : (CAN Offset: 0x20) (R/W 32) Timestamp Counter Configuration -------- */
311 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
312 typedef union {
313   struct {
314     uint32_t TSS:2;            /*!< bit:  0.. 1  Timestamp Select                   */
315     uint32_t :14;              /*!< bit:  2..15  Reserved                           */
316     uint32_t TCP:4;            /*!< bit: 16..19  Timestamp Counter Prescaler        */
317     uint32_t :12;              /*!< bit: 20..31  Reserved                           */
318   } bit;                       /*!< Structure used for bit  access                  */
319   uint32_t reg;                /*!< Type      used for register access              */
320 } CAN_TSCC_Type;
321 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
322
323 #define CAN_TSCC_OFFSET             0x20         /**< \brief (CAN_TSCC offset) Timestamp Counter Configuration */
324 #define CAN_TSCC_RESETVALUE         0x00000000u  /**< \brief (CAN_TSCC reset_value) Timestamp Counter Configuration */
325
326 #define CAN_TSCC_TSS_Pos            0            /**< \brief (CAN_TSCC) Timestamp Select */
327 #define CAN_TSCC_TSS_Msk            (0x3u << CAN_TSCC_TSS_Pos)
328 #define CAN_TSCC_TSS(value)         (CAN_TSCC_TSS_Msk & ((value) << CAN_TSCC_TSS_Pos))
329 #define   CAN_TSCC_TSS_ZERO_Val           0x0u   /**< \brief (CAN_TSCC) Timestamp counter value always 0x0000 */
330 #define   CAN_TSCC_TSS_INC_Val            0x1u   /**< \brief (CAN_TSCC) Timestamp counter value incremented by TCP */
331 #define   CAN_TSCC_TSS_EXT_Val            0x2u   /**< \brief (CAN_TSCC) External timestamp counter value used */
332 #define CAN_TSCC_TSS_ZERO           (CAN_TSCC_TSS_ZERO_Val         << CAN_TSCC_TSS_Pos)
333 #define CAN_TSCC_TSS_INC            (CAN_TSCC_TSS_INC_Val          << CAN_TSCC_TSS_Pos)
334 #define CAN_TSCC_TSS_EXT            (CAN_TSCC_TSS_EXT_Val          << CAN_TSCC_TSS_Pos)
335 #define CAN_TSCC_TCP_Pos            16           /**< \brief (CAN_TSCC) Timestamp Counter Prescaler */
336 #define CAN_TSCC_TCP_Msk            (0xFu << CAN_TSCC_TCP_Pos)
337 #define CAN_TSCC_TCP(value)         (CAN_TSCC_TCP_Msk & ((value) << CAN_TSCC_TCP_Pos))
338 #define CAN_TSCC_MASK               0x000F0003u  /**< \brief (CAN_TSCC) MASK Register */
339
340 /* -------- CAN_TSCV : (CAN Offset: 0x24) (R/  32) Timestamp Counter Value -------- */
341 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
342 typedef union {
343   struct {
344     uint32_t TSC:16;           /*!< bit:  0..15  Timestamp Counter                  */
345     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
346   } bit;                       /*!< Structure used for bit  access                  */
347   uint32_t reg;                /*!< Type      used for register access              */
348 } CAN_TSCV_Type;
349 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
350
351 #define CAN_TSCV_OFFSET             0x24         /**< \brief (CAN_TSCV offset) Timestamp Counter Value */
352 #define CAN_TSCV_RESETVALUE         0x00000000u  /**< \brief (CAN_TSCV reset_value) Timestamp Counter Value */
353
354 #define CAN_TSCV_TSC_Pos            0            /**< \brief (CAN_TSCV) Timestamp Counter */
355 #define CAN_TSCV_TSC_Msk            (0xFFFFu << CAN_TSCV_TSC_Pos)
356 #define CAN_TSCV_TSC(value)         (CAN_TSCV_TSC_Msk & ((value) << CAN_TSCV_TSC_Pos))
357 #define CAN_TSCV_MASK               0x0000FFFFu  /**< \brief (CAN_TSCV) MASK Register */
358
359 /* -------- CAN_TOCC : (CAN Offset: 0x28) (R/W 32) Timeout Counter Configuration -------- */
360 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
361 typedef union {
362   struct {
363     uint32_t ETOC:1;           /*!< bit:      0  Enable Timeout Counter             */
364     uint32_t TOS:2;            /*!< bit:  1.. 2  Timeout Select                     */
365     uint32_t :13;              /*!< bit:  3..15  Reserved                           */
366     uint32_t TOP:16;           /*!< bit: 16..31  Timeout Period                     */
367   } bit;                       /*!< Structure used for bit  access                  */
368   uint32_t reg;                /*!< Type      used for register access              */
369 } CAN_TOCC_Type;
370 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
371
372 #define CAN_TOCC_OFFSET             0x28         /**< \brief (CAN_TOCC offset) Timeout Counter Configuration */
373 #define CAN_TOCC_RESETVALUE         0xFFFF0000u  /**< \brief (CAN_TOCC reset_value) Timeout Counter Configuration */
374
375 #define CAN_TOCC_ETOC_Pos           0            /**< \brief (CAN_TOCC) Enable Timeout Counter */
376 #define CAN_TOCC_ETOC               (0x1u << CAN_TOCC_ETOC_Pos)
377 #define CAN_TOCC_TOS_Pos            1            /**< \brief (CAN_TOCC) Timeout Select */
378 #define CAN_TOCC_TOS_Msk            (0x3u << CAN_TOCC_TOS_Pos)
379 #define CAN_TOCC_TOS(value)         (CAN_TOCC_TOS_Msk & ((value) << CAN_TOCC_TOS_Pos))
380 #define   CAN_TOCC_TOS_CONT_Val           0x0u   /**< \brief (CAN_TOCC) Continuout operation */
381 #define   CAN_TOCC_TOS_TXEF_Val           0x1u   /**< \brief (CAN_TOCC) Timeout controlled by TX Event FIFO */
382 #define   CAN_TOCC_TOS_RXF0_Val           0x2u   /**< \brief (CAN_TOCC) Timeout controlled by Rx FIFO 0 */
383 #define   CAN_TOCC_TOS_RXF1_Val           0x3u   /**< \brief (CAN_TOCC) Timeout controlled by Rx FIFO 1 */
384 #define CAN_TOCC_TOS_CONT           (CAN_TOCC_TOS_CONT_Val         << CAN_TOCC_TOS_Pos)
385 #define CAN_TOCC_TOS_TXEF           (CAN_TOCC_TOS_TXEF_Val         << CAN_TOCC_TOS_Pos)
386 #define CAN_TOCC_TOS_RXF0           (CAN_TOCC_TOS_RXF0_Val         << CAN_TOCC_TOS_Pos)
387 #define CAN_TOCC_TOS_RXF1           (CAN_TOCC_TOS_RXF1_Val         << CAN_TOCC_TOS_Pos)
388 #define CAN_TOCC_TOP_Pos            16           /**< \brief (CAN_TOCC) Timeout Period */
389 #define CAN_TOCC_TOP_Msk            (0xFFFFu << CAN_TOCC_TOP_Pos)
390 #define CAN_TOCC_TOP(value)         (CAN_TOCC_TOP_Msk & ((value) << CAN_TOCC_TOP_Pos))
391 #define CAN_TOCC_MASK               0xFFFF0007u  /**< \brief (CAN_TOCC) MASK Register */
392
393 /* -------- CAN_TOCV : (CAN Offset: 0x2C) (R/W 32) Timeout Counter Value -------- */
394 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
395 typedef union {
396   struct {
397     uint32_t TOC:16;           /*!< bit:  0..15  Timeout Counter                    */
398     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
399   } bit;                       /*!< Structure used for bit  access                  */
400   uint32_t reg;                /*!< Type      used for register access              */
401 } CAN_TOCV_Type;
402 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
403
404 #define CAN_TOCV_OFFSET             0x2C         /**< \brief (CAN_TOCV offset) Timeout Counter Value */
405 #define CAN_TOCV_RESETVALUE         0x0000FFFFu  /**< \brief (CAN_TOCV reset_value) Timeout Counter Value */
406
407 #define CAN_TOCV_TOC_Pos            0            /**< \brief (CAN_TOCV) Timeout Counter */
408 #define CAN_TOCV_TOC_Msk            (0xFFFFu << CAN_TOCV_TOC_Pos)
409 #define CAN_TOCV_TOC(value)         (CAN_TOCV_TOC_Msk & ((value) << CAN_TOCV_TOC_Pos))
410 #define CAN_TOCV_MASK               0x0000FFFFu  /**< \brief (CAN_TOCV) MASK Register */
411
412 /* -------- CAN_ECR : (CAN Offset: 0x40) (R/  32) Error Counter -------- */
413 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
414 typedef union {
415   struct {
416     uint32_t TEC:8;            /*!< bit:  0.. 7  Transmit Error Counter             */
417     uint32_t REC:7;            /*!< bit:  8..14  Receive Error Counter              */
418     uint32_t RP:1;             /*!< bit:     15  Receive Error Passive              */
419     uint32_t CEL:8;            /*!< bit: 16..23  CAN Error Logging                  */
420     uint32_t :8;               /*!< bit: 24..31  Reserved                           */
421   } bit;                       /*!< Structure used for bit  access                  */
422   uint32_t reg;                /*!< Type      used for register access              */
423 } CAN_ECR_Type;
424 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
425
426 #define CAN_ECR_OFFSET              0x40         /**< \brief (CAN_ECR offset) Error Counter */
427 #define CAN_ECR_RESETVALUE          0x00000000u  /**< \brief (CAN_ECR reset_value) Error Counter */
428
429 #define CAN_ECR_TEC_Pos             0            /**< \brief (CAN_ECR) Transmit Error Counter */
430 #define CAN_ECR_TEC_Msk             (0xFFu << CAN_ECR_TEC_Pos)
431 #define CAN_ECR_TEC(value)          (CAN_ECR_TEC_Msk & ((value) << CAN_ECR_TEC_Pos))
432 #define CAN_ECR_REC_Pos             8            /**< \brief (CAN_ECR) Receive Error Counter */
433 #define CAN_ECR_REC_Msk             (0x7Fu << CAN_ECR_REC_Pos)
434 #define CAN_ECR_REC(value)          (CAN_ECR_REC_Msk & ((value) << CAN_ECR_REC_Pos))
435 #define CAN_ECR_RP_Pos              15           /**< \brief (CAN_ECR) Receive Error Passive */
436 #define CAN_ECR_RP                  (0x1u << CAN_ECR_RP_Pos)
437 #define CAN_ECR_CEL_Pos             16           /**< \brief (CAN_ECR) CAN Error Logging */
438 #define CAN_ECR_CEL_Msk             (0xFFu << CAN_ECR_CEL_Pos)
439 #define CAN_ECR_CEL(value)          (CAN_ECR_CEL_Msk & ((value) << CAN_ECR_CEL_Pos))
440 #define CAN_ECR_MASK                0x00FFFFFFu  /**< \brief (CAN_ECR) MASK Register */
441
442 /* -------- CAN_PSR : (CAN Offset: 0x44) (R/  32) Protocol Status -------- */
443 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
444 typedef union {
445   struct {
446     uint32_t LEC:3;            /*!< bit:  0.. 2  Last Error Code                    */
447     uint32_t ACT:2;            /*!< bit:  3.. 4  Activity                           */
448     uint32_t EP:1;             /*!< bit:      5  Error Passive                      */
449     uint32_t EW:1;             /*!< bit:      6  Warning Status                     */
450     uint32_t BO:1;             /*!< bit:      7  Bus_Off Status                     */
451     uint32_t DLEC:3;           /*!< bit:  8..10  Data Phase Last Error Code         */
452     uint32_t RESI:1;           /*!< bit:     11  ESI flag of last received CAN FD Message */
453     uint32_t RBRS:1;           /*!< bit:     12  BRS flag of last received CAN FD Message */
454     uint32_t RFDF:1;           /*!< bit:     13  Received a CAN FD Message          */
455     uint32_t PXE:1;            /*!< bit:     14  Protocol Exception Event           */
456     uint32_t :1;               /*!< bit:     15  Reserved                           */
457     uint32_t TDCV:7;           /*!< bit: 16..22  Transmitter Delay Compensation Value */
458     uint32_t :9;               /*!< bit: 23..31  Reserved                           */
459   } bit;                       /*!< Structure used for bit  access                  */
460   uint32_t reg;                /*!< Type      used for register access              */
461 } CAN_PSR_Type;
462 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
463
464 #define CAN_PSR_OFFSET              0x44         /**< \brief (CAN_PSR offset) Protocol Status */
465 #define CAN_PSR_RESETVALUE          0x00000707u  /**< \brief (CAN_PSR reset_value) Protocol Status */
466
467 #define CAN_PSR_LEC_Pos             0            /**< \brief (CAN_PSR) Last Error Code */
468 #define CAN_PSR_LEC_Msk             (0x7u << CAN_PSR_LEC_Pos)
469 #define CAN_PSR_LEC(value)          (CAN_PSR_LEC_Msk & ((value) << CAN_PSR_LEC_Pos))
470 #define   CAN_PSR_LEC_NONE_Val            0x0u   /**< \brief (CAN_PSR) No Error */
471 #define   CAN_PSR_LEC_STUFF_Val           0x1u   /**< \brief (CAN_PSR) Stuff Error */
472 #define   CAN_PSR_LEC_FORM_Val            0x2u   /**< \brief (CAN_PSR) Form Error */
473 #define   CAN_PSR_LEC_ACK_Val             0x3u   /**< \brief (CAN_PSR) Ack Error */
474 #define   CAN_PSR_LEC_BIT1_Val            0x4u   /**< \brief (CAN_PSR) Bit1 Error */
475 #define   CAN_PSR_LEC_BIT0_Val            0x5u   /**< \brief (CAN_PSR) Bit0 Error */
476 #define   CAN_PSR_LEC_CRC_Val             0x6u   /**< \brief (CAN_PSR) CRC Error */
477 #define   CAN_PSR_LEC_NC_Val              0x7u   /**< \brief (CAN_PSR) No Change */
478 #define CAN_PSR_LEC_NONE            (CAN_PSR_LEC_NONE_Val          << CAN_PSR_LEC_Pos)
479 #define CAN_PSR_LEC_STUFF           (CAN_PSR_LEC_STUFF_Val         << CAN_PSR_LEC_Pos)
480 #define CAN_PSR_LEC_FORM            (CAN_PSR_LEC_FORM_Val          << CAN_PSR_LEC_Pos)
481 #define CAN_PSR_LEC_ACK             (CAN_PSR_LEC_ACK_Val           << CAN_PSR_LEC_Pos)
482 #define CAN_PSR_LEC_BIT1            (CAN_PSR_LEC_BIT1_Val          << CAN_PSR_LEC_Pos)
483 #define CAN_PSR_LEC_BIT0            (CAN_PSR_LEC_BIT0_Val          << CAN_PSR_LEC_Pos)
484 #define CAN_PSR_LEC_CRC             (CAN_PSR_LEC_CRC_Val           << CAN_PSR_LEC_Pos)
485 #define CAN_PSR_LEC_NC              (CAN_PSR_LEC_NC_Val            << CAN_PSR_LEC_Pos)
486 #define CAN_PSR_ACT_Pos             3            /**< \brief (CAN_PSR) Activity */
487 #define CAN_PSR_ACT_Msk             (0x3u << CAN_PSR_ACT_Pos)
488 #define CAN_PSR_ACT(value)          (CAN_PSR_ACT_Msk & ((value) << CAN_PSR_ACT_Pos))
489 #define   CAN_PSR_ACT_SYNC_Val            0x0u   /**< \brief (CAN_PSR) Node is synchronizing on CAN communication */
490 #define   CAN_PSR_ACT_IDLE_Val            0x1u   /**< \brief (CAN_PSR) Node is neither receiver nor transmitter */
491 #define   CAN_PSR_ACT_RX_Val              0x2u   /**< \brief (CAN_PSR) Node is operating as receiver */
492 #define   CAN_PSR_ACT_TX_Val              0x3u   /**< \brief (CAN_PSR) Node is operating as transmitter */
493 #define CAN_PSR_ACT_SYNC            (CAN_PSR_ACT_SYNC_Val          << CAN_PSR_ACT_Pos)
494 #define CAN_PSR_ACT_IDLE            (CAN_PSR_ACT_IDLE_Val          << CAN_PSR_ACT_Pos)
495 #define CAN_PSR_ACT_RX              (CAN_PSR_ACT_RX_Val            << CAN_PSR_ACT_Pos)
496 #define CAN_PSR_ACT_TX              (CAN_PSR_ACT_TX_Val            << CAN_PSR_ACT_Pos)
497 #define CAN_PSR_EP_Pos              5            /**< \brief (CAN_PSR) Error Passive */
498 #define CAN_PSR_EP                  (0x1u << CAN_PSR_EP_Pos)
499 #define CAN_PSR_EW_Pos              6            /**< \brief (CAN_PSR) Warning Status */
500 #define CAN_PSR_EW                  (0x1u << CAN_PSR_EW_Pos)
501 #define CAN_PSR_BO_Pos              7            /**< \brief (CAN_PSR) Bus_Off Status */
502 #define CAN_PSR_BO                  (0x1u << CAN_PSR_BO_Pos)
503 #define CAN_PSR_DLEC_Pos            8            /**< \brief (CAN_PSR) Data Phase Last Error Code */
504 #define CAN_PSR_DLEC_Msk            (0x7u << CAN_PSR_DLEC_Pos)
505 #define CAN_PSR_DLEC(value)         (CAN_PSR_DLEC_Msk & ((value) << CAN_PSR_DLEC_Pos))
506 #define   CAN_PSR_DLEC_NONE_Val           0x0u   /**< \brief (CAN_PSR) No Error */
507 #define   CAN_PSR_DLEC_STUFF_Val          0x1u   /**< \brief (CAN_PSR) Stuff Error */
508 #define   CAN_PSR_DLEC_FORM_Val           0x2u   /**< \brief (CAN_PSR) Form Error */
509 #define   CAN_PSR_DLEC_ACK_Val            0x3u   /**< \brief (CAN_PSR) Ack Error */
510 #define   CAN_PSR_DLEC_BIT1_Val           0x4u   /**< \brief (CAN_PSR) Bit1 Error */
511 #define   CAN_PSR_DLEC_BIT0_Val           0x5u   /**< \brief (CAN_PSR) Bit0 Error */
512 #define   CAN_PSR_DLEC_CRC_Val            0x6u   /**< \brief (CAN_PSR) CRC Error */
513 #define   CAN_PSR_DLEC_NC_Val             0x7u   /**< \brief (CAN_PSR) No Change */
514 #define CAN_PSR_DLEC_NONE           (CAN_PSR_DLEC_NONE_Val         << CAN_PSR_DLEC_Pos)
515 #define CAN_PSR_DLEC_STUFF          (CAN_PSR_DLEC_STUFF_Val        << CAN_PSR_DLEC_Pos)
516 #define CAN_PSR_DLEC_FORM           (CAN_PSR_DLEC_FORM_Val         << CAN_PSR_DLEC_Pos)
517 #define CAN_PSR_DLEC_ACK            (CAN_PSR_DLEC_ACK_Val          << CAN_PSR_DLEC_Pos)
518 #define CAN_PSR_DLEC_BIT1           (CAN_PSR_DLEC_BIT1_Val         << CAN_PSR_DLEC_Pos)
519 #define CAN_PSR_DLEC_BIT0           (CAN_PSR_DLEC_BIT0_Val         << CAN_PSR_DLEC_Pos)
520 #define CAN_PSR_DLEC_CRC            (CAN_PSR_DLEC_CRC_Val          << CAN_PSR_DLEC_Pos)
521 #define CAN_PSR_DLEC_NC             (CAN_PSR_DLEC_NC_Val           << CAN_PSR_DLEC_Pos)
522 #define CAN_PSR_RESI_Pos            11           /**< \brief (CAN_PSR) ESI flag of last received CAN FD Message */
523 #define CAN_PSR_RESI                (0x1u << CAN_PSR_RESI_Pos)
524 #define CAN_PSR_RBRS_Pos            12           /**< \brief (CAN_PSR) BRS flag of last received CAN FD Message */
525 #define CAN_PSR_RBRS                (0x1u << CAN_PSR_RBRS_Pos)
526 #define CAN_PSR_RFDF_Pos            13           /**< \brief (CAN_PSR) Received a CAN FD Message */
527 #define CAN_PSR_RFDF                (0x1u << CAN_PSR_RFDF_Pos)
528 #define CAN_PSR_PXE_Pos             14           /**< \brief (CAN_PSR) Protocol Exception Event */
529 #define CAN_PSR_PXE                 (0x1u << CAN_PSR_PXE_Pos)
530 #define CAN_PSR_TDCV_Pos            16           /**< \brief (CAN_PSR) Transmitter Delay Compensation Value */
531 #define CAN_PSR_TDCV_Msk            (0x7Fu << CAN_PSR_TDCV_Pos)
532 #define CAN_PSR_TDCV(value)         (CAN_PSR_TDCV_Msk & ((value) << CAN_PSR_TDCV_Pos))
533 #define CAN_PSR_MASK                0x007F7FFFu  /**< \brief (CAN_PSR) MASK Register */
534
535 /* -------- CAN_TDCR : (CAN Offset: 0x48) (R/W 32) Extended ID Filter Configuration -------- */
536 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
537 typedef union {
538   struct {
539     uint32_t TDCF:7;           /*!< bit:  0.. 6  Transmitter Delay Compensation Filter Length */
540     uint32_t :1;               /*!< bit:      7  Reserved                           */
541     uint32_t TDCO:7;           /*!< bit:  8..14  Transmitter Delay Compensation Offset */
542     uint32_t :17;              /*!< bit: 15..31  Reserved                           */
543   } bit;                       /*!< Structure used for bit  access                  */
544   uint32_t reg;                /*!< Type      used for register access              */
545 } CAN_TDCR_Type;
546 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
547
548 #define CAN_TDCR_OFFSET             0x48         /**< \brief (CAN_TDCR offset) Extended ID Filter Configuration */
549 #define CAN_TDCR_RESETVALUE         0x00000000u  /**< \brief (CAN_TDCR reset_value) Extended ID Filter Configuration */
550
551 #define CAN_TDCR_TDCF_Pos           0            /**< \brief (CAN_TDCR) Transmitter Delay Compensation Filter Length */
552 #define CAN_TDCR_TDCF_Msk           (0x7Fu << CAN_TDCR_TDCF_Pos)
553 #define CAN_TDCR_TDCF(value)        (CAN_TDCR_TDCF_Msk & ((value) << CAN_TDCR_TDCF_Pos))
554 #define CAN_TDCR_TDCO_Pos           8            /**< \brief (CAN_TDCR) Transmitter Delay Compensation Offset */
555 #define CAN_TDCR_TDCO_Msk           (0x7Fu << CAN_TDCR_TDCO_Pos)
556 #define CAN_TDCR_TDCO(value)        (CAN_TDCR_TDCO_Msk & ((value) << CAN_TDCR_TDCO_Pos))
557 #define CAN_TDCR_MASK               0x00007F7Fu  /**< \brief (CAN_TDCR) MASK Register */
558
559 /* -------- CAN_IR : (CAN Offset: 0x50) (R/W 32) Interrupt -------- */
560 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
561 typedef union {
562   struct {
563     uint32_t RF0N:1;           /*!< bit:      0  Rx FIFO 0 New Message              */
564     uint32_t RF0W:1;           /*!< bit:      1  Rx FIFO 0 Watermark Reached        */
565     uint32_t RF0F:1;           /*!< bit:      2  Rx FIFO 0 Full                     */
566     uint32_t RF0L:1;           /*!< bit:      3  Rx FIFO 0 Message Lost             */
567     uint32_t RF1N:1;           /*!< bit:      4  Rx FIFO 1 New Message              */
568     uint32_t RF1W:1;           /*!< bit:      5  Rx FIFO 1 Watermark Reached        */
569     uint32_t RF1F:1;           /*!< bit:      6  Rx FIFO 1 FIFO Full                */
570     uint32_t RF1L:1;           /*!< bit:      7  Rx FIFO 1 Message Lost             */
571     uint32_t HPM:1;            /*!< bit:      8  High Priority Message              */
572     uint32_t TC:1;             /*!< bit:      9  Timestamp Completed                */
573     uint32_t TCF:1;            /*!< bit:     10  Transmission Cancellation Finished */
574     uint32_t TFE:1;            /*!< bit:     11  Tx FIFO Empty                      */
575     uint32_t TEFN:1;           /*!< bit:     12  Tx Event FIFO New Entry            */
576     uint32_t TEFW:1;           /*!< bit:     13  Tx Event FIFO Watermark Reached    */
577     uint32_t TEFF:1;           /*!< bit:     14  Tx Event FIFO Full                 */
578     uint32_t TEFL:1;           /*!< bit:     15  Tx Event FIFO Element Lost         */
579     uint32_t TSW:1;            /*!< bit:     16  Timestamp Wraparound               */
580     uint32_t MRAF:1;           /*!< bit:     17  Message RAM Access Failure         */
581     uint32_t TOO:1;            /*!< bit:     18  Timeout Occurred                   */
582     uint32_t DRX:1;            /*!< bit:     19  Message stored to Dedicated Rx Buffer */
583     uint32_t BEC:1;            /*!< bit:     20  Bit Error Corrected                */
584     uint32_t BEU:1;            /*!< bit:     21  Bit Error Uncorrected              */
585     uint32_t ELO:1;            /*!< bit:     22  Error Logging Overflow             */
586     uint32_t EP:1;             /*!< bit:     23  Error Passive                      */
587     uint32_t EW:1;             /*!< bit:     24  Warning Status                     */
588     uint32_t BO:1;             /*!< bit:     25  Bus_Off Status                     */
589     uint32_t WDI:1;            /*!< bit:     26  Watchdog Interrupt                 */
590     uint32_t PEA:1;            /*!< bit:     27  Protocol Error in Arbitration Phase */
591     uint32_t PED:1;            /*!< bit:     28  Protocol Error in Data Phase       */
592     uint32_t ARA:1;            /*!< bit:     29  Access to Reserved Address         */
593     uint32_t :2;               /*!< bit: 30..31  Reserved                           */
594   } bit;                       /*!< Structure used for bit  access                  */
595   uint32_t reg;                /*!< Type      used for register access              */
596 } CAN_IR_Type;
597 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
598
599 #define CAN_IR_OFFSET               0x50         /**< \brief (CAN_IR offset) Interrupt */
600 #define CAN_IR_RESETVALUE           0x00000000u  /**< \brief (CAN_IR reset_value) Interrupt */
601
602 #define CAN_IR_RF0N_Pos             0            /**< \brief (CAN_IR) Rx FIFO 0 New Message */
603 #define CAN_IR_RF0N                 (0x1u << CAN_IR_RF0N_Pos)
604 #define CAN_IR_RF0W_Pos             1            /**< \brief (CAN_IR) Rx FIFO 0 Watermark Reached */
605 #define CAN_IR_RF0W                 (0x1u << CAN_IR_RF0W_Pos)
606 #define CAN_IR_RF0F_Pos             2            /**< \brief (CAN_IR) Rx FIFO 0 Full */
607 #define CAN_IR_RF0F                 (0x1u << CAN_IR_RF0F_Pos)
608 #define CAN_IR_RF0L_Pos             3            /**< \brief (CAN_IR) Rx FIFO 0 Message Lost */
609 #define CAN_IR_RF0L                 (0x1u << CAN_IR_RF0L_Pos)
610 #define CAN_IR_RF1N_Pos             4            /**< \brief (CAN_IR) Rx FIFO 1 New Message */
611 #define CAN_IR_RF1N                 (0x1u << CAN_IR_RF1N_Pos)
612 #define CAN_IR_RF1W_Pos             5            /**< \brief (CAN_IR) Rx FIFO 1 Watermark Reached */
613 #define CAN_IR_RF1W                 (0x1u << CAN_IR_RF1W_Pos)
614 #define CAN_IR_RF1F_Pos             6            /**< \brief (CAN_IR) Rx FIFO 1 FIFO Full */
615 #define CAN_IR_RF1F                 (0x1u << CAN_IR_RF1F_Pos)
616 #define CAN_IR_RF1L_Pos             7            /**< \brief (CAN_IR) Rx FIFO 1 Message Lost */
617 #define CAN_IR_RF1L                 (0x1u << CAN_IR_RF1L_Pos)
618 #define CAN_IR_HPM_Pos              8            /**< \brief (CAN_IR) High Priority Message */
619 #define CAN_IR_HPM                  (0x1u << CAN_IR_HPM_Pos)
620 #define CAN_IR_TC_Pos               9            /**< \brief (CAN_IR) Timestamp Completed */
621 #define CAN_IR_TC                   (0x1u << CAN_IR_TC_Pos)
622 #define CAN_IR_TCF_Pos              10           /**< \brief (CAN_IR) Transmission Cancellation Finished */
623 #define CAN_IR_TCF                  (0x1u << CAN_IR_TCF_Pos)
624 #define CAN_IR_TFE_Pos              11           /**< \brief (CAN_IR) Tx FIFO Empty */
625 #define CAN_IR_TFE                  (0x1u << CAN_IR_TFE_Pos)
626 #define CAN_IR_TEFN_Pos             12           /**< \brief (CAN_IR) Tx Event FIFO New Entry */
627 #define CAN_IR_TEFN                 (0x1u << CAN_IR_TEFN_Pos)
628 #define CAN_IR_TEFW_Pos             13           /**< \brief (CAN_IR) Tx Event FIFO Watermark Reached */
629 #define CAN_IR_TEFW                 (0x1u << CAN_IR_TEFW_Pos)
630 #define CAN_IR_TEFF_Pos             14           /**< \brief (CAN_IR) Tx Event FIFO Full */
631 #define CAN_IR_TEFF                 (0x1u << CAN_IR_TEFF_Pos)
632 #define CAN_IR_TEFL_Pos             15           /**< \brief (CAN_IR) Tx Event FIFO Element Lost */
633 #define CAN_IR_TEFL                 (0x1u << CAN_IR_TEFL_Pos)
634 #define CAN_IR_TSW_Pos              16           /**< \brief (CAN_IR) Timestamp Wraparound */
635 #define CAN_IR_TSW                  (0x1u << CAN_IR_TSW_Pos)
636 #define CAN_IR_MRAF_Pos             17           /**< \brief (CAN_IR) Message RAM Access Failure */
637 #define CAN_IR_MRAF                 (0x1u << CAN_IR_MRAF_Pos)
638 #define CAN_IR_TOO_Pos              18           /**< \brief (CAN_IR) Timeout Occurred */
639 #define CAN_IR_TOO                  (0x1u << CAN_IR_TOO_Pos)
640 #define CAN_IR_DRX_Pos              19           /**< \brief (CAN_IR) Message stored to Dedicated Rx Buffer */
641 #define CAN_IR_DRX                  (0x1u << CAN_IR_DRX_Pos)
642 #define CAN_IR_BEC_Pos              20           /**< \brief (CAN_IR) Bit Error Corrected */
643 #define CAN_IR_BEC                  (0x1u << CAN_IR_BEC_Pos)
644 #define CAN_IR_BEU_Pos              21           /**< \brief (CAN_IR) Bit Error Uncorrected */
645 #define CAN_IR_BEU                  (0x1u << CAN_IR_BEU_Pos)
646 #define CAN_IR_ELO_Pos              22           /**< \brief (CAN_IR) Error Logging Overflow */
647 #define CAN_IR_ELO                  (0x1u << CAN_IR_ELO_Pos)
648 #define CAN_IR_EP_Pos               23           /**< \brief (CAN_IR) Error Passive */
649 #define CAN_IR_EP                   (0x1u << CAN_IR_EP_Pos)
650 #define CAN_IR_EW_Pos               24           /**< \brief (CAN_IR) Warning Status */
651 #define CAN_IR_EW                   (0x1u << CAN_IR_EW_Pos)
652 #define CAN_IR_BO_Pos               25           /**< \brief (CAN_IR) Bus_Off Status */
653 #define CAN_IR_BO                   (0x1u << CAN_IR_BO_Pos)
654 #define CAN_IR_WDI_Pos              26           /**< \brief (CAN_IR) Watchdog Interrupt */
655 #define CAN_IR_WDI                  (0x1u << CAN_IR_WDI_Pos)
656 #define CAN_IR_PEA_Pos              27           /**< \brief (CAN_IR) Protocol Error in Arbitration Phase */
657 #define CAN_IR_PEA                  (0x1u << CAN_IR_PEA_Pos)
658 #define CAN_IR_PED_Pos              28           /**< \brief (CAN_IR) Protocol Error in Data Phase */
659 #define CAN_IR_PED                  (0x1u << CAN_IR_PED_Pos)
660 #define CAN_IR_ARA_Pos              29           /**< \brief (CAN_IR) Access to Reserved Address */
661 #define CAN_IR_ARA                  (0x1u << CAN_IR_ARA_Pos)
662 #define CAN_IR_MASK                 0x3FFFFFFFu  /**< \brief (CAN_IR) MASK Register */
663
664 /* -------- CAN_IE : (CAN Offset: 0x54) (R/W 32) Interrupt Enable -------- */
665 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
666 typedef union {
667   struct {
668     uint32_t RF0NE:1;          /*!< bit:      0  Rx FIFO 0 New Message Interrupt Enable */
669     uint32_t RF0WE:1;          /*!< bit:      1  Rx FIFO 0 Watermark Reached Interrupt Enable */
670     uint32_t RF0FE:1;          /*!< bit:      2  Rx FIFO 0 Full Interrupt Enable    */
671     uint32_t RF0LE:1;          /*!< bit:      3  Rx FIFO 0 Message Lost Interrupt Enable */
672     uint32_t RF1NE:1;          /*!< bit:      4  Rx FIFO 1 New Message Interrupt Enable */
673     uint32_t RF1WE:1;          /*!< bit:      5  Rx FIFO 1 Watermark Reached Interrupt Enable */
674     uint32_t RF1FE:1;          /*!< bit:      6  Rx FIFO 1 FIFO Full Interrupt Enable */
675     uint32_t RF1LE:1;          /*!< bit:      7  Rx FIFO 1 Message Lost Interrupt Enable */
676     uint32_t HPME:1;           /*!< bit:      8  High Priority Message Interrupt Enable */
677     uint32_t TCE:1;            /*!< bit:      9  Timestamp Completed Interrupt Enable */
678     uint32_t TCFE:1;           /*!< bit:     10  Transmission Cancellation Finished Interrupt Enable */
679     uint32_t TFEE:1;           /*!< bit:     11  Tx FIFO Empty Interrupt Enable     */
680     uint32_t TEFNE:1;          /*!< bit:     12  Tx Event FIFO New Entry Interrupt Enable */
681     uint32_t TEFWE:1;          /*!< bit:     13  Tx Event FIFO Watermark Reached Interrupt Enable */
682     uint32_t TEFFE:1;          /*!< bit:     14  Tx Event FIFO Full Interrupt Enable */
683     uint32_t TEFLE:1;          /*!< bit:     15  Tx Event FIFO Element Lost Interrupt Enable */
684     uint32_t TSWE:1;           /*!< bit:     16  Timestamp Wraparound Interrupt Enable */
685     uint32_t MRAFE:1;          /*!< bit:     17  Message RAM Access Failure Interrupt Enable */
686     uint32_t TOOE:1;           /*!< bit:     18  Timeout Occurred Interrupt Enable  */
687     uint32_t DRXE:1;           /*!< bit:     19  Message stored to Dedicated Rx Buffer Interrupt Enable */
688     uint32_t BECE:1;           /*!< bit:     20  Bit Error Corrected Interrupt Enable */
689     uint32_t BEUE:1;           /*!< bit:     21  Bit Error Uncorrected Interrupt Enable */
690     uint32_t ELOE:1;           /*!< bit:     22  Error Logging Overflow Interrupt Enable */
691     uint32_t EPE:1;            /*!< bit:     23  Error Passive Interrupt Enable     */
692     uint32_t EWE:1;            /*!< bit:     24  Warning Status Interrupt Enable    */
693     uint32_t BOE:1;            /*!< bit:     25  Bus_Off Status Interrupt Enable    */
694     uint32_t WDIE:1;           /*!< bit:     26  Watchdog Interrupt Interrupt Enable */
695     uint32_t PEAE:1;           /*!< bit:     27  Protocol Error in Arbitration Phase Enable */
696     uint32_t PEDE:1;           /*!< bit:     28  Protocol Error in Data Phase Enable */
697     uint32_t ARAE:1;           /*!< bit:     29  Access to Reserved Address Enable  */
698     uint32_t :2;               /*!< bit: 30..31  Reserved                           */
699   } bit;                       /*!< Structure used for bit  access                  */
700   uint32_t reg;                /*!< Type      used for register access              */
701 } CAN_IE_Type;
702 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
703
704 #define CAN_IE_OFFSET               0x54         /**< \brief (CAN_IE offset) Interrupt Enable */
705 #define CAN_IE_RESETVALUE           0x00000000u  /**< \brief (CAN_IE reset_value) Interrupt Enable */
706
707 #define CAN_IE_RF0NE_Pos            0            /**< \brief (CAN_IE) Rx FIFO 0 New Message Interrupt Enable */
708 #define CAN_IE_RF0NE                (0x1u << CAN_IE_RF0NE_Pos)
709 #define CAN_IE_RF0WE_Pos            1            /**< \brief (CAN_IE) Rx FIFO 0 Watermark Reached Interrupt Enable */
710 #define CAN_IE_RF0WE                (0x1u << CAN_IE_RF0WE_Pos)
711 #define CAN_IE_RF0FE_Pos            2            /**< \brief (CAN_IE) Rx FIFO 0 Full Interrupt Enable */
712 #define CAN_IE_RF0FE                (0x1u << CAN_IE_RF0FE_Pos)
713 #define CAN_IE_RF0LE_Pos            3            /**< \brief (CAN_IE) Rx FIFO 0 Message Lost Interrupt Enable */
714 #define CAN_IE_RF0LE                (0x1u << CAN_IE_RF0LE_Pos)
715 #define CAN_IE_RF1NE_Pos            4            /**< \brief (CAN_IE) Rx FIFO 1 New Message Interrupt Enable */
716 #define CAN_IE_RF1NE                (0x1u << CAN_IE_RF1NE_Pos)
717 #define CAN_IE_RF1WE_Pos            5            /**< \brief (CAN_IE) Rx FIFO 1 Watermark Reached Interrupt Enable */
718 #define CAN_IE_RF1WE                (0x1u << CAN_IE_RF1WE_Pos)
719 #define CAN_IE_RF1FE_Pos            6            /**< \brief (CAN_IE) Rx FIFO 1 FIFO Full Interrupt Enable */
720 #define CAN_IE_RF1FE                (0x1u << CAN_IE_RF1FE_Pos)
721 #define CAN_IE_RF1LE_Pos            7            /**< \brief (CAN_IE) Rx FIFO 1 Message Lost Interrupt Enable */
722 #define CAN_IE_RF1LE                (0x1u << CAN_IE_RF1LE_Pos)
723 #define CAN_IE_HPME_Pos             8            /**< \brief (CAN_IE) High Priority Message Interrupt Enable */
724 #define CAN_IE_HPME                 (0x1u << CAN_IE_HPME_Pos)
725 #define CAN_IE_TCE_Pos              9            /**< \brief (CAN_IE) Timestamp Completed Interrupt Enable */
726 #define CAN_IE_TCE                  (0x1u << CAN_IE_TCE_Pos)
727 #define CAN_IE_TCFE_Pos             10           /**< \brief (CAN_IE) Transmission Cancellation Finished Interrupt Enable */
728 #define CAN_IE_TCFE                 (0x1u << CAN_IE_TCFE_Pos)
729 #define CAN_IE_TFEE_Pos             11           /**< \brief (CAN_IE) Tx FIFO Empty Interrupt Enable */
730 #define CAN_IE_TFEE                 (0x1u << CAN_IE_TFEE_Pos)
731 #define CAN_IE_TEFNE_Pos            12           /**< \brief (CAN_IE) Tx Event FIFO New Entry Interrupt Enable */
732 #define CAN_IE_TEFNE                (0x1u << CAN_IE_TEFNE_Pos)
733 #define CAN_IE_TEFWE_Pos            13           /**< \brief (CAN_IE) Tx Event FIFO Watermark Reached Interrupt Enable */
734 #define CAN_IE_TEFWE                (0x1u << CAN_IE_TEFWE_Pos)
735 #define CAN_IE_TEFFE_Pos            14           /**< \brief (CAN_IE) Tx Event FIFO Full Interrupt Enable */
736 #define CAN_IE_TEFFE                (0x1u << CAN_IE_TEFFE_Pos)
737 #define CAN_IE_TEFLE_Pos            15           /**< \brief (CAN_IE) Tx Event FIFO Element Lost Interrupt Enable */
738 #define CAN_IE_TEFLE                (0x1u << CAN_IE_TEFLE_Pos)
739 #define CAN_IE_TSWE_Pos             16           /**< \brief (CAN_IE) Timestamp Wraparound Interrupt Enable */
740 #define CAN_IE_TSWE                 (0x1u << CAN_IE_TSWE_Pos)
741 #define CAN_IE_MRAFE_Pos            17           /**< \brief (CAN_IE) Message RAM Access Failure Interrupt Enable */
742 #define CAN_IE_MRAFE                (0x1u << CAN_IE_MRAFE_Pos)
743 #define CAN_IE_TOOE_Pos             18           /**< \brief (CAN_IE) Timeout Occurred Interrupt Enable */
744 #define CAN_IE_TOOE                 (0x1u << CAN_IE_TOOE_Pos)
745 #define CAN_IE_DRXE_Pos             19           /**< \brief (CAN_IE) Message stored to Dedicated Rx Buffer Interrupt Enable */
746 #define CAN_IE_DRXE                 (0x1u << CAN_IE_DRXE_Pos)
747 #define CAN_IE_BECE_Pos             20           /**< \brief (CAN_IE) Bit Error Corrected Interrupt Enable */
748 #define CAN_IE_BECE                 (0x1u << CAN_IE_BECE_Pos)
749 #define CAN_IE_BEUE_Pos             21           /**< \brief (CAN_IE) Bit Error Uncorrected Interrupt Enable */
750 #define CAN_IE_BEUE                 (0x1u << CAN_IE_BEUE_Pos)
751 #define CAN_IE_ELOE_Pos             22           /**< \brief (CAN_IE) Error Logging Overflow Interrupt Enable */
752 #define CAN_IE_ELOE                 (0x1u << CAN_IE_ELOE_Pos)
753 #define CAN_IE_EPE_Pos              23           /**< \brief (CAN_IE) Error Passive Interrupt Enable */
754 #define CAN_IE_EPE                  (0x1u << CAN_IE_EPE_Pos)
755 #define CAN_IE_EWE_Pos              24           /**< \brief (CAN_IE) Warning Status Interrupt Enable */
756 #define CAN_IE_EWE                  (0x1u << CAN_IE_EWE_Pos)
757 #define CAN_IE_BOE_Pos              25           /**< \brief (CAN_IE) Bus_Off Status Interrupt Enable */
758 #define CAN_IE_BOE                  (0x1u << CAN_IE_BOE_Pos)
759 #define CAN_IE_WDIE_Pos             26           /**< \brief (CAN_IE) Watchdog Interrupt Interrupt Enable */
760 #define CAN_IE_WDIE                 (0x1u << CAN_IE_WDIE_Pos)
761 #define CAN_IE_PEAE_Pos             27           /**< \brief (CAN_IE) Protocol Error in Arbitration Phase Enable */
762 #define CAN_IE_PEAE                 (0x1u << CAN_IE_PEAE_Pos)
763 #define CAN_IE_PEDE_Pos             28           /**< \brief (CAN_IE) Protocol Error in Data Phase Enable */
764 #define CAN_IE_PEDE                 (0x1u << CAN_IE_PEDE_Pos)
765 #define CAN_IE_ARAE_Pos             29           /**< \brief (CAN_IE) Access to Reserved Address Enable */
766 #define CAN_IE_ARAE                 (0x1u << CAN_IE_ARAE_Pos)
767 #define CAN_IE_MASK                 0x3FFFFFFFu  /**< \brief (CAN_IE) MASK Register */
768
769 /* -------- CAN_ILS : (CAN Offset: 0x58) (R/W 32) Interrupt Line Select -------- */
770 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
771 typedef union {
772   struct {
773     uint32_t RF0NL:1;          /*!< bit:      0  Rx FIFO 0 New Message Interrupt Line */
774     uint32_t RF0WL:1;          /*!< bit:      1  Rx FIFO 0 Watermark Reached Interrupt Line */
775     uint32_t RF0FL:1;          /*!< bit:      2  Rx FIFO 0 Full Interrupt Line      */
776     uint32_t RF0LL:1;          /*!< bit:      3  Rx FIFO 0 Message Lost Interrupt Line */
777     uint32_t RF1NL:1;          /*!< bit:      4  Rx FIFO 1 New Message Interrupt Line */
778     uint32_t RF1WL:1;          /*!< bit:      5  Rx FIFO 1 Watermark Reached Interrupt Line */
779     uint32_t RF1FL:1;          /*!< bit:      6  Rx FIFO 1 FIFO Full Interrupt Line */
780     uint32_t RF1LL:1;          /*!< bit:      7  Rx FIFO 1 Message Lost Interrupt Line */
781     uint32_t HPML:1;           /*!< bit:      8  High Priority Message Interrupt Line */
782     uint32_t TCL:1;            /*!< bit:      9  Timestamp Completed Interrupt Line */
783     uint32_t TCFL:1;           /*!< bit:     10  Transmission Cancellation Finished Interrupt Line */
784     uint32_t TFEL:1;           /*!< bit:     11  Tx FIFO Empty Interrupt Line       */
785     uint32_t TEFNL:1;          /*!< bit:     12  Tx Event FIFO New Entry Interrupt Line */
786     uint32_t TEFWL:1;          /*!< bit:     13  Tx Event FIFO Watermark Reached Interrupt Line */
787     uint32_t TEFFL:1;          /*!< bit:     14  Tx Event FIFO Full Interrupt Line  */
788     uint32_t TEFLL:1;          /*!< bit:     15  Tx Event FIFO Element Lost Interrupt Line */
789     uint32_t TSWL:1;           /*!< bit:     16  Timestamp Wraparound Interrupt Line */
790     uint32_t MRAFL:1;          /*!< bit:     17  Message RAM Access Failure Interrupt Line */
791     uint32_t TOOL:1;           /*!< bit:     18  Timeout Occurred Interrupt Line    */
792     uint32_t DRXL:1;           /*!< bit:     19  Message stored to Dedicated Rx Buffer Interrupt Line */
793     uint32_t BECL:1;           /*!< bit:     20  Bit Error Corrected Interrupt Line */
794     uint32_t BEUL:1;           /*!< bit:     21  Bit Error Uncorrected Interrupt Line */
795     uint32_t ELOL:1;           /*!< bit:     22  Error Logging Overflow Interrupt Line */
796     uint32_t EPL:1;            /*!< bit:     23  Error Passive Interrupt Line       */
797     uint32_t EWL:1;            /*!< bit:     24  Warning Status Interrupt Line      */
798     uint32_t BOL:1;            /*!< bit:     25  Bus_Off Status Interrupt Line      */
799     uint32_t WDIL:1;           /*!< bit:     26  Watchdog Interrupt Interrupt Line  */
800     uint32_t PEAL:1;           /*!< bit:     27  Protocol Error in Arbitration Phase Line */
801     uint32_t PEDL:1;           /*!< bit:     28  Protocol Error in Data Phase Line  */
802     uint32_t ARAL:1;           /*!< bit:     29  Access to Reserved Address Line    */
803     uint32_t :2;               /*!< bit: 30..31  Reserved                           */
804   } bit;                       /*!< Structure used for bit  access                  */
805   uint32_t reg;                /*!< Type      used for register access              */
806 } CAN_ILS_Type;
807 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
808
809 #define CAN_ILS_OFFSET              0x58         /**< \brief (CAN_ILS offset) Interrupt Line Select */
810 #define CAN_ILS_RESETVALUE          0x00000000u  /**< \brief (CAN_ILS reset_value) Interrupt Line Select */
811
812 #define CAN_ILS_RF0NL_Pos           0            /**< \brief (CAN_ILS) Rx FIFO 0 New Message Interrupt Line */
813 #define CAN_ILS_RF0NL               (0x1u << CAN_ILS_RF0NL_Pos)
814 #define CAN_ILS_RF0WL_Pos           1            /**< \brief (CAN_ILS) Rx FIFO 0 Watermark Reached Interrupt Line */
815 #define CAN_ILS_RF0WL               (0x1u << CAN_ILS_RF0WL_Pos)
816 #define CAN_ILS_RF0FL_Pos           2            /**< \brief (CAN_ILS) Rx FIFO 0 Full Interrupt Line */
817 #define CAN_ILS_RF0FL               (0x1u << CAN_ILS_RF0FL_Pos)
818 #define CAN_ILS_RF0LL_Pos           3            /**< \brief (CAN_ILS) Rx FIFO 0 Message Lost Interrupt Line */
819 #define CAN_ILS_RF0LL               (0x1u << CAN_ILS_RF0LL_Pos)
820 #define CAN_ILS_RF1NL_Pos           4            /**< \brief (CAN_ILS) Rx FIFO 1 New Message Interrupt Line */
821 #define CAN_ILS_RF1NL               (0x1u << CAN_ILS_RF1NL_Pos)
822 #define CAN_ILS_RF1WL_Pos           5            /**< \brief (CAN_ILS) Rx FIFO 1 Watermark Reached Interrupt Line */
823 #define CAN_ILS_RF1WL               (0x1u << CAN_ILS_RF1WL_Pos)
824 #define CAN_ILS_RF1FL_Pos           6            /**< \brief (CAN_ILS) Rx FIFO 1 FIFO Full Interrupt Line */
825 #define CAN_ILS_RF1FL               (0x1u << CAN_ILS_RF1FL_Pos)
826 #define CAN_ILS_RF1LL_Pos           7            /**< \brief (CAN_ILS) Rx FIFO 1 Message Lost Interrupt Line */
827 #define CAN_ILS_RF1LL               (0x1u << CAN_ILS_RF1LL_Pos)
828 #define CAN_ILS_HPML_Pos            8            /**< \brief (CAN_ILS) High Priority Message Interrupt Line */
829 #define CAN_ILS_HPML                (0x1u << CAN_ILS_HPML_Pos)
830 #define CAN_ILS_TCL_Pos             9            /**< \brief (CAN_ILS) Timestamp Completed Interrupt Line */
831 #define CAN_ILS_TCL                 (0x1u << CAN_ILS_TCL_Pos)
832 #define CAN_ILS_TCFL_Pos            10           /**< \brief (CAN_ILS) Transmission Cancellation Finished Interrupt Line */
833 #define CAN_ILS_TCFL                (0x1u << CAN_ILS_TCFL_Pos)
834 #define CAN_ILS_TFEL_Pos            11           /**< \brief (CAN_ILS) Tx FIFO Empty Interrupt Line */
835 #define CAN_ILS_TFEL                (0x1u << CAN_ILS_TFEL_Pos)
836 #define CAN_ILS_TEFNL_Pos           12           /**< \brief (CAN_ILS) Tx Event FIFO New Entry Interrupt Line */
837 #define CAN_ILS_TEFNL               (0x1u << CAN_ILS_TEFNL_Pos)
838 #define CAN_ILS_TEFWL_Pos           13           /**< \brief (CAN_ILS) Tx Event FIFO Watermark Reached Interrupt Line */
839 #define CAN_ILS_TEFWL               (0x1u << CAN_ILS_TEFWL_Pos)
840 #define CAN_ILS_TEFFL_Pos           14           /**< \brief (CAN_ILS) Tx Event FIFO Full Interrupt Line */
841 #define CAN_ILS_TEFFL               (0x1u << CAN_ILS_TEFFL_Pos)
842 #define CAN_ILS_TEFLL_Pos           15           /**< \brief (CAN_ILS) Tx Event FIFO Element Lost Interrupt Line */
843 #define CAN_ILS_TEFLL               (0x1u << CAN_ILS_TEFLL_Pos)
844 #define CAN_ILS_TSWL_Pos            16           /**< \brief (CAN_ILS) Timestamp Wraparound Interrupt Line */
845 #define CAN_ILS_TSWL                (0x1u << CAN_ILS_TSWL_Pos)
846 #define CAN_ILS_MRAFL_Pos           17           /**< \brief (CAN_ILS) Message RAM Access Failure Interrupt Line */
847 #define CAN_ILS_MRAFL               (0x1u << CAN_ILS_MRAFL_Pos)
848 #define CAN_ILS_TOOL_Pos            18           /**< \brief (CAN_ILS) Timeout Occurred Interrupt Line */
849 #define CAN_ILS_TOOL                (0x1u << CAN_ILS_TOOL_Pos)
850 #define CAN_ILS_DRXL_Pos            19           /**< \brief (CAN_ILS) Message stored to Dedicated Rx Buffer Interrupt Line */
851 #define CAN_ILS_DRXL                (0x1u << CAN_ILS_DRXL_Pos)
852 #define CAN_ILS_BECL_Pos            20           /**< \brief (CAN_ILS) Bit Error Corrected Interrupt Line */
853 #define CAN_ILS_BECL                (0x1u << CAN_ILS_BECL_Pos)
854 #define CAN_ILS_BEUL_Pos            21           /**< \brief (CAN_ILS) Bit Error Uncorrected Interrupt Line */
855 #define CAN_ILS_BEUL                (0x1u << CAN_ILS_BEUL_Pos)
856 #define CAN_ILS_ELOL_Pos            22           /**< \brief (CAN_ILS) Error Logging Overflow Interrupt Line */
857 #define CAN_ILS_ELOL                (0x1u << CAN_ILS_ELOL_Pos)
858 #define CAN_ILS_EPL_Pos             23           /**< \brief (CAN_ILS) Error Passive Interrupt Line */
859 #define CAN_ILS_EPL                 (0x1u << CAN_ILS_EPL_Pos)
860 #define CAN_ILS_EWL_Pos             24           /**< \brief (CAN_ILS) Warning Status Interrupt Line */
861 #define CAN_ILS_EWL                 (0x1u << CAN_ILS_EWL_Pos)
862 #define CAN_ILS_BOL_Pos             25           /**< \brief (CAN_ILS) Bus_Off Status Interrupt Line */
863 #define CAN_ILS_BOL                 (0x1u << CAN_ILS_BOL_Pos)
864 #define CAN_ILS_WDIL_Pos            26           /**< \brief (CAN_ILS) Watchdog Interrupt Interrupt Line */
865 #define CAN_ILS_WDIL                (0x1u << CAN_ILS_WDIL_Pos)
866 #define CAN_ILS_PEAL_Pos            27           /**< \brief (CAN_ILS) Protocol Error in Arbitration Phase Line */
867 #define CAN_ILS_PEAL                (0x1u << CAN_ILS_PEAL_Pos)
868 #define CAN_ILS_PEDL_Pos            28           /**< \brief (CAN_ILS) Protocol Error in Data Phase Line */
869 #define CAN_ILS_PEDL                (0x1u << CAN_ILS_PEDL_Pos)
870 #define CAN_ILS_ARAL_Pos            29           /**< \brief (CAN_ILS) Access to Reserved Address Line */
871 #define CAN_ILS_ARAL                (0x1u << CAN_ILS_ARAL_Pos)
872 #define CAN_ILS_MASK                0x3FFFFFFFu  /**< \brief (CAN_ILS) MASK Register */
873
874 /* -------- CAN_ILE : (CAN Offset: 0x5C) (R/W 32) Interrupt Line Enable -------- */
875 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
876 typedef union {
877   struct {
878     uint32_t EINT0:1;          /*!< bit:      0  Enable Interrupt Line 0            */
879     uint32_t EINT1:1;          /*!< bit:      1  Enable Interrupt Line 1            */
880     uint32_t :30;              /*!< bit:  2..31  Reserved                           */
881   } bit;                       /*!< Structure used for bit  access                  */
882   uint32_t reg;                /*!< Type      used for register access              */
883 } CAN_ILE_Type;
884 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
885
886 #define CAN_ILE_OFFSET              0x5C         /**< \brief (CAN_ILE offset) Interrupt Line Enable */
887 #define CAN_ILE_RESETVALUE          0x00000000u  /**< \brief (CAN_ILE reset_value) Interrupt Line Enable */
888
889 #define CAN_ILE_EINT0_Pos           0            /**< \brief (CAN_ILE) Enable Interrupt Line 0 */
890 #define CAN_ILE_EINT0               (0x1u << CAN_ILE_EINT0_Pos)
891 #define CAN_ILE_EINT1_Pos           1            /**< \brief (CAN_ILE) Enable Interrupt Line 1 */
892 #define CAN_ILE_EINT1               (0x1u << CAN_ILE_EINT1_Pos)
893 #define CAN_ILE_MASK                0x00000003u  /**< \brief (CAN_ILE) MASK Register */
894
895 /* -------- CAN_GFC : (CAN Offset: 0x80) (R/W 32) Global Filter Configuration -------- */
896 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
897 typedef union {
898   struct {
899     uint32_t RRFE:1;           /*!< bit:      0  Reject Remote Frames Extended      */
900     uint32_t RRFS:1;           /*!< bit:      1  Reject Remote Frames Standard      */
901     uint32_t ANFE:2;           /*!< bit:  2.. 3  Accept Non-matching Frames Extended */
902     uint32_t ANFS:2;           /*!< bit:  4.. 5  Accept Non-matching Frames Standard */
903     uint32_t :26;              /*!< bit:  6..31  Reserved                           */
904   } bit;                       /*!< Structure used for bit  access                  */
905   uint32_t reg;                /*!< Type      used for register access              */
906 } CAN_GFC_Type;
907 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
908
909 #define CAN_GFC_OFFSET              0x80         /**< \brief (CAN_GFC offset) Global Filter Configuration */
910 #define CAN_GFC_RESETVALUE          0x00000000u  /**< \brief (CAN_GFC reset_value) Global Filter Configuration */
911
912 #define CAN_GFC_RRFE_Pos            0            /**< \brief (CAN_GFC) Reject Remote Frames Extended */
913 #define CAN_GFC_RRFE                (0x1u << CAN_GFC_RRFE_Pos)
914 #define CAN_GFC_RRFS_Pos            1            /**< \brief (CAN_GFC) Reject Remote Frames Standard */
915 #define CAN_GFC_RRFS                (0x1u << CAN_GFC_RRFS_Pos)
916 #define CAN_GFC_ANFE_Pos            2            /**< \brief (CAN_GFC) Accept Non-matching Frames Extended */
917 #define CAN_GFC_ANFE_Msk            (0x3u << CAN_GFC_ANFE_Pos)
918 #define CAN_GFC_ANFE(value)         (CAN_GFC_ANFE_Msk & ((value) << CAN_GFC_ANFE_Pos))
919 #define   CAN_GFC_ANFE_RXF0_Val           0x0u   /**< \brief (CAN_GFC) Accept in Rx FIFO 0 */
920 #define   CAN_GFC_ANFE_RXF1_Val           0x1u   /**< \brief (CAN_GFC) Accept in Rx FIFO 1 */
921 #define   CAN_GFC_ANFE_REJECT_Val         0x2u   /**< \brief (CAN_GFC) Reject */
922 #define CAN_GFC_ANFE_RXF0           (CAN_GFC_ANFE_RXF0_Val         << CAN_GFC_ANFE_Pos)
923 #define CAN_GFC_ANFE_RXF1           (CAN_GFC_ANFE_RXF1_Val         << CAN_GFC_ANFE_Pos)
924 #define CAN_GFC_ANFE_REJECT         (CAN_GFC_ANFE_REJECT_Val       << CAN_GFC_ANFE_Pos)
925 #define CAN_GFC_ANFS_Pos            4            /**< \brief (CAN_GFC) Accept Non-matching Frames Standard */
926 #define CAN_GFC_ANFS_Msk            (0x3u << CAN_GFC_ANFS_Pos)
927 #define CAN_GFC_ANFS(value)         (CAN_GFC_ANFS_Msk & ((value) << CAN_GFC_ANFS_Pos))
928 #define   CAN_GFC_ANFS_RXF0_Val           0x0u   /**< \brief (CAN_GFC) Accept in Rx FIFO 0 */
929 #define   CAN_GFC_ANFS_RXF1_Val           0x1u   /**< \brief (CAN_GFC) Accept in Rx FIFO 1 */
930 #define   CAN_GFC_ANFS_REJECT_Val         0x2u   /**< \brief (CAN_GFC) Reject */
931 #define CAN_GFC_ANFS_RXF0           (CAN_GFC_ANFS_RXF0_Val         << CAN_GFC_ANFS_Pos)
932 #define CAN_GFC_ANFS_RXF1           (CAN_GFC_ANFS_RXF1_Val         << CAN_GFC_ANFS_Pos)
933 #define CAN_GFC_ANFS_REJECT         (CAN_GFC_ANFS_REJECT_Val       << CAN_GFC_ANFS_Pos)
934 #define CAN_GFC_MASK                0x0000003Fu  /**< \brief (CAN_GFC) MASK Register */
935
936 /* -------- CAN_SIDFC : (CAN Offset: 0x84) (R/W 32) Standard ID Filter Configuration -------- */
937 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
938 typedef union {
939   struct {
940     uint32_t FLSSA:16;         /*!< bit:  0..15  Filter List Standard Start Address */
941     uint32_t LSS:8;            /*!< bit: 16..23  List Size Standard                 */
942     uint32_t :8;               /*!< bit: 24..31  Reserved                           */
943   } bit;                       /*!< Structure used for bit  access                  */
944   uint32_t reg;                /*!< Type      used for register access              */
945 } CAN_SIDFC_Type;
946 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
947
948 #define CAN_SIDFC_OFFSET            0x84         /**< \brief (CAN_SIDFC offset) Standard ID Filter Configuration */
949 #define CAN_SIDFC_RESETVALUE        0x00000000u  /**< \brief (CAN_SIDFC reset_value) Standard ID Filter Configuration */
950
951 #define CAN_SIDFC_FLSSA_Pos         0            /**< \brief (CAN_SIDFC) Filter List Standard Start Address */
952 #define CAN_SIDFC_FLSSA_Msk         (0xFFFFu << CAN_SIDFC_FLSSA_Pos)
953 #define CAN_SIDFC_FLSSA(value)      (CAN_SIDFC_FLSSA_Msk & ((value) << CAN_SIDFC_FLSSA_Pos))
954 #define CAN_SIDFC_LSS_Pos           16           /**< \brief (CAN_SIDFC) List Size Standard */
955 #define CAN_SIDFC_LSS_Msk           (0xFFu << CAN_SIDFC_LSS_Pos)
956 #define CAN_SIDFC_LSS(value)        (CAN_SIDFC_LSS_Msk & ((value) << CAN_SIDFC_LSS_Pos))
957 #define CAN_SIDFC_MASK              0x00FFFFFFu  /**< \brief (CAN_SIDFC) MASK Register */
958
959 /* -------- CAN_XIDFC : (CAN Offset: 0x88) (R/W 32) Extended ID Filter Configuration -------- */
960 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
961 typedef union {
962   struct {
963     uint32_t FLESA:16;         /*!< bit:  0..15  Filter List Extended Start Address */
964     uint32_t LSE:7;            /*!< bit: 16..22  List Size Extended                 */
965     uint32_t :9;               /*!< bit: 23..31  Reserved                           */
966   } bit;                       /*!< Structure used for bit  access                  */
967   uint32_t reg;                /*!< Type      used for register access              */
968 } CAN_XIDFC_Type;
969 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
970
971 #define CAN_XIDFC_OFFSET            0x88         /**< \brief (CAN_XIDFC offset) Extended ID Filter Configuration */
972 #define CAN_XIDFC_RESETVALUE        0x00000000u  /**< \brief (CAN_XIDFC reset_value) Extended ID Filter Configuration */
973
974 #define CAN_XIDFC_FLESA_Pos         0            /**< \brief (CAN_XIDFC) Filter List Extended Start Address */
975 #define CAN_XIDFC_FLESA_Msk         (0xFFFFu << CAN_XIDFC_FLESA_Pos)
976 #define CAN_XIDFC_FLESA(value)      (CAN_XIDFC_FLESA_Msk & ((value) << CAN_XIDFC_FLESA_Pos))
977 #define CAN_XIDFC_LSE_Pos           16           /**< \brief (CAN_XIDFC) List Size Extended */
978 #define CAN_XIDFC_LSE_Msk           (0x7Fu << CAN_XIDFC_LSE_Pos)
979 #define CAN_XIDFC_LSE(value)        (CAN_XIDFC_LSE_Msk & ((value) << CAN_XIDFC_LSE_Pos))
980 #define CAN_XIDFC_MASK              0x007FFFFFu  /**< \brief (CAN_XIDFC) MASK Register */
981
982 /* -------- CAN_XIDAM : (CAN Offset: 0x90) (R/W 32) Extended ID AND Mask -------- */
983 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
984 typedef union {
985   struct {
986     uint32_t EIDM:29;          /*!< bit:  0..28  Extended ID Mask                   */
987     uint32_t :3;               /*!< bit: 29..31  Reserved                           */
988   } bit;                       /*!< Structure used for bit  access                  */
989   uint32_t reg;                /*!< Type      used for register access              */
990 } CAN_XIDAM_Type;
991 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
992
993 #define CAN_XIDAM_OFFSET            0x90         /**< \brief (CAN_XIDAM offset) Extended ID AND Mask */
994 #define CAN_XIDAM_RESETVALUE        0x1FFFFFFFu  /**< \brief (CAN_XIDAM reset_value) Extended ID AND Mask */
995
996 #define CAN_XIDAM_EIDM_Pos          0            /**< \brief (CAN_XIDAM) Extended ID Mask */
997 #define CAN_XIDAM_EIDM_Msk          (0x1FFFFFFFu << CAN_XIDAM_EIDM_Pos)
998 #define CAN_XIDAM_EIDM(value)       (CAN_XIDAM_EIDM_Msk & ((value) << CAN_XIDAM_EIDM_Pos))
999 #define CAN_XIDAM_MASK              0x1FFFFFFFu  /**< \brief (CAN_XIDAM) MASK Register */
1000
1001 /* -------- CAN_HPMS : (CAN Offset: 0x94) (R/  32) High Priority Message Status -------- */
1002 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
1003 typedef union {
1004   struct {
1005     uint32_t BIDX:6;           /*!< bit:  0.. 5  Buffer Index                       */
1006     uint32_t MSI:2;            /*!< bit:  6.. 7  Message Storage Indicator          */
1007     uint32_t FIDX:7;           /*!< bit:  8..14  Filter Index                       */
1008     uint32_t FLST:1;           /*!< bit:     15  Filter List                        */
1009     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
1010   } bit;                       /*!< Structure used for bit  access                  */
1011   uint32_t reg;                /*!< Type      used for register access              */
1012 } CAN_HPMS_Type;
1013 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
1014
1015 #define CAN_HPMS_OFFSET             0x94         /**< \brief (CAN_HPMS offset) High Priority Message Status */
1016 #define CAN_HPMS_RESETVALUE         0x00000000u  /**< \brief (CAN_HPMS reset_value) High Priority Message Status */
1017
1018 #define CAN_HPMS_BIDX_Pos           0            /**< \brief (CAN_HPMS) Buffer Index */
1019 #define CAN_HPMS_BIDX_Msk           (0x3Fu << CAN_HPMS_BIDX_Pos)
1020 #define CAN_HPMS_BIDX(value)        (CAN_HPMS_BIDX_Msk & ((value) << CAN_HPMS_BIDX_Pos))
1021 #define CAN_HPMS_MSI_Pos            6            /**< \brief (CAN_HPMS) Message Storage Indicator */
1022 #define CAN_HPMS_MSI_Msk            (0x3u << CAN_HPMS_MSI_Pos)
1023 #define CAN_HPMS_MSI(value)         (CAN_HPMS_MSI_Msk & ((value) << CAN_HPMS_MSI_Pos))
1024 #define   CAN_HPMS_MSI_NONE_Val           0x0u   /**< \brief (CAN_HPMS) No FIFO selected */
1025 #define   CAN_HPMS_MSI_LOST_Val           0x1u   /**< \brief (CAN_HPMS) FIFO message lost */
1026 #define   CAN_HPMS_MSI_FIFO0_Val          0x2u   /**< \brief (CAN_HPMS) Message stored in FIFO 0 */
1027 #define   CAN_HPMS_MSI_FIFO1_Val          0x3u   /**< \brief (CAN_HPMS) Message stored in FIFO 1 */
1028 #define CAN_HPMS_MSI_NONE           (CAN_HPMS_MSI_NONE_Val         << CAN_HPMS_MSI_Pos)
1029 #define CAN_HPMS_MSI_LOST           (CAN_HPMS_MSI_LOST_Val         << CAN_HPMS_MSI_Pos)
1030 #define CAN_HPMS_MSI_FIFO0          (CAN_HPMS_MSI_FIFO0_Val        << CAN_HPMS_MSI_Pos)
1031 #define CAN_HPMS_MSI_FIFO1          (CAN_HPMS_MSI_FIFO1_Val        << CAN_HPMS_MSI_Pos)
1032 #define CAN_HPMS_FIDX_Pos           8            /**< \brief (CAN_HPMS) Filter Index */
1033 #define CAN_HPMS_FIDX_Msk           (0x7Fu << CAN_HPMS_FIDX_Pos)
1034 #define CAN_HPMS_FIDX(value)        (CAN_HPMS_FIDX_Msk & ((value) << CAN_HPMS_FIDX_Pos))
1035 #define CAN_HPMS_FLST_Pos           15           /**< \brief (CAN_HPMS) Filter List */
1036 #define CAN_HPMS_FLST               (0x1u << CAN_HPMS_FLST_Pos)
1037 #define CAN_HPMS_MASK               0x0000FFFFu  /**< \brief (CAN_HPMS) MASK Register */
1038
1039 /* -------- CAN_NDAT1 : (CAN Offset: 0x98) (R/W 32) New Data 1 -------- */
1040 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
1041 typedef union {
1042   struct {
1043     uint32_t ND0:1;            /*!< bit:      0  New Data 0                         */
1044     uint32_t ND1:1;            /*!< bit:      1  New Data 1                         */
1045     uint32_t ND2:1;            /*!< bit:      2  New Data 2                         */
1046     uint32_t ND3:1;            /*!< bit:      3  New Data 3                         */
1047     uint32_t ND4:1;            /*!< bit:      4  New Data 4                         */
1048     uint32_t ND5:1;            /*!< bit:      5  New Data 5                         */
1049     uint32_t ND6:1;            /*!< bit:      6  New Data 6                         */
1050     uint32_t ND7:1;            /*!< bit:      7  New Data 7                         */
1051     uint32_t ND8:1;            /*!< bit:      8  New Data 8                         */
1052     uint32_t ND9:1;            /*!< bit:      9  New Data 9                         */
1053     uint32_t ND10:1;           /*!< bit:     10  New Data 10                        */
1054     uint32_t ND11:1;           /*!< bit:     11  New Data 11                        */
1055     uint32_t ND12:1;           /*!< bit:     12  New Data 12                        */
1056     uint32_t ND13:1;           /*!< bit:     13  New Data 13                        */
1057     uint32_t ND14:1;           /*!< bit:     14  New Data 14                        */
1058     uint32_t ND15:1;           /*!< bit:     15  New Data 15                        */
1059     uint32_t ND16:1;           /*!< bit:     16  New Data 16                        */
1060     uint32_t ND17:1;           /*!< bit:     17  New Data 17                        */
1061     uint32_t ND18:1;           /*!< bit:     18  New Data 18                        */
1062     uint32_t ND19:1;           /*!< bit:     19  New Data 19                        */
1063     uint32_t ND20:1;           /*!< bit:     20  New Data 20                        */
1064     uint32_t ND21:1;           /*!< bit:     21  New Data 21                        */
1065     uint32_t ND22:1;           /*!< bit:     22  New Data 22                        */
1066     uint32_t ND23:1;           /*!< bit:     23  New Data 23                        */
1067     uint32_t ND24:1;           /*!< bit:     24  New Data 24                        */
1068     uint32_t ND25:1;           /*!< bit:     25  New Data 25                        */
1069     uint32_t ND26:1;           /*!< bit:     26  New Data 26                        */
1070     uint32_t ND27:1;           /*!< bit:     27  New Data 27                        */
1071     uint32_t ND28:1;           /*!< bit:     28  New Data 28                        */
1072     uint32_t ND29:1;           /*!< bit:     29  New Data 29                        */
1073     uint32_t ND30:1;           /*!< bit:     30  New Data 30                        */
1074     uint32_t ND31:1;           /*!< bit:     31  New Data 31                        */
1075   } bit;                       /*!< Structure used for bit  access                  */
1076   uint32_t reg;                /*!< Type      used for register access              */
1077 } CAN_NDAT1_Type;
1078 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
1079
1080 #define CAN_NDAT1_OFFSET            0x98         /**< \brief (CAN_NDAT1 offset) New Data 1 */
1081 #define CAN_NDAT1_RESETVALUE        0x00000000u  /**< \brief (CAN_NDAT1 reset_value) New Data 1 */
1082
1083 #define CAN_NDAT1_ND0_Pos           0            /**< \brief (CAN_NDAT1) New Data 0 */
1084 #define CAN_NDAT1_ND0               (0x1u << CAN_NDAT1_ND0_Pos)
1085 #define CAN_NDAT1_ND1_Pos           1            /**< \brief (CAN_NDAT1) New Data 1 */
1086 #define CAN_NDAT1_ND1               (0x1u << CAN_NDAT1_ND1_Pos)
1087 #define CAN_NDAT1_ND2_Pos           2            /**< \brief (CAN_NDAT1) New Data 2 */
1088 #define CAN_NDAT1_ND2               (0x1u << CAN_NDAT1_ND2_Pos)
1089 #define CAN_NDAT1_ND3_Pos           3            /**< \brief (CAN_NDAT1) New Data 3 */
1090 #define CAN_NDAT1_ND3               (0x1u << CAN_NDAT1_ND3_Pos)
1091 #define CAN_NDAT1_ND4_Pos           4            /**< \brief (CAN_NDAT1) New Data 4 */
1092 #define CAN_NDAT1_ND4               (0x1u << CAN_NDAT1_ND4_Pos)
1093 #define CAN_NDAT1_ND5_Pos           5            /**< \brief (CAN_NDAT1) New Data 5 */
1094 #define CAN_NDAT1_ND5               (0x1u << CAN_NDAT1_ND5_Pos)
1095 #define CAN_NDAT1_ND6_Pos           6            /**< \brief (CAN_NDAT1) New Data 6 */
1096 #define CAN_NDAT1_ND6               (0x1u << CAN_NDAT1_ND6_Pos)
1097 #define CAN_NDAT1_ND7_Pos           7            /**< \brief (CAN_NDAT1) New Data 7 */
1098 #define CAN_NDAT1_ND7               (0x1u << CAN_NDAT1_ND7_Pos)
1099 #define CAN_NDAT1_ND8_Pos           8            /**< \brief (CAN_NDAT1) New Data 8 */
1100 #define CAN_NDAT1_ND8               (0x1u << CAN_NDAT1_ND8_Pos)
1101 #define CAN_NDAT1_ND9_Pos           9            /**< \brief (CAN_NDAT1) New Data 9 */
1102 #define CAN_NDAT1_ND9               (0x1u << CAN_NDAT1_ND9_Pos)
1103 #define CAN_NDAT1_ND10_Pos          10           /**< \brief (CAN_NDAT1) New Data 10 */
1104 #define CAN_NDAT1_ND10              (0x1u << CAN_NDAT1_ND10_Pos)
1105 #define CAN_NDAT1_ND11_Pos          11           /**< \brief (CAN_NDAT1) New Data 11 */
1106 #define CAN_NDAT1_ND11              (0x1u << CAN_NDAT1_ND11_Pos)
1107 #define CAN_NDAT1_ND12_Pos          12           /**< \brief (CAN_NDAT1) New Data 12 */
1108 #define CAN_NDAT1_ND12              (0x1u << CAN_NDAT1_ND12_Pos)
1109 #define CAN_NDAT1_ND13_Pos          13           /**< \brief (CAN_NDAT1) New Data 13 */
1110 #define CAN_NDAT1_ND13              (0x1u << CAN_NDAT1_ND13_Pos)
1111 #define CAN_NDAT1_ND14_Pos          14           /**< \brief (CAN_NDAT1) New Data 14 */
1112 #define CAN_NDAT1_ND14              (0x1u << CAN_NDAT1_ND14_Pos)
1113 #define CAN_NDAT1_ND15_Pos          15           /**< \brief (CAN_NDAT1) New Data 15 */
1114 #define CAN_NDAT1_ND15              (0x1u << CAN_NDAT1_ND15_Pos)
1115 #define CAN_NDAT1_ND16_Pos          16           /**< \brief (CAN_NDAT1) New Data 16 */
1116 #define CAN_NDAT1_ND16              (0x1u << CAN_NDAT1_ND16_Pos)
1117 #define CAN_NDAT1_ND17_Pos          17           /**< \brief (CAN_NDAT1) New Data 17 */
1118 #define CAN_NDAT1_ND17              (0x1u << CAN_NDAT1_ND17_Pos)
1119 #define CAN_NDAT1_ND18_Pos          18           /**< \brief (CAN_NDAT1) New Data 18 */
1120 #define CAN_NDAT1_ND18              (0x1u << CAN_NDAT1_ND18_Pos)
1121 #define CAN_NDAT1_ND19_Pos          19           /**< \brief (CAN_NDAT1) New Data 19 */
1122 #define CAN_NDAT1_ND19              (0x1u << CAN_NDAT1_ND19_Pos)
1123 #define CAN_NDAT1_ND20_Pos          20           /**< \brief (CAN_NDAT1) New Data 20 */
1124 #define CAN_NDAT1_ND20              (0x1u << CAN_NDAT1_ND20_Pos)
1125 #define CAN_NDAT1_ND21_Pos          21           /**< \brief (CAN_NDAT1) New Data 21 */
1126 #define CAN_NDAT1_ND21              (0x1u << CAN_NDAT1_ND21_Pos)
1127 #define CAN_NDAT1_ND22_Pos          22           /**< \brief (CAN_NDAT1) New Data 22 */
1128 #define CAN_NDAT1_ND22              (0x1u << CAN_NDAT1_ND22_Pos)
1129 #define CAN_NDAT1_ND23_Pos          23           /**< \brief (CAN_NDAT1) New Data 23 */
1130 #define CAN_NDAT1_ND23              (0x1u << CAN_NDAT1_ND23_Pos)
1131 #define CAN_NDAT1_ND24_Pos          24           /**< \brief (CAN_NDAT1) New Data 24 */
1132 #define CAN_NDAT1_ND24              (0x1u << CAN_NDAT1_ND24_Pos)
1133 #define CAN_NDAT1_ND25_Pos          25           /**< \brief (CAN_NDAT1) New Data 25 */
1134 #define CAN_NDAT1_ND25              (0x1u << CAN_NDAT1_ND25_Pos)
1135 #define CAN_NDAT1_ND26_Pos          26           /**< \brief (CAN_NDAT1) New Data 26 */
1136 #define CAN_NDAT1_ND26              (0x1u << CAN_NDAT1_ND26_Pos)
1137 #define CAN_NDAT1_ND27_Pos          27           /**< \brief (CAN_NDAT1) New Data 27 */
1138 #define CAN_NDAT1_ND27              (0x1u << CAN_NDAT1_ND27_Pos)
1139 #define CAN_NDAT1_ND28_Pos          28           /**< \brief (CAN_NDAT1) New Data 28 */
1140 #define CAN_NDAT1_ND28              (0x1u << CAN_NDAT1_ND28_Pos)
1141 #define CAN_NDAT1_ND29_Pos          29           /**< \brief (CAN_NDAT1) New Data 29 */
1142 #define CAN_NDAT1_ND29              (0x1u << CAN_NDAT1_ND29_Pos)
1143 #define CAN_NDAT1_ND30_Pos          30           /**< \brief (CAN_NDAT1) New Data 30 */
1144 #define CAN_NDAT1_ND30              (0x1u << CAN_NDAT1_ND30_Pos)
1145 #define CAN_NDAT1_ND31_Pos          31           /**< \brief (CAN_NDAT1) New Data 31 */
1146 #define CAN_NDAT1_ND31              (0x1u << CAN_NDAT1_ND31_Pos)
1147 #define CAN_NDAT1_MASK              0xFFFFFFFFu  /**< \brief (CAN_NDAT1) MASK Register */
1148
1149 /* -------- CAN_NDAT2 : (CAN Offset: 0x9C) (R/W 32) New Data 2 -------- */
1150 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
1151 typedef union {
1152   struct {
1153     uint32_t ND32:1;           /*!< bit:      0  New Data 32                        */
1154     uint32_t ND33:1;           /*!< bit:      1  New Data 33                        */
1155     uint32_t ND34:1;           /*!< bit:      2  New Data 34                        */
1156     uint32_t ND35:1;           /*!< bit:      3  New Data 35                        */
1157     uint32_t ND36:1;           /*!< bit:      4  New Data 36                        */
1158     uint32_t ND37:1;           /*!< bit:      5  New Data 37                        */
1159     uint32_t ND38:1;           /*!< bit:      6  New Data 38                        */
1160     uint32_t ND39:1;           /*!< bit:      7  New Data 39                        */
1161     uint32_t ND40:1;           /*!< bit:      8  New Data 40                        */
1162     uint32_t ND41:1;           /*!< bit:      9  New Data 41                        */
1163     uint32_t ND42:1;           /*!< bit:     10  New Data 42                        */
1164     uint32_t ND43:1;           /*!< bit:     11  New Data 43                        */
1165     uint32_t ND44:1;           /*!< bit:     12  New Data 44                        */
1166     uint32_t ND45:1;           /*!< bit:     13  New Data 45                        */
1167     uint32_t ND46:1;           /*!< bit:     14  New Data 46                        */
1168     uint32_t ND47:1;           /*!< bit:     15  New Data 47                        */
1169     uint32_t ND48:1;           /*!< bit:     16  New Data 48                        */
1170     uint32_t ND49:1;           /*!< bit:     17  New Data 49                        */
1171     uint32_t ND50:1;           /*!< bit:     18  New Data 50                        */
1172     uint32_t ND51:1;           /*!< bit:     19  New Data 51                        */
1173     uint32_t ND52:1;           /*!< bit:     20  New Data 52                        */
1174     uint32_t ND53:1;           /*!< bit:     21  New Data 53                        */
1175     uint32_t ND54:1;           /*!< bit:     22  New Data 54                        */
1176     uint32_t ND55:1;           /*!< bit:     23  New Data 55                        */
1177     uint32_t ND56:1;           /*!< bit:     24  New Data 56                        */
1178     uint32_t ND57:1;           /*!< bit:     25  New Data 57                        */
1179     uint32_t ND58:1;           /*!< bit:     26  New Data 58                        */
1180     uint32_t ND59:1;           /*!< bit:     27  New Data 59                        */
1181     uint32_t ND60:1;           /*!< bit:     28  New Data 60                        */
1182     uint32_t ND61:1;           /*!< bit:     29  New Data 61                        */
1183     uint32_t ND62:1;           /*!< bit:     30  New Data 62                        */
1184     uint32_t ND63:1;           /*!< bit:     31  New Data 63                        */
1185   } bit;                       /*!< Structure used for bit  access                  */
1186   uint32_t reg;                /*!< Type      used for register access              */
1187 } CAN_NDAT2_Type;
1188 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
1189
1190 #define CAN_NDAT2_OFFSET            0x9C         /**< \brief (CAN_NDAT2 offset) New Data 2 */
1191 #define CAN_NDAT2_RESETVALUE        0x00000000u  /**< \brief (CAN_NDAT2 reset_value) New Data 2 */
1192
1193 #define CAN_NDAT2_ND32_Pos          0            /**< \brief (CAN_NDAT2) New Data 32 */
1194 #define CAN_NDAT2_ND32              (0x1u << CAN_NDAT2_ND32_Pos)
1195 #define CAN_NDAT2_ND33_Pos          1            /**< \brief (CAN_NDAT2) New Data 33 */
1196 #define CAN_NDAT2_ND33              (0x1u << CAN_NDAT2_ND33_Pos)
1197 #define CAN_NDAT2_ND34_Pos          2            /**< \brief (CAN_NDAT2) New Data 34 */
1198 #define CAN_NDAT2_ND34              (0x1u << CAN_NDAT2_ND34_Pos)
1199 #define CAN_NDAT2_ND35_Pos          3            /**< \brief (CAN_NDAT2) New Data 35 */
1200 #define CAN_NDAT2_ND35              (0x1u << CAN_NDAT2_ND35_Pos)
1201 #define CAN_NDAT2_ND36_Pos          4            /**< \brief (CAN_NDAT2) New Data 36 */
1202 #define CAN_NDAT2_ND36              (0x1u << CAN_NDAT2_ND36_Pos)
1203 #define CAN_NDAT2_ND37_Pos          5            /**< \brief (CAN_NDAT2) New Data 37 */
1204 #define CAN_NDAT2_ND37              (0x1u << CAN_NDAT2_ND37_Pos)
1205 #define CAN_NDAT2_ND38_Pos          6            /**< \brief (CAN_NDAT2) New Data 38 */
1206 #define CAN_NDAT2_ND38              (0x1u << CAN_NDAT2_ND38_Pos)
1207 #define CAN_NDAT2_ND39_Pos          7            /**< \brief (CAN_NDAT2) New Data 39 */
1208 #define CAN_NDAT2_ND39              (0x1u << CAN_NDAT2_ND39_Pos)
1209 #define CAN_NDAT2_ND40_Pos          8            /**< \brief (CAN_NDAT2) New Data 40 */
1210 #define CAN_NDAT2_ND40              (0x1u << CAN_NDAT2_ND40_Pos)
1211 #define CAN_NDAT2_ND41_Pos          9            /**< \brief (CAN_NDAT2) New Data 41 */
1212 #define CAN_NDAT2_ND41              (0x1u << CAN_NDAT2_ND41_Pos)
1213 #define CAN_NDAT2_ND42_Pos          10           /**< \brief (CAN_NDAT2) New Data 42 */
1214 #define CAN_NDAT2_ND42              (0x1u << CAN_NDAT2_ND42_Pos)
1215 #define CAN_NDAT2_ND43_Pos          11           /**< \brief (CAN_NDAT2) New Data 43 */
1216 #define CAN_NDAT2_ND43              (0x1u << CAN_NDAT2_ND43_Pos)
1217 #define CAN_NDAT2_ND44_Pos          12           /**< \brief (CAN_NDAT2) New Data 44 */
1218 #define CAN_NDAT2_ND44              (0x1u << CAN_NDAT2_ND44_Pos)
1219 #define CAN_NDAT2_ND45_Pos          13           /**< \brief (CAN_NDAT2) New Data 45 */
1220 #define CAN_NDAT2_ND45              (0x1u << CAN_NDAT2_ND45_Pos)
1221 #define CAN_NDAT2_ND46_Pos          14           /**< \brief (CAN_NDAT2) New Data 46 */
1222 #define CAN_NDAT2_ND46              (0x1u << CAN_NDAT2_ND46_Pos)
1223 #define CAN_NDAT2_ND47_Pos          15           /**< \brief (CAN_NDAT2) New Data 47 */
1224 #define CAN_NDAT2_ND47              (0x1u << CAN_NDAT2_ND47_Pos)
1225 #define CAN_NDAT2_ND48_Pos          16           /**< \brief (CAN_NDAT2) New Data 48 */
1226 #define CAN_NDAT2_ND48              (0x1u << CAN_NDAT2_ND48_Pos)
1227 #define CAN_NDAT2_ND49_Pos          17           /**< \brief (CAN_NDAT2) New Data 49 */
1228 #define CAN_NDAT2_ND49              (0x1u << CAN_NDAT2_ND49_Pos)
1229 #define CAN_NDAT2_ND50_Pos          18           /**< \brief (CAN_NDAT2) New Data 50 */
1230 #define CAN_NDAT2_ND50              (0x1u << CAN_NDAT2_ND50_Pos)
1231 #define CAN_NDAT2_ND51_Pos          19           /**< \brief (CAN_NDAT2) New Data 51 */
1232 #define CAN_NDAT2_ND51              (0x1u << CAN_NDAT2_ND51_Pos)
1233 #define CAN_NDAT2_ND52_Pos          20           /**< \brief (CAN_NDAT2) New Data 52 */
1234 #define CAN_NDAT2_ND52              (0x1u << CAN_NDAT2_ND52_Pos)
1235 #define CAN_NDAT2_ND53_Pos          21           /**< \brief (CAN_NDAT2) New Data 53 */
1236 #define CAN_NDAT2_ND53              (0x1u << CAN_NDAT2_ND53_Pos)
1237 #define CAN_NDAT2_ND54_Pos          22           /**< \brief (CAN_NDAT2) New Data 54 */
1238 #define CAN_NDAT2_ND54              (0x1u << CAN_NDAT2_ND54_Pos)
1239 #define CAN_NDAT2_ND55_Pos          23           /**< \brief (CAN_NDAT2) New Data 55 */
1240 #define CAN_NDAT2_ND55              (0x1u << CAN_NDAT2_ND55_Pos)
1241 #define CAN_NDAT2_ND56_Pos          24           /**< \brief (CAN_NDAT2) New Data 56 */
1242 #define CAN_NDAT2_ND56              (0x1u << CAN_NDAT2_ND56_Pos)
1243 #define CAN_NDAT2_ND57_Pos          25           /**< \brief (CAN_NDAT2) New Data 57 */
1244 #define CAN_NDAT2_ND57              (0x1u << CAN_NDAT2_ND57_Pos)
1245 #define CAN_NDAT2_ND58_Pos          26           /**< \brief (CAN_NDAT2) New Data 58 */
1246 #define CAN_NDAT2_ND58              (0x1u << CAN_NDAT2_ND58_Pos)
1247 #define CAN_NDAT2_ND59_Pos          27           /**< \brief (CAN_NDAT2) New Data 59 */
1248 #define CAN_NDAT2_ND59              (0x1u << CAN_NDAT2_ND59_Pos)
1249 #define CAN_NDAT2_ND60_Pos          28           /**< \brief (CAN_NDAT2) New Data 60 */
1250 #define CAN_NDAT2_ND60              (0x1u << CAN_NDAT2_ND60_Pos)
1251 #define CAN_NDAT2_ND61_Pos          29           /**< \brief (CAN_NDAT2) New Data 61 */
1252 #define CAN_NDAT2_ND61              (0x1u << CAN_NDAT2_ND61_Pos)
1253 #define CAN_NDAT2_ND62_Pos          30           /**< \brief (CAN_NDAT2) New Data 62 */
1254 #define CAN_NDAT2_ND62              (0x1u << CAN_NDAT2_ND62_Pos)
1255 #define CAN_NDAT2_ND63_Pos          31           /**< \brief (CAN_NDAT2) New Data 63 */
1256 #define CAN_NDAT2_ND63              (0x1u << CAN_NDAT2_ND63_Pos)
1257 #define CAN_NDAT2_MASK              0xFFFFFFFFu  /**< \brief (CAN_NDAT2) MASK Register */
1258
1259 /* -------- CAN_RXF0C : (CAN Offset: 0xA0) (R/W 32) Rx FIFO 0 Configuration -------- */
1260 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
1261 typedef union {
1262   struct {
1263     uint32_t F0SA:16;          /*!< bit:  0..15  Rx FIFO 0 Start Address            */
1264     uint32_t F0S:7;            /*!< bit: 16..22  Rx FIFO 0 Size                     */
1265     uint32_t :1;               /*!< bit:     23  Reserved                           */
1266     uint32_t F0WM:7;           /*!< bit: 24..30  Rx FIFO 0 Watermark                */
1267     uint32_t F0OM:1;           /*!< bit:     31  FIFO 0 Operation Mode              */
1268   } bit;                       /*!< Structure used for bit  access                  */
1269   uint32_t reg;                /*!< Type      used for register access              */
1270 } CAN_RXF0C_Type;
1271 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
1272
1273 #define CAN_RXF0C_OFFSET            0xA0         /**< \brief (CAN_RXF0C offset) Rx FIFO 0 Configuration */
1274 #define CAN_RXF0C_RESETVALUE        0x00000000u  /**< \brief (CAN_RXF0C reset_value) Rx FIFO 0 Configuration */
1275
1276 #define CAN_RXF0C_F0SA_Pos          0            /**< \brief (CAN_RXF0C) Rx FIFO 0 Start Address */
1277 #define CAN_RXF0C_F0SA_Msk          (0xFFFFu << CAN_RXF0C_F0SA_Pos)
1278 #define CAN_RXF0C_F0SA(value)       (CAN_RXF0C_F0SA_Msk & ((value) << CAN_RXF0C_F0SA_Pos))
1279 #define CAN_RXF0C_F0S_Pos           16           /**< \brief (CAN_RXF0C) Rx FIFO 0 Size */
1280 #define CAN_RXF0C_F0S_Msk           (0x7Fu << CAN_RXF0C_F0S_Pos)
1281 #define CAN_RXF0C_F0S(value)        (CAN_RXF0C_F0S_Msk & ((value) << CAN_RXF0C_F0S_Pos))
1282 #define CAN_RXF0C_F0WM_Pos          24           /**< \brief (CAN_RXF0C) Rx FIFO 0 Watermark */
1283 #define CAN_RXF0C_F0WM_Msk          (0x7Fu << CAN_RXF0C_F0WM_Pos)
1284 #define CAN_RXF0C_F0WM(value)       (CAN_RXF0C_F0WM_Msk & ((value) << CAN_RXF0C_F0WM_Pos))
1285 #define CAN_RXF0C_F0OM_Pos          31           /**< \brief (CAN_RXF0C) FIFO 0 Operation Mode */
1286 #define CAN_RXF0C_F0OM              (0x1u << CAN_RXF0C_F0OM_Pos)
1287 #define CAN_RXF0C_MASK              0xFF7FFFFFu  /**< \brief (CAN_RXF0C) MASK Register */
1288
1289 /* -------- CAN_RXF0S : (CAN Offset: 0xA4) (R/  32) Rx FIFO 0 Status -------- */
1290 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
1291 typedef union {
1292   struct {
1293     uint32_t F0FL:7;           /*!< bit:  0.. 6  Rx FIFO 0 Fill Level               */
1294     uint32_t :1;               /*!< bit:      7  Reserved                           */
1295     uint32_t F0GI:6;           /*!< bit:  8..13  Rx FIFO 0 Get Index                */
1296     uint32_t :2;               /*!< bit: 14..15  Reserved                           */
1297     uint32_t F0PI:6;           /*!< bit: 16..21  Rx FIFO 0 Put Index                */
1298     uint32_t :2;               /*!< bit: 22..23  Reserved                           */
1299     uint32_t F0F:1;            /*!< bit:     24  Rx FIFO 0 Full                     */
1300     uint32_t RF0L:1;           /*!< bit:     25  Rx FIFO 0 Message Lost             */
1301     uint32_t :6;               /*!< bit: 26..31  Reserved                           */
1302   } bit;                       /*!< Structure used for bit  access                  */
1303   uint32_t reg;                /*!< Type      used for register access              */
1304 } CAN_RXF0S_Type;
1305 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
1306
1307 #define CAN_RXF0S_OFFSET            0xA4         /**< \brief (CAN_RXF0S offset) Rx FIFO 0 Status */
1308 #define CAN_RXF0S_RESETVALUE        0x00000000u  /**< \brief (CAN_RXF0S reset_value) Rx FIFO 0 Status */
1309
1310 #define CAN_RXF0S_F0FL_Pos          0            /**< \brief (CAN_RXF0S) Rx FIFO 0 Fill Level */
1311 #define CAN_RXF0S_F0FL_Msk          (0x7Fu << CAN_RXF0S_F0FL_Pos)
1312 #define CAN_RXF0S_F0FL(value)       (CAN_RXF0S_F0FL_Msk & ((value) << CAN_RXF0S_F0FL_Pos))
1313 #define CAN_RXF0S_F0GI_Pos          8            /**< \brief (CAN_RXF0S) Rx FIFO 0 Get Index */
1314 #define CAN_RXF0S_F0GI_Msk          (0x3Fu << CAN_RXF0S_F0GI_Pos)
1315 #define CAN_RXF0S_F0GI(value)       (CAN_RXF0S_F0GI_Msk & ((value) << CAN_RXF0S_F0GI_Pos))
1316 #define CAN_RXF0S_F0PI_Pos          16           /**< \brief (CAN_RXF0S) Rx FIFO 0 Put Index */
1317 #define CAN_RXF0S_F0PI_Msk          (0x3Fu << CAN_RXF0S_F0PI_Pos)
1318 #define CAN_RXF0S_F0PI(value)       (CAN_RXF0S_F0PI_Msk & ((value) << CAN_RXF0S_F0PI_Pos))
1319 #define CAN_RXF0S_F0F_Pos           24           /**< \brief (CAN_RXF0S) Rx FIFO 0 Full */
1320 #define CAN_RXF0S_F0F               (0x1u << CAN_RXF0S_F0F_Pos)
1321 #define CAN_RXF0S_RF0L_Pos          25           /**< \brief (CAN_RXF0S) Rx FIFO 0 Message Lost */
1322 #define CAN_RXF0S_RF0L              (0x1u << CAN_RXF0S_RF0L_Pos)
1323 #define CAN_RXF0S_MASK              0x033F3F7Fu  /**< \brief (CAN_RXF0S) MASK Register */
1324
1325 /* -------- CAN_RXF0A : (CAN Offset: 0xA8) (R/W 32) Rx FIFO 0 Acknowledge -------- */
1326 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
1327 typedef union {
1328   struct {
1329     uint32_t F0AI:6;           /*!< bit:  0.. 5  Rx FIFO 0 Acknowledge Index        */
1330     uint32_t :26;              /*!< bit:  6..31  Reserved                           */
1331   } bit;                       /*!< Structure used for bit  access                  */
1332   uint32_t reg;                /*!< Type      used for register access              */
1333 } CAN_RXF0A_Type;
1334 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
1335
1336 #define CAN_RXF0A_OFFSET            0xA8         /**< \brief (CAN_RXF0A offset) Rx FIFO 0 Acknowledge */
1337 #define CAN_RXF0A_RESETVALUE        0x00000000u  /**< \brief (CAN_RXF0A reset_value) Rx FIFO 0 Acknowledge */
1338
1339 #define CAN_RXF0A_F0AI_Pos          0            /**< \brief (CAN_RXF0A) Rx FIFO 0 Acknowledge Index */
1340 #define CAN_RXF0A_F0AI_Msk          (0x3Fu << CAN_RXF0A_F0AI_Pos)
1341 #define CAN_RXF0A_F0AI(value)       (CAN_RXF0A_F0AI_Msk & ((value) << CAN_RXF0A_F0AI_Pos))
1342 #define CAN_RXF0A_MASK              0x0000003Fu  /**< \brief (CAN_RXF0A) MASK Register */
1343
1344 /* -------- CAN_RXBC : (CAN Offset: 0xAC) (R/W 32) Rx Buffer Configuration -------- */
1345 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
1346 typedef union {
1347   struct {
1348     uint32_t RBSA:16;          /*!< bit:  0..15  Rx Buffer Start Address            */
1349     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
1350   } bit;                       /*!< Structure used for bit  access                  */
1351   uint32_t reg;                /*!< Type      used for register access              */
1352 } CAN_RXBC_Type;
1353 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
1354
1355 #define CAN_RXBC_OFFSET             0xAC         /**< \brief (CAN_RXBC offset) Rx Buffer Configuration */
1356 #define CAN_RXBC_RESETVALUE         0x00000000u  /**< \brief (CAN_RXBC reset_value) Rx Buffer Configuration */
1357
1358 #define CAN_RXBC_RBSA_Pos           0            /**< \brief (CAN_RXBC) Rx Buffer Start Address */
1359 #define CAN_RXBC_RBSA_Msk           (0xFFFFu << CAN_RXBC_RBSA_Pos)
1360 #define CAN_RXBC_RBSA(value)        (CAN_RXBC_RBSA_Msk & ((value) << CAN_RXBC_RBSA_Pos))
1361 #define CAN_RXBC_MASK               0x0000FFFFu  /**< \brief (CAN_RXBC) MASK Register */
1362
1363 /* -------- CAN_RXF1C : (CAN Offset: 0xB0) (R/W 32) Rx FIFO 1 Configuration -------- */
1364 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
1365 typedef union {
1366   struct {
1367     uint32_t F1SA:16;          /*!< bit:  0..15  Rx FIFO 1 Start Address            */
1368     uint32_t F1S:7;            /*!< bit: 16..22  Rx FIFO 1 Size                     */
1369     uint32_t :1;               /*!< bit:     23  Reserved                           */
1370     uint32_t F1WM:7;           /*!< bit: 24..30  Rx FIFO 1 Watermark                */
1371     uint32_t F1OM:1;           /*!< bit:     31  FIFO 1 Operation Mode              */
1372   } bit;                       /*!< Structure used for bit  access                  */
1373   uint32_t reg;                /*!< Type      used for register access              */
1374 } CAN_RXF1C_Type;
1375 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
1376
1377 #define CAN_RXF1C_OFFSET            0xB0         /**< \brief (CAN_RXF1C offset) Rx FIFO 1 Configuration */
1378 #define CAN_RXF1C_RESETVALUE        0x00000000u  /**< \brief (CAN_RXF1C reset_value) Rx FIFO 1 Configuration */
1379
1380 #define CAN_RXF1C_F1SA_Pos          0            /**< \brief (CAN_RXF1C) Rx FIFO 1 Start Address */
1381 #define CAN_RXF1C_F1SA_Msk          (0xFFFFu << CAN_RXF1C_F1SA_Pos)
1382 #define CAN_RXF1C_F1SA(value)       (CAN_RXF1C_F1SA_Msk & ((value) << CAN_RXF1C_F1SA_Pos))
1383 #define CAN_RXF1C_F1S_Pos           16           /**< \brief (CAN_RXF1C) Rx FIFO 1 Size */
1384 #define CAN_RXF1C_F1S_Msk           (0x7Fu << CAN_RXF1C_F1S_Pos)
1385 #define CAN_RXF1C_F1S(value)        (CAN_RXF1C_F1S_Msk & ((value) << CAN_RXF1C_F1S_Pos))
1386 #define CAN_RXF1C_F1WM_Pos          24           /**< \brief (CAN_RXF1C) Rx FIFO 1 Watermark */
1387 #define CAN_RXF1C_F1WM_Msk          (0x7Fu << CAN_RXF1C_F1WM_Pos)
1388 #define CAN_RXF1C_F1WM(value)       (CAN_RXF1C_F1WM_Msk & ((value) << CAN_RXF1C_F1WM_Pos))
1389 #define CAN_RXF1C_F1OM_Pos          31           /**< \brief (CAN_RXF1C) FIFO 1 Operation Mode */
1390 #define CAN_RXF1C_F1OM              (0x1u << CAN_RXF1C_F1OM_Pos)
1391 #define CAN_RXF1C_MASK              0xFF7FFFFFu  /**< \brief (CAN_RXF1C) MASK Register */
1392
1393 /* -------- CAN_RXF1S : (CAN Offset: 0xB4) (R/  32) Rx FIFO 1 Status -------- */
1394 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
1395 typedef union {
1396   struct {
1397     uint32_t F1FL:7;           /*!< bit:  0.. 6  Rx FIFO 1 Fill Level               */
1398     uint32_t :1;               /*!< bit:      7  Reserved                           */
1399     uint32_t F1GI:6;           /*!< bit:  8..13  Rx FIFO 1 Get Index                */
1400     uint32_t :2;               /*!< bit: 14..15  Reserved                           */
1401     uint32_t F1PI:6;           /*!< bit: 16..21  Rx FIFO 1 Put Index                */
1402     uint32_t :2;               /*!< bit: 22..23  Reserved                           */
1403     uint32_t F1F:1;            /*!< bit:     24  Rx FIFO 1 Full                     */
1404     uint32_t RF1L:1;           /*!< bit:     25  Rx FIFO 1 Message Lost             */
1405     uint32_t :4;               /*!< bit: 26..29  Reserved                           */
1406     uint32_t DMS:2;            /*!< bit: 30..31  Debug Message Status               */
1407   } bit;                       /*!< Structure used for bit  access                  */
1408   uint32_t reg;                /*!< Type      used for register access              */
1409 } CAN_RXF1S_Type;
1410 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
1411
1412 #define CAN_RXF1S_OFFSET            0xB4         /**< \brief (CAN_RXF1S offset) Rx FIFO 1 Status */
1413 #define CAN_RXF1S_RESETVALUE        0x00000000u  /**< \brief (CAN_RXF1S reset_value) Rx FIFO 1 Status */
1414
1415 #define CAN_RXF1S_F1FL_Pos          0            /**< \brief (CAN_RXF1S) Rx FIFO 1 Fill Level */
1416 #define CAN_RXF1S_F1FL_Msk          (0x7Fu << CAN_RXF1S_F1FL_Pos)
1417 #define CAN_RXF1S_F1FL(value)       (CAN_RXF1S_F1FL_Msk & ((value) << CAN_RXF1S_F1FL_Pos))
1418 #define CAN_RXF1S_F1GI_Pos          8            /**< \brief (CAN_RXF1S) Rx FIFO 1 Get Index */
1419 #define CAN_RXF1S_F1GI_Msk          (0x3Fu << CAN_RXF1S_F1GI_Pos)
1420 #define CAN_RXF1S_F1GI(value)       (CAN_RXF1S_F1GI_Msk & ((value) << CAN_RXF1S_F1GI_Pos))
1421 #define CAN_RXF1S_F1PI_Pos          16           /**< \brief (CAN_RXF1S) Rx FIFO 1 Put Index */
1422 #define CAN_RXF1S_F1PI_Msk          (0x3Fu << CAN_RXF1S_F1PI_Pos)
1423 #define CAN_RXF1S_F1PI(value)       (CAN_RXF1S_F1PI_Msk & ((value) << CAN_RXF1S_F1PI_Pos))
1424 #define CAN_RXF1S_F1F_Pos           24           /**< \brief (CAN_RXF1S) Rx FIFO 1 Full */
1425 #define CAN_RXF1S_F1F               (0x1u << CAN_RXF1S_F1F_Pos)
1426 #define CAN_RXF1S_RF1L_Pos          25           /**< \brief (CAN_RXF1S) Rx FIFO 1 Message Lost */
1427 #define CAN_RXF1S_RF1L              (0x1u << CAN_RXF1S_RF1L_Pos)
1428 #define CAN_RXF1S_DMS_Pos           30           /**< \brief (CAN_RXF1S) Debug Message Status */
1429 #define CAN_RXF1S_DMS_Msk           (0x3u << CAN_RXF1S_DMS_Pos)
1430 #define CAN_RXF1S_DMS(value)        (CAN_RXF1S_DMS_Msk & ((value) << CAN_RXF1S_DMS_Pos))
1431 #define   CAN_RXF1S_DMS_IDLE_Val          0x0u   /**< \brief (CAN_RXF1S) Idle state */
1432 #define   CAN_RXF1S_DMS_DBGA_Val          0x1u   /**< \brief (CAN_RXF1S) Debug message A received */
1433 #define   CAN_RXF1S_DMS_DBGB_Val          0x2u   /**< \brief (CAN_RXF1S) Debug message A/B received */
1434 #define   CAN_RXF1S_DMS_DBGC_Val          0x3u   /**< \brief (CAN_RXF1S) Debug message A/B/C received, DMA request set */
1435 #define CAN_RXF1S_DMS_IDLE          (CAN_RXF1S_DMS_IDLE_Val        << CAN_RXF1S_DMS_Pos)
1436 #define CAN_RXF1S_DMS_DBGA          (CAN_RXF1S_DMS_DBGA_Val        << CAN_RXF1S_DMS_Pos)
1437 #define CAN_RXF1S_DMS_DBGB          (CAN_RXF1S_DMS_DBGB_Val        << CAN_RXF1S_DMS_Pos)
1438 #define CAN_RXF1S_DMS_DBGC          (CAN_RXF1S_DMS_DBGC_Val        << CAN_RXF1S_DMS_Pos)
1439 #define CAN_RXF1S_MASK              0xC33F3F7Fu  /**< \brief (CAN_RXF1S) MASK Register */
1440
1441 /* -------- CAN_RXF1A : (CAN Offset: 0xB8) (R/W 32) Rx FIFO 1 Acknowledge -------- */
1442 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
1443 typedef union {
1444   struct {
1445     uint32_t F1AI:6;           /*!< bit:  0.. 5  Rx FIFO 1 Acknowledge Index        */
1446     uint32_t :26;              /*!< bit:  6..31  Reserved                           */
1447   } bit;                       /*!< Structure used for bit  access                  */
1448   uint32_t reg;                /*!< Type      used for register access              */
1449 } CAN_RXF1A_Type;
1450 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
1451
1452 #define CAN_RXF1A_OFFSET            0xB8         /**< \brief (CAN_RXF1A offset) Rx FIFO 1 Acknowledge */
1453 #define CAN_RXF1A_RESETVALUE        0x00000000u  /**< \brief (CAN_RXF1A reset_value) Rx FIFO 1 Acknowledge */
1454
1455 #define CAN_RXF1A_F1AI_Pos          0            /**< \brief (CAN_RXF1A) Rx FIFO 1 Acknowledge Index */
1456 #define CAN_RXF1A_F1AI_Msk          (0x3Fu << CAN_RXF1A_F1AI_Pos)
1457 #define CAN_RXF1A_F1AI(value)       (CAN_RXF1A_F1AI_Msk & ((value) << CAN_RXF1A_F1AI_Pos))
1458 #define CAN_RXF1A_MASK              0x0000003Fu  /**< \brief (CAN_RXF1A) MASK Register */
1459
1460 /* -------- CAN_RXESC : (CAN Offset: 0xBC) (R/W 32) Rx Buffer / FIFO Element Size Configuration -------- */
1461 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
1462 typedef union {
1463   struct {
1464     uint32_t F0DS:3;           /*!< bit:  0.. 2  Rx FIFO 0 Data Field Size          */
1465     uint32_t :1;               /*!< bit:      3  Reserved                           */
1466     uint32_t F1DS:3;           /*!< bit:  4.. 6  Rx FIFO 1 Data Field Size          */
1467     uint32_t :1;               /*!< bit:      7  Reserved                           */
1468     uint32_t RBDS:3;           /*!< bit:  8..10  Rx Buffer Data Field Size          */
1469     uint32_t :21;              /*!< bit: 11..31  Reserved                           */
1470   } bit;                       /*!< Structure used for bit  access                  */
1471   uint32_t reg;                /*!< Type      used for register access              */
1472 } CAN_RXESC_Type;
1473 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
1474
1475 #define CAN_RXESC_OFFSET            0xBC         /**< \brief (CAN_RXESC offset) Rx Buffer / FIFO Element Size Configuration */
1476 #define CAN_RXESC_RESETVALUE        0x00000000u  /**< \brief (CAN_RXESC reset_value) Rx Buffer / FIFO Element Size Configuration */
1477
1478 #define CAN_RXESC_F0DS_Pos          0            /**< \brief (CAN_RXESC) Rx FIFO 0 Data Field Size */
1479 #define CAN_RXESC_F0DS_Msk          (0x7u << CAN_RXESC_F0DS_Pos)
1480 #define CAN_RXESC_F0DS(value)       (CAN_RXESC_F0DS_Msk & ((value) << CAN_RXESC_F0DS_Pos))
1481 #define   CAN_RXESC_F0DS_DATA8_Val        0x0u   /**< \brief (CAN_RXESC) 8 byte data field */
1482 #define   CAN_RXESC_F0DS_DATA12_Val       0x1u   /**< \brief (CAN_RXESC) 12 byte data field */
1483 #define   CAN_RXESC_F0DS_DATA16_Val       0x2u   /**< \brief (CAN_RXESC) 16 byte data field */
1484 #define   CAN_RXESC_F0DS_DATA20_Val       0x3u   /**< \brief (CAN_RXESC) 20 byte data field */
1485 #define   CAN_RXESC_F0DS_DATA24_Val       0x4u   /**< \brief (CAN_RXESC) 24 byte data field */
1486 #define   CAN_RXESC_F0DS_DATA32_Val       0x5u   /**< \brief (CAN_RXESC) 32 byte data field */
1487 #define   CAN_RXESC_F0DS_DATA48_Val       0x6u   /**< \brief (CAN_RXESC) 48 byte data field */
1488 #define   CAN_RXESC_F0DS_DATA64_Val       0x7u   /**< \brief (CAN_RXESC) 64 byte data field */
1489 #define CAN_RXESC_F0DS_DATA8        (CAN_RXESC_F0DS_DATA8_Val      << CAN_RXESC_F0DS_Pos)
1490 #define CAN_RXESC_F0DS_DATA12       (CAN_RXESC_F0DS_DATA12_Val     << CAN_RXESC_F0DS_Pos)
1491 #define CAN_RXESC_F0DS_DATA16       (CAN_RXESC_F0DS_DATA16_Val     << CAN_RXESC_F0DS_Pos)
1492 #define CAN_RXESC_F0DS_DATA20       (CAN_RXESC_F0DS_DATA20_Val     << CAN_RXESC_F0DS_Pos)
1493 #define CAN_RXESC_F0DS_DATA24       (CAN_RXESC_F0DS_DATA24_Val     << CAN_RXESC_F0DS_Pos)
1494 #define CAN_RXESC_F0DS_DATA32       (CAN_RXESC_F0DS_DATA32_Val     << CAN_RXESC_F0DS_Pos)
1495 #define CAN_RXESC_F0DS_DATA48       (CAN_RXESC_F0DS_DATA48_Val     << CAN_RXESC_F0DS_Pos)
1496 #define CAN_RXESC_F0DS_DATA64       (CAN_RXESC_F0DS_DATA64_Val     << CAN_RXESC_F0DS_Pos)
1497 #define CAN_RXESC_F1DS_Pos          4            /**< \brief (CAN_RXESC) Rx FIFO 1 Data Field Size */
1498 #define CAN_RXESC_F1DS_Msk          (0x7u << CAN_RXESC_F1DS_Pos)
1499 #define CAN_RXESC_F1DS(value)       (CAN_RXESC_F1DS_Msk & ((value) << CAN_RXESC_F1DS_Pos))
1500 #define   CAN_RXESC_F1DS_DATA8_Val        0x0u   /**< \brief (CAN_RXESC) 8 byte data field */
1501 #define   CAN_RXESC_F1DS_DATA12_Val       0x1u   /**< \brief (CAN_RXESC) 12 byte data field */
1502 #define   CAN_RXESC_F1DS_DATA16_Val       0x2u   /**< \brief (CAN_RXESC) 16 byte data field */
1503 #define   CAN_RXESC_F1DS_DATA20_Val       0x3u   /**< \brief (CAN_RXESC) 20 byte data field */
1504 #define   CAN_RXESC_F1DS_DATA24_Val       0x4u   /**< \brief (CAN_RXESC) 24 byte data field */
1505 #define   CAN_RXESC_F1DS_DATA32_Val       0x5u   /**< \brief (CAN_RXESC) 32 byte data field */
1506 #define   CAN_RXESC_F1DS_DATA48_Val       0x6u   /**< \brief (CAN_RXESC) 48 byte data field */
1507 #define   CAN_RXESC_F1DS_DATA64_Val       0x7u   /**< \brief (CAN_RXESC) 64 byte data field */
1508 #define CAN_RXESC_F1DS_DATA8        (CAN_RXESC_F1DS_DATA8_Val      << CAN_RXESC_F1DS_Pos)
1509 #define CAN_RXESC_F1DS_DATA12       (CAN_RXESC_F1DS_DATA12_Val     << CAN_RXESC_F1DS_Pos)
1510 #define CAN_RXESC_F1DS_DATA16       (CAN_RXESC_F1DS_DATA16_Val     << CAN_RXESC_F1DS_Pos)
1511 #define CAN_RXESC_F1DS_DATA20       (CAN_RXESC_F1DS_DATA20_Val     << CAN_RXESC_F1DS_Pos)
1512 #define CAN_RXESC_F1DS_DATA24       (CAN_RXESC_F1DS_DATA24_Val     << CAN_RXESC_F1DS_Pos)
1513 #define CAN_RXESC_F1DS_DATA32       (CAN_RXESC_F1DS_DATA32_Val     << CAN_RXESC_F1DS_Pos)
1514 #define CAN_RXESC_F1DS_DATA48       (CAN_RXESC_F1DS_DATA48_Val     << CAN_RXESC_F1DS_Pos)
1515 #define CAN_RXESC_F1DS_DATA64       (CAN_RXESC_F1DS_DATA64_Val     << CAN_RXESC_F1DS_Pos)
1516 #define CAN_RXESC_RBDS_Pos          8            /**< \brief (CAN_RXESC) Rx Buffer Data Field Size */
1517 #define CAN_RXESC_RBDS_Msk          (0x7u << CAN_RXESC_RBDS_Pos)
1518 #define CAN_RXESC_RBDS(value)       (CAN_RXESC_RBDS_Msk & ((value) << CAN_RXESC_RBDS_Pos))
1519 #define   CAN_RXESC_RBDS_DATA8_Val        0x0u   /**< \brief (CAN_RXESC) 8 byte data field */
1520 #define   CAN_RXESC_RBDS_DATA12_Val       0x1u   /**< \brief (CAN_RXESC) 12 byte data field */
1521 #define   CAN_RXESC_RBDS_DATA16_Val       0x2u   /**< \brief (CAN_RXESC) 16 byte data field */
1522 #define   CAN_RXESC_RBDS_DATA20_Val       0x3u   /**< \brief (CAN_RXESC) 20 byte data field */
1523 #define   CAN_RXESC_RBDS_DATA24_Val       0x4u   /**< \brief (CAN_RXESC) 24 byte data field */
1524 #define   CAN_RXESC_RBDS_DATA32_Val       0x5u   /**< \brief (CAN_RXESC) 32 byte data field */
1525 #define   CAN_RXESC_RBDS_DATA48_Val       0x6u   /**< \brief (CAN_RXESC) 48 byte data field */
1526 #define   CAN_RXESC_RBDS_DATA64_Val       0x7u   /**< \brief (CAN_RXESC) 64 byte data field */
1527 #define CAN_RXESC_RBDS_DATA8        (CAN_RXESC_RBDS_DATA8_Val      << CAN_RXESC_RBDS_Pos)
1528 #define CAN_RXESC_RBDS_DATA12       (CAN_RXESC_RBDS_DATA12_Val     << CAN_RXESC_RBDS_Pos)
1529 #define CAN_RXESC_RBDS_DATA16       (CAN_RXESC_RBDS_DATA16_Val     << CAN_RXESC_RBDS_Pos)
1530 #define CAN_RXESC_RBDS_DATA20       (CAN_RXESC_RBDS_DATA20_Val     << CAN_RXESC_RBDS_Pos)
1531 #define CAN_RXESC_RBDS_DATA24       (CAN_RXESC_RBDS_DATA24_Val     << CAN_RXESC_RBDS_Pos)
1532 #define CAN_RXESC_RBDS_DATA32       (CAN_RXESC_RBDS_DATA32_Val     << CAN_RXESC_RBDS_Pos)
1533 #define CAN_RXESC_RBDS_DATA48       (CAN_RXESC_RBDS_DATA48_Val     << CAN_RXESC_RBDS_Pos)
1534 #define CAN_RXESC_RBDS_DATA64       (CAN_RXESC_RBDS_DATA64_Val     << CAN_RXESC_RBDS_Pos)
1535 #define CAN_RXESC_MASK              0x00000777u  /**< \brief (CAN_RXESC) MASK Register */
1536
1537 /* -------- CAN_TXBC : (CAN Offset: 0xC0) (R/W 32) Tx Buffer Configuration -------- */
1538 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
1539 typedef union {
1540   struct {
1541     uint32_t TBSA:16;          /*!< bit:  0..15  Tx Buffers Start Address           */
1542     uint32_t NDTB:6;           /*!< bit: 16..21  Number of Dedicated Transmit Buffers */
1543     uint32_t :2;               /*!< bit: 22..23  Reserved                           */
1544     uint32_t TFQS:6;           /*!< bit: 24..29  Transmit FIFO/Queue Size           */
1545     uint32_t TFQM:1;           /*!< bit:     30  Tx FIFO/Queue Mode                 */
1546     uint32_t :1;               /*!< bit:     31  Reserved                           */
1547   } bit;                       /*!< Structure used for bit  access                  */
1548   uint32_t reg;                /*!< Type      used for register access              */
1549 } CAN_TXBC_Type;
1550 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
1551
1552 #define CAN_TXBC_OFFSET             0xC0         /**< \brief (CAN_TXBC offset) Tx Buffer Configuration */
1553 #define CAN_TXBC_RESETVALUE         0x00000000u  /**< \brief (CAN_TXBC reset_value) Tx Buffer Configuration */
1554
1555 #define CAN_TXBC_TBSA_Pos           0            /**< \brief (CAN_TXBC) Tx Buffers Start Address */
1556 #define CAN_TXBC_TBSA_Msk           (0xFFFFu << CAN_TXBC_TBSA_Pos)
1557 #define CAN_TXBC_TBSA(value)        (CAN_TXBC_TBSA_Msk & ((value) << CAN_TXBC_TBSA_Pos))
1558 #define CAN_TXBC_NDTB_Pos           16           /**< \brief (CAN_TXBC) Number of Dedicated Transmit Buffers */
1559 #define CAN_TXBC_NDTB_Msk           (0x3Fu << CAN_TXBC_NDTB_Pos)
1560 #define CAN_TXBC_NDTB(value)        (CAN_TXBC_NDTB_Msk & ((value) << CAN_TXBC_NDTB_Pos))
1561 #define CAN_TXBC_TFQS_Pos           24           /**< \brief (CAN_TXBC) Transmit FIFO/Queue Size */
1562 #define CAN_TXBC_TFQS_Msk           (0x3Fu << CAN_TXBC_TFQS_Pos)
1563 #define CAN_TXBC_TFQS(value)        (CAN_TXBC_TFQS_Msk & ((value) << CAN_TXBC_TFQS_Pos))
1564 #define CAN_TXBC_TFQM_Pos           30           /**< \brief (CAN_TXBC) Tx FIFO/Queue Mode */
1565 #define CAN_TXBC_TFQM               (0x1u << CAN_TXBC_TFQM_Pos)
1566 #define CAN_TXBC_MASK               0x7F3FFFFFu  /**< \brief (CAN_TXBC) MASK Register */
1567
1568 /* -------- CAN_TXFQS : (CAN Offset: 0xC4) (R/  32) Tx FIFO / Queue Status -------- */
1569 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
1570 typedef union {
1571   struct {
1572     uint32_t TFFL:6;           /*!< bit:  0.. 5  Tx FIFO Free Level                 */
1573     uint32_t :2;               /*!< bit:  6.. 7  Reserved                           */
1574     uint32_t TFGI:5;           /*!< bit:  8..12  Tx FIFO Get Index                  */
1575     uint32_t :3;               /*!< bit: 13..15  Reserved                           */
1576     uint32_t TFQPI:5;          /*!< bit: 16..20  Tx FIFO/Queue Put Index            */
1577     uint32_t TFQF:1;           /*!< bit:     21  Tx FIFO/Queue Full                 */
1578     uint32_t :10;              /*!< bit: 22..31  Reserved                           */
1579   } bit;                       /*!< Structure used for bit  access                  */
1580   uint32_t reg;                /*!< Type      used for register access              */
1581 } CAN_TXFQS_Type;
1582 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
1583
1584 #define CAN_TXFQS_OFFSET            0xC4         /**< \brief (CAN_TXFQS offset) Tx FIFO / Queue Status */
1585 #define CAN_TXFQS_RESETVALUE        0x00000000u  /**< \brief (CAN_TXFQS reset_value) Tx FIFO / Queue Status */
1586
1587 #define CAN_TXFQS_TFFL_Pos          0            /**< \brief (CAN_TXFQS) Tx FIFO Free Level */
1588 #define CAN_TXFQS_TFFL_Msk          (0x3Fu << CAN_TXFQS_TFFL_Pos)
1589 #define CAN_TXFQS_TFFL(value)       (CAN_TXFQS_TFFL_Msk & ((value) << CAN_TXFQS_TFFL_Pos))
1590 #define CAN_TXFQS_TFGI_Pos          8            /**< \brief (CAN_TXFQS) Tx FIFO Get Index */
1591 #define CAN_TXFQS_TFGI_Msk          (0x1Fu << CAN_TXFQS_TFGI_Pos)
1592 #define CAN_TXFQS_TFGI(value)       (CAN_TXFQS_TFGI_Msk & ((value) << CAN_TXFQS_TFGI_Pos))
1593 #define CAN_TXFQS_TFQPI_Pos         16           /**< \brief (CAN_TXFQS) Tx FIFO/Queue Put Index */
1594 #define CAN_TXFQS_TFQPI_Msk         (0x1Fu << CAN_TXFQS_TFQPI_Pos)
1595 #define CAN_TXFQS_TFQPI(value)      (CAN_TXFQS_TFQPI_Msk & ((value) << CAN_TXFQS_TFQPI_Pos))
1596 #define CAN_TXFQS_TFQF_Pos          21           /**< \brief (CAN_TXFQS) Tx FIFO/Queue Full */
1597 #define CAN_TXFQS_TFQF              (0x1u << CAN_TXFQS_TFQF_Pos)
1598 #define CAN_TXFQS_MASK              0x003F1F3Fu  /**< \brief (CAN_TXFQS) MASK Register */
1599
1600 /* -------- CAN_TXESC : (CAN Offset: 0xC8) (R/W 32) Tx Buffer Element Size Configuration -------- */
1601 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
1602 typedef union {
1603   struct {
1604     uint32_t TBDS:3;           /*!< bit:  0.. 2  Tx Buffer Data Field Size          */
1605     uint32_t :29;              /*!< bit:  3..31  Reserved                           */
1606   } bit;                       /*!< Structure used for bit  access                  */
1607   uint32_t reg;                /*!< Type      used for register access              */
1608 } CAN_TXESC_Type;
1609 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
1610
1611 #define CAN_TXESC_OFFSET            0xC8         /**< \brief (CAN_TXESC offset) Tx Buffer Element Size Configuration */
1612 #define CAN_TXESC_RESETVALUE        0x00000000u  /**< \brief (CAN_TXESC reset_value) Tx Buffer Element Size Configuration */
1613
1614 #define CAN_TXESC_TBDS_Pos          0            /**< \brief (CAN_TXESC) Tx Buffer Data Field Size */
1615 #define CAN_TXESC_TBDS_Msk          (0x7u << CAN_TXESC_TBDS_Pos)
1616 #define CAN_TXESC_TBDS(value)       (CAN_TXESC_TBDS_Msk & ((value) << CAN_TXESC_TBDS_Pos))
1617 #define   CAN_TXESC_TBDS_DATA8_Val        0x0u   /**< \brief (CAN_TXESC) 8 byte data field */
1618 #define   CAN_TXESC_TBDS_DATA12_Val       0x1u   /**< \brief (CAN_TXESC) 12 byte data field */
1619 #define   CAN_TXESC_TBDS_DATA16_Val       0x2u   /**< \brief (CAN_TXESC) 16 byte data field */
1620 #define   CAN_TXESC_TBDS_DATA20_Val       0x3u   /**< \brief (CAN_TXESC) 20 byte data field */
1621 #define   CAN_TXESC_TBDS_DATA24_Val       0x4u   /**< \brief (CAN_TXESC) 24 byte data field */
1622 #define   CAN_TXESC_TBDS_DATA32_Val       0x5u   /**< \brief (CAN_TXESC) 32 byte data field */
1623 #define   CAN_TXESC_TBDS_DATA48_Val       0x6u   /**< \brief (CAN_TXESC) 48 byte data field */
1624 #define   CAN_TXESC_TBDS_DATA64_Val       0x7u   /**< \brief (CAN_TXESC) 64 byte data field */
1625 #define CAN_TXESC_TBDS_DATA8        (CAN_TXESC_TBDS_DATA8_Val      << CAN_TXESC_TBDS_Pos)
1626 #define CAN_TXESC_TBDS_DATA12       (CAN_TXESC_TBDS_DATA12_Val     << CAN_TXESC_TBDS_Pos)
1627 #define CAN_TXESC_TBDS_DATA16       (CAN_TXESC_TBDS_DATA16_Val     << CAN_TXESC_TBDS_Pos)
1628 #define CAN_TXESC_TBDS_DATA20       (CAN_TXESC_TBDS_DATA20_Val     << CAN_TXESC_TBDS_Pos)
1629 #define CAN_TXESC_TBDS_DATA24       (CAN_TXESC_TBDS_DATA24_Val     << CAN_TXESC_TBDS_Pos)
1630 #define CAN_TXESC_TBDS_DATA32       (CAN_TXESC_TBDS_DATA32_Val     << CAN_TXESC_TBDS_Pos)
1631 #define CAN_TXESC_TBDS_DATA48       (CAN_TXESC_TBDS_DATA48_Val     << CAN_TXESC_TBDS_Pos)
1632 #define CAN_TXESC_TBDS_DATA64       (CAN_TXESC_TBDS_DATA64_Val     << CAN_TXESC_TBDS_Pos)
1633 #define CAN_TXESC_MASK              0x00000007u  /**< \brief (CAN_TXESC) MASK Register */
1634
1635 /* -------- CAN_TXBRP : (CAN Offset: 0xCC) (R/  32) Tx Buffer Request Pending -------- */
1636 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
1637 typedef union {
1638   struct {
1639     uint32_t TRP0:1;           /*!< bit:      0  Transmission Request Pending 0     */
1640     uint32_t TRP1:1;           /*!< bit:      1  Transmission Request Pending 1     */
1641     uint32_t TRP2:1;           /*!< bit:      2  Transmission Request Pending 2     */
1642     uint32_t TRP3:1;           /*!< bit:      3  Transmission Request Pending 3     */
1643     uint32_t TRP4:1;           /*!< bit:      4  Transmission Request Pending 4     */
1644     uint32_t TRP5:1;           /*!< bit:      5  Transmission Request Pending 5     */
1645     uint32_t TRP6:1;           /*!< bit:      6  Transmission Request Pending 6     */
1646     uint32_t TRP7:1;           /*!< bit:      7  Transmission Request Pending 7     */
1647     uint32_t TRP8:1;           /*!< bit:      8  Transmission Request Pending 8     */
1648     uint32_t TRP9:1;           /*!< bit:      9  Transmission Request Pending 9     */
1649     uint32_t TRP10:1;          /*!< bit:     10  Transmission Request Pending 10    */
1650     uint32_t TRP11:1;          /*!< bit:     11  Transmission Request Pending 11    */
1651     uint32_t TRP12:1;          /*!< bit:     12  Transmission Request Pending 12    */
1652     uint32_t TRP13:1;          /*!< bit:     13  Transmission Request Pending 13    */
1653     uint32_t TRP14:1;          /*!< bit:     14  Transmission Request Pending 14    */
1654     uint32_t TRP15:1;          /*!< bit:     15  Transmission Request Pending 15    */
1655     uint32_t TRP16:1;          /*!< bit:     16  Transmission Request Pending 16    */
1656     uint32_t TRP17:1;          /*!< bit:     17  Transmission Request Pending 17    */
1657     uint32_t TRP18:1;          /*!< bit:     18  Transmission Request Pending 18    */
1658     uint32_t TRP19:1;          /*!< bit:     19  Transmission Request Pending 19    */
1659     uint32_t TRP20:1;          /*!< bit:     20  Transmission Request Pending 20    */
1660     uint32_t TRP21:1;          /*!< bit:     21  Transmission Request Pending 21    */
1661     uint32_t TRP22:1;          /*!< bit:     22  Transmission Request Pending 22    */
1662     uint32_t TRP23:1;          /*!< bit:     23  Transmission Request Pending 23    */
1663     uint32_t TRP24:1;          /*!< bit:     24  Transmission Request Pending 24    */
1664     uint32_t TRP25:1;          /*!< bit:     25  Transmission Request Pending 25    */
1665     uint32_t TRP26:1;          /*!< bit:     26  Transmission Request Pending 26    */
1666     uint32_t TRP27:1;          /*!< bit:     27  Transmission Request Pending 27    */
1667     uint32_t TRP28:1;          /*!< bit:     28  Transmission Request Pending 28    */
1668     uint32_t TRP29:1;          /*!< bit:     29  Transmission Request Pending 29    */
1669     uint32_t TRP30:1;          /*!< bit:     30  Transmission Request Pending 30    */
1670     uint32_t TRP31:1;          /*!< bit:     31  Transmission Request Pending 31    */
1671   } bit;                       /*!< Structure used for bit  access                  */
1672   uint32_t reg;                /*!< Type      used for register access              */
1673 } CAN_TXBRP_Type;
1674 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
1675
1676 #define CAN_TXBRP_OFFSET            0xCC         /**< \brief (CAN_TXBRP offset) Tx Buffer Request Pending */
1677 #define CAN_TXBRP_RESETVALUE        0x00000000u  /**< \brief (CAN_TXBRP reset_value) Tx Buffer Request Pending */
1678
1679 #define CAN_TXBRP_TRP0_Pos          0            /**< \brief (CAN_TXBRP) Transmission Request Pending 0 */
1680 #define CAN_TXBRP_TRP0              (0x1u << CAN_TXBRP_TRP0_Pos)
1681 #define CAN_TXBRP_TRP1_Pos          1            /**< \brief (CAN_TXBRP) Transmission Request Pending 1 */
1682 #define CAN_TXBRP_TRP1              (0x1u << CAN_TXBRP_TRP1_Pos)
1683 #define CAN_TXBRP_TRP2_Pos          2            /**< \brief (CAN_TXBRP) Transmission Request Pending 2 */
1684 #define CAN_TXBRP_TRP2              (0x1u << CAN_TXBRP_TRP2_Pos)
1685 #define CAN_TXBRP_TRP3_Pos          3            /**< \brief (CAN_TXBRP) Transmission Request Pending 3 */
1686 #define CAN_TXBRP_TRP3              (0x1u << CAN_TXBRP_TRP3_Pos)
1687 #define CAN_TXBRP_TRP4_Pos          4            /**< \brief (CAN_TXBRP) Transmission Request Pending 4 */
1688 #define CAN_TXBRP_TRP4              (0x1u << CAN_TXBRP_TRP4_Pos)
1689 #define CAN_TXBRP_TRP5_Pos          5            /**< \brief (CAN_TXBRP) Transmission Request Pending 5 */
1690 #define CAN_TXBRP_TRP5              (0x1u << CAN_TXBRP_TRP5_Pos)
1691 #define CAN_TXBRP_TRP6_Pos          6            /**< \brief (CAN_TXBRP) Transmission Request Pending 6 */
1692 #define CAN_TXBRP_TRP6              (0x1u << CAN_TXBRP_TRP6_Pos)
1693 #define CAN_TXBRP_TRP7_Pos          7            /**< \brief (CAN_TXBRP) Transmission Request Pending 7 */
1694 #define CAN_TXBRP_TRP7              (0x1u << CAN_TXBRP_TRP7_Pos)
1695 #define CAN_TXBRP_TRP8_Pos          8            /**< \brief (CAN_TXBRP) Transmission Request Pending 8 */
1696 #define CAN_TXBRP_TRP8              (0x1u << CAN_TXBRP_TRP8_Pos)
1697 #define CAN_TXBRP_TRP9_Pos          9            /**< \brief (CAN_TXBRP) Transmission Request Pending 9 */
1698 #define CAN_TXBRP_TRP9              (0x1u << CAN_TXBRP_TRP9_Pos)
1699 #define CAN_TXBRP_TRP10_Pos         10           /**< \brief (CAN_TXBRP) Transmission Request Pending 10 */
1700 #define CAN_TXBRP_TRP10             (0x1u << CAN_TXBRP_TRP10_Pos)
1701 #define CAN_TXBRP_TRP11_Pos         11           /**< \brief (CAN_TXBRP) Transmission Request Pending 11 */
1702 #define CAN_TXBRP_TRP11             (0x1u << CAN_TXBRP_TRP11_Pos)
1703 #define CAN_TXBRP_TRP12_Pos         12           /**< \brief (CAN_TXBRP) Transmission Request Pending 12 */
1704 #define CAN_TXBRP_TRP12             (0x1u << CAN_TXBRP_TRP12_Pos)
1705 #define CAN_TXBRP_TRP13_Pos         13           /**< \brief (CAN_TXBRP) Transmission Request Pending 13 */
1706 #define CAN_TXBRP_TRP13             (0x1u << CAN_TXBRP_TRP13_Pos)
1707 #define CAN_TXBRP_TRP14_Pos         14           /**< \brief (CAN_TXBRP) Transmission Request Pending 14 */
1708 #define CAN_TXBRP_TRP14             (0x1u << CAN_TXBRP_TRP14_Pos)
1709 #define CAN_TXBRP_TRP15_Pos         15           /**< \brief (CAN_TXBRP) Transmission Request Pending 15 */
1710 #define CAN_TXBRP_TRP15             (0x1u << CAN_TXBRP_TRP15_Pos)
1711 #define CAN_TXBRP_TRP16_Pos         16           /**< \brief (CAN_TXBRP) Transmission Request Pending 16 */
1712 #define CAN_TXBRP_TRP16             (0x1u << CAN_TXBRP_TRP16_Pos)
1713 #define CAN_TXBRP_TRP17_Pos         17           /**< \brief (CAN_TXBRP) Transmission Request Pending 17 */
1714 #define CAN_TXBRP_TRP17             (0x1u << CAN_TXBRP_TRP17_Pos)
1715 #define CAN_TXBRP_TRP18_Pos         18           /**< \brief (CAN_TXBRP) Transmission Request Pending 18 */
1716 #define CAN_TXBRP_TRP18             (0x1u << CAN_TXBRP_TRP18_Pos)
1717 #define CAN_TXBRP_TRP19_Pos         19           /**< \brief (CAN_TXBRP) Transmission Request Pending 19 */
1718 #define CAN_TXBRP_TRP19             (0x1u << CAN_TXBRP_TRP19_Pos)
1719 #define CAN_TXBRP_TRP20_Pos         20           /**< \brief (CAN_TXBRP) Transmission Request Pending 20 */
1720 #define CAN_TXBRP_TRP20             (0x1u << CAN_TXBRP_TRP20_Pos)
1721 #define CAN_TXBRP_TRP21_Pos         21           /**< \brief (CAN_TXBRP) Transmission Request Pending 21 */
1722 #define CAN_TXBRP_TRP21             (0x1u << CAN_TXBRP_TRP21_Pos)
1723 #define CAN_TXBRP_TRP22_Pos         22           /**< \brief (CAN_TXBRP) Transmission Request Pending 22 */
1724 #define CAN_TXBRP_TRP22             (0x1u << CAN_TXBRP_TRP22_Pos)
1725 #define CAN_TXBRP_TRP23_Pos         23           /**< \brief (CAN_TXBRP) Transmission Request Pending 23 */
1726 #define CAN_TXBRP_TRP23             (0x1u << CAN_TXBRP_TRP23_Pos)
1727 #define CAN_TXBRP_TRP24_Pos         24           /**< \brief (CAN_TXBRP) Transmission Request Pending 24 */
1728 #define CAN_TXBRP_TRP24             (0x1u << CAN_TXBRP_TRP24_Pos)
1729 #define CAN_TXBRP_TRP25_Pos         25           /**< \brief (CAN_TXBRP) Transmission Request Pending 25 */
1730 #define CAN_TXBRP_TRP25             (0x1u << CAN_TXBRP_TRP25_Pos)
1731 #define CAN_TXBRP_TRP26_Pos         26           /**< \brief (CAN_TXBRP) Transmission Request Pending 26 */
1732 #define CAN_TXBRP_TRP26             (0x1u << CAN_TXBRP_TRP26_Pos)
1733 #define CAN_TXBRP_TRP27_Pos         27           /**< \brief (CAN_TXBRP) Transmission Request Pending 27 */
1734 #define CAN_TXBRP_TRP27             (0x1u << CAN_TXBRP_TRP27_Pos)
1735 #define CAN_TXBRP_TRP28_Pos         28           /**< \brief (CAN_TXBRP) Transmission Request Pending 28 */
1736 #define CAN_TXBRP_TRP28             (0x1u << CAN_TXBRP_TRP28_Pos)
1737 #define CAN_TXBRP_TRP29_Pos         29           /**< \brief (CAN_TXBRP) Transmission Request Pending 29 */
1738 #define CAN_TXBRP_TRP29             (0x1u << CAN_TXBRP_TRP29_Pos)
1739 #define CAN_TXBRP_TRP30_Pos         30           /**< \brief (CAN_TXBRP) Transmission Request Pending 30 */
1740 #define CAN_TXBRP_TRP30             (0x1u << CAN_TXBRP_TRP30_Pos)
1741 #define CAN_TXBRP_TRP31_Pos         31           /**< \brief (CAN_TXBRP) Transmission Request Pending 31 */
1742 #define CAN_TXBRP_TRP31             (0x1u << CAN_TXBRP_TRP31_Pos)
1743 #define CAN_TXBRP_MASK              0xFFFFFFFFu  /**< \brief (CAN_TXBRP) MASK Register */
1744
1745 /* -------- CAN_TXBAR : (CAN Offset: 0xD0) (R/W 32) Tx Buffer Add Request -------- */
1746 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
1747 typedef union {
1748   struct {
1749     uint32_t AR0:1;            /*!< bit:      0  Add Request 0                      */
1750     uint32_t AR1:1;            /*!< bit:      1  Add Request 1                      */
1751     uint32_t AR2:1;            /*!< bit:      2  Add Request 2                      */
1752     uint32_t AR3:1;            /*!< bit:      3  Add Request 3                      */
1753     uint32_t AR4:1;            /*!< bit:      4  Add Request 4                      */
1754     uint32_t AR5:1;            /*!< bit:      5  Add Request 5                      */
1755     uint32_t AR6:1;            /*!< bit:      6  Add Request 6                      */
1756     uint32_t AR7:1;            /*!< bit:      7  Add Request 7                      */
1757     uint32_t AR8:1;            /*!< bit:      8  Add Request 8                      */
1758     uint32_t AR9:1;            /*!< bit:      9  Add Request 9                      */
1759     uint32_t AR10:1;           /*!< bit:     10  Add Request 10                     */
1760     uint32_t AR11:1;           /*!< bit:     11  Add Request 11                     */
1761     uint32_t AR12:1;           /*!< bit:     12  Add Request 12                     */
1762     uint32_t AR13:1;           /*!< bit:     13  Add Request 13                     */
1763     uint32_t AR14:1;           /*!< bit:     14  Add Request 14                     */
1764     uint32_t AR15:1;           /*!< bit:     15  Add Request 15                     */
1765     uint32_t AR16:1;           /*!< bit:     16  Add Request 16                     */
1766     uint32_t AR17:1;           /*!< bit:     17  Add Request 17                     */
1767     uint32_t AR18:1;           /*!< bit:     18  Add Request 18                     */
1768     uint32_t AR19:1;           /*!< bit:     19  Add Request 19                     */
1769     uint32_t AR20:1;           /*!< bit:     20  Add Request 20                     */
1770     uint32_t AR21:1;           /*!< bit:     21  Add Request 21                     */
1771     uint32_t AR22:1;           /*!< bit:     22  Add Request 22                     */
1772     uint32_t AR23:1;           /*!< bit:     23  Add Request 23                     */
1773     uint32_t AR24:1;           /*!< bit:     24  Add Request 24                     */
1774     uint32_t AR25:1;           /*!< bit:     25  Add Request 25                     */
1775     uint32_t AR26:1;           /*!< bit:     26  Add Request 26                     */
1776     uint32_t AR27:1;           /*!< bit:     27  Add Request 27                     */
1777     uint32_t AR28:1;           /*!< bit:     28  Add Request 28                     */
1778     uint32_t AR29:1;           /*!< bit:     29  Add Request 29                     */
1779     uint32_t AR30:1;           /*!< bit:     30  Add Request 30                     */
1780     uint32_t AR31:1;           /*!< bit:     31  Add Request 31                     */
1781   } bit;                       /*!< Structure used for bit  access                  */
1782   uint32_t reg;                /*!< Type      used for register access              */
1783 } CAN_TXBAR_Type;
1784 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
1785
1786 #define CAN_TXBAR_OFFSET            0xD0         /**< \brief (CAN_TXBAR offset) Tx Buffer Add Request */
1787 #define CAN_TXBAR_RESETVALUE        0x00000000u  /**< \brief (CAN_TXBAR reset_value) Tx Buffer Add Request */
1788
1789 #define CAN_TXBAR_AR0_Pos           0            /**< \brief (CAN_TXBAR) Add Request 0 */
1790 #define CAN_TXBAR_AR0               (0x1u << CAN_TXBAR_AR0_Pos)
1791 #define CAN_TXBAR_AR1_Pos           1            /**< \brief (CAN_TXBAR) Add Request 1 */
1792 #define CAN_TXBAR_AR1               (0x1u << CAN_TXBAR_AR1_Pos)
1793 #define CAN_TXBAR_AR2_Pos           2            /**< \brief (CAN_TXBAR) Add Request 2 */
1794 #define CAN_TXBAR_AR2               (0x1u << CAN_TXBAR_AR2_Pos)
1795 #define CAN_TXBAR_AR3_Pos           3            /**< \brief (CAN_TXBAR) Add Request 3 */
1796 #define CAN_TXBAR_AR3               (0x1u << CAN_TXBAR_AR3_Pos)
1797 #define CAN_TXBAR_AR4_Pos           4            /**< \brief (CAN_TXBAR) Add Request 4 */
1798 #define CAN_TXBAR_AR4               (0x1u << CAN_TXBAR_AR4_Pos)
1799 #define CAN_TXBAR_AR5_Pos           5            /**< \brief (CAN_TXBAR) Add Request 5 */
1800 #define CAN_TXBAR_AR5               (0x1u << CAN_TXBAR_AR5_Pos)
1801 #define CAN_TXBAR_AR6_Pos           6            /**< \brief (CAN_TXBAR) Add Request 6 */
1802 #define CAN_TXBAR_AR6               (0x1u << CAN_TXBAR_AR6_Pos)
1803 #define CAN_TXBAR_AR7_Pos           7            /**< \brief (CAN_TXBAR) Add Request 7 */
1804 #define CAN_TXBAR_AR7               (0x1u << CAN_TXBAR_AR7_Pos)
1805 #define CAN_TXBAR_AR8_Pos           8            /**< \brief (CAN_TXBAR) Add Request 8 */
1806 #define CAN_TXBAR_AR8               (0x1u << CAN_TXBAR_AR8_Pos)
1807 #define CAN_TXBAR_AR9_Pos           9            /**< \brief (CAN_TXBAR) Add Request 9 */
1808 #define CAN_TXBAR_AR9               (0x1u << CAN_TXBAR_AR9_Pos)
1809 #define CAN_TXBAR_AR10_Pos          10           /**< \brief (CAN_TXBAR) Add Request 10 */
1810 #define CAN_TXBAR_AR10              (0x1u << CAN_TXBAR_AR10_Pos)
1811 #define CAN_TXBAR_AR11_Pos          11           /**< \brief (CAN_TXBAR) Add Request 11 */
1812 #define CAN_TXBAR_AR11              (0x1u << CAN_TXBAR_AR11_Pos)
1813 #define CAN_TXBAR_AR12_Pos          12           /**< \brief (CAN_TXBAR) Add Request 12 */
1814 #define CAN_TXBAR_AR12              (0x1u << CAN_TXBAR_AR12_Pos)
1815 #define CAN_TXBAR_AR13_Pos          13           /**< \brief (CAN_TXBAR) Add Request 13 */
1816 #define CAN_TXBAR_AR13              (0x1u << CAN_TXBAR_AR13_Pos)
1817 #define CAN_TXBAR_AR14_Pos          14           /**< \brief (CAN_TXBAR) Add Request 14 */
1818 #define CAN_TXBAR_AR14              (0x1u << CAN_TXBAR_AR14_Pos)
1819 #define CAN_TXBAR_AR15_Pos          15           /**< \brief (CAN_TXBAR) Add Request 15 */
1820 #define CAN_TXBAR_AR15              (0x1u << CAN_TXBAR_AR15_Pos)
1821 #define CAN_TXBAR_AR16_Pos          16           /**< \brief (CAN_TXBAR) Add Request 16 */
1822 #define CAN_TXBAR_AR16              (0x1u << CAN_TXBAR_AR16_Pos)
1823 #define CAN_TXBAR_AR17_Pos          17           /**< \brief (CAN_TXBAR) Add Request 17 */
1824 #define CAN_TXBAR_AR17              (0x1u << CAN_TXBAR_AR17_Pos)
1825 #define CAN_TXBAR_AR18_Pos          18           /**< \brief (CAN_TXBAR) Add Request 18 */
1826 #define CAN_TXBAR_AR18              (0x1u << CAN_TXBAR_AR18_Pos)
1827 #define CAN_TXBAR_AR19_Pos          19           /**< \brief (CAN_TXBAR) Add Request 19 */
1828 #define CAN_TXBAR_AR19              (0x1u << CAN_TXBAR_AR19_Pos)
1829 #define CAN_TXBAR_AR20_Pos          20           /**< \brief (CAN_TXBAR) Add Request 20 */
1830 #define CAN_TXBAR_AR20              (0x1u << CAN_TXBAR_AR20_Pos)
1831 #define CAN_TXBAR_AR21_Pos          21           /**< \brief (CAN_TXBAR) Add Request 21 */
1832 #define CAN_TXBAR_AR21              (0x1u << CAN_TXBAR_AR21_Pos)
1833 #define CAN_TXBAR_AR22_Pos          22           /**< \brief (CAN_TXBAR) Add Request 22 */
1834 #define CAN_TXBAR_AR22              (0x1u << CAN_TXBAR_AR22_Pos)
1835 #define CAN_TXBAR_AR23_Pos          23           /**< \brief (CAN_TXBAR) Add Request 23 */
1836 #define CAN_TXBAR_AR23              (0x1u << CAN_TXBAR_AR23_Pos)
1837 #define CAN_TXBAR_AR24_Pos          24           /**< \brief (CAN_TXBAR) Add Request 24 */
1838 #define CAN_TXBAR_AR24              (0x1u << CAN_TXBAR_AR24_Pos)
1839 #define CAN_TXBAR_AR25_Pos          25           /**< \brief (CAN_TXBAR) Add Request 25 */
1840 #define CAN_TXBAR_AR25              (0x1u << CAN_TXBAR_AR25_Pos)
1841 #define CAN_TXBAR_AR26_Pos          26           /**< \brief (CAN_TXBAR) Add Request 26 */
1842 #define CAN_TXBAR_AR26              (0x1u << CAN_TXBAR_AR26_Pos)
1843 #define CAN_TXBAR_AR27_Pos          27           /**< \brief (CAN_TXBAR) Add Request 27 */
1844 #define CAN_TXBAR_AR27              (0x1u << CAN_TXBAR_AR27_Pos)
1845 #define CAN_TXBAR_AR28_Pos          28           /**< \brief (CAN_TXBAR) Add Request 28 */
1846 #define CAN_TXBAR_AR28              (0x1u << CAN_TXBAR_AR28_Pos)
1847 #define CAN_TXBAR_AR29_Pos          29           /**< \brief (CAN_TXBAR) Add Request 29 */
1848 #define CAN_TXBAR_AR29              (0x1u << CAN_TXBAR_AR29_Pos)
1849 #define CAN_TXBAR_AR30_Pos          30           /**< \brief (CAN_TXBAR) Add Request 30 */
1850 #define CAN_TXBAR_AR30              (0x1u << CAN_TXBAR_AR30_Pos)
1851 #define CAN_TXBAR_AR31_Pos          31           /**< \brief (CAN_TXBAR) Add Request 31 */
1852 #define CAN_TXBAR_AR31              (0x1u << CAN_TXBAR_AR31_Pos)
1853 #define CAN_TXBAR_MASK              0xFFFFFFFFu  /**< \brief (CAN_TXBAR) MASK Register */
1854
1855 /* -------- CAN_TXBCR : (CAN Offset: 0xD4) (R/W 32) Tx Buffer Cancellation Request -------- */
1856 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
1857 typedef union {
1858   struct {
1859     uint32_t CR0:1;            /*!< bit:      0  Cancellation Request 0             */
1860     uint32_t CR1:1;            /*!< bit:      1  Cancellation Request 1             */
1861     uint32_t CR2:1;            /*!< bit:      2  Cancellation Request 2             */
1862     uint32_t CR3:1;            /*!< bit:      3  Cancellation Request 3             */
1863     uint32_t CR4:1;            /*!< bit:      4  Cancellation Request 4             */
1864     uint32_t CR5:1;            /*!< bit:      5  Cancellation Request 5             */
1865     uint32_t CR6:1;            /*!< bit:      6  Cancellation Request 6             */
1866     uint32_t CR7:1;            /*!< bit:      7  Cancellation Request 7             */
1867     uint32_t CR8:1;            /*!< bit:      8  Cancellation Request 8             */
1868     uint32_t CR9:1;            /*!< bit:      9  Cancellation Request 9             */
1869     uint32_t CR10:1;           /*!< bit:     10  Cancellation Request 10            */
1870     uint32_t CR11:1;           /*!< bit:     11  Cancellation Request 11            */
1871     uint32_t CR12:1;           /*!< bit:     12  Cancellation Request 12            */
1872     uint32_t CR13:1;           /*!< bit:     13  Cancellation Request 13            */
1873     uint32_t CR14:1;           /*!< bit:     14  Cancellation Request 14            */
1874     uint32_t CR15:1;           /*!< bit:     15  Cancellation Request 15            */
1875     uint32_t CR16:1;           /*!< bit:     16  Cancellation Request 16            */
1876     uint32_t CR17:1;           /*!< bit:     17  Cancellation Request 17            */
1877     uint32_t CR18:1;           /*!< bit:     18  Cancellation Request 18            */
1878     uint32_t CR19:1;           /*!< bit:     19  Cancellation Request 19            */
1879     uint32_t CR20:1;           /*!< bit:     20  Cancellation Request 20            */
1880     uint32_t CR21:1;           /*!< bit:     21  Cancellation Request 21            */
1881     uint32_t CR22:1;           /*!< bit:     22  Cancellation Request 22            */
1882     uint32_t CR23:1;           /*!< bit:     23  Cancellation Request 23            */
1883     uint32_t CR24:1;           /*!< bit:     24  Cancellation Request 24            */
1884     uint32_t CR25:1;           /*!< bit:     25  Cancellation Request 25            */
1885     uint32_t CR26:1;           /*!< bit:     26  Cancellation Request 26            */
1886     uint32_t CR27:1;           /*!< bit:     27  Cancellation Request 27            */
1887     uint32_t CR28:1;           /*!< bit:     28  Cancellation Request 28            */
1888     uint32_t CR29:1;           /*!< bit:     29  Cancellation Request 29            */
1889     uint32_t CR30:1;           /*!< bit:     30  Cancellation Request 30            */
1890     uint32_t CR31:1;           /*!< bit:     31  Cancellation Request 31            */
1891   } bit;                       /*!< Structure used for bit  access                  */
1892   uint32_t reg;                /*!< Type      used for register access              */
1893 } CAN_TXBCR_Type;
1894 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
1895
1896 #define CAN_TXBCR_OFFSET            0xD4         /**< \brief (CAN_TXBCR offset) Tx Buffer Cancellation Request */
1897 #define CAN_TXBCR_RESETVALUE        0x00000000u  /**< \brief (CAN_TXBCR reset_value) Tx Buffer Cancellation Request */
1898
1899 #define CAN_TXBCR_CR0_Pos           0            /**< \brief (CAN_TXBCR) Cancellation Request 0 */
1900 #define CAN_TXBCR_CR0               (0x1u << CAN_TXBCR_CR0_Pos)
1901 #define CAN_TXBCR_CR1_Pos           1            /**< \brief (CAN_TXBCR) Cancellation Request 1 */
1902 #define CAN_TXBCR_CR1               (0x1u << CAN_TXBCR_CR1_Pos)
1903 #define CAN_TXBCR_CR2_Pos           2            /**< \brief (CAN_TXBCR) Cancellation Request 2 */
1904 #define CAN_TXBCR_CR2               (0x1u << CAN_TXBCR_CR2_Pos)
1905 #define CAN_TXBCR_CR3_Pos           3            /**< \brief (CAN_TXBCR) Cancellation Request 3 */
1906 #define CAN_TXBCR_CR3               (0x1u << CAN_TXBCR_CR3_Pos)
1907 #define CAN_TXBCR_CR4_Pos           4            /**< \brief (CAN_TXBCR) Cancellation Request 4 */
1908 #define CAN_TXBCR_CR4               (0x1u << CAN_TXBCR_CR4_Pos)
1909 #define CAN_TXBCR_CR5_Pos           5            /**< \brief (CAN_TXBCR) Cancellation Request 5 */
1910 #define CAN_TXBCR_CR5               (0x1u << CAN_TXBCR_CR5_Pos)
1911 #define CAN_TXBCR_CR6_Pos           6            /**< \brief (CAN_TXBCR) Cancellation Request 6 */
1912 #define CAN_TXBCR_CR6               (0x1u << CAN_TXBCR_CR6_Pos)
1913 #define CAN_TXBCR_CR7_Pos           7            /**< \brief (CAN_TXBCR) Cancellation Request 7 */
1914 #define CAN_TXBCR_CR7               (0x1u << CAN_TXBCR_CR7_Pos)
1915 #define CAN_TXBCR_CR8_Pos           8            /**< \brief (CAN_TXBCR) Cancellation Request 8 */
1916 #define CAN_TXBCR_CR8               (0x1u << CAN_TXBCR_CR8_Pos)
1917 #define CAN_TXBCR_CR9_Pos           9            /**< \brief (CAN_TXBCR) Cancellation Request 9 */
1918 #define CAN_TXBCR_CR9               (0x1u << CAN_TXBCR_CR9_Pos)
1919 #define CAN_TXBCR_CR10_Pos          10           /**< \brief (CAN_TXBCR) Cancellation Request 10 */
1920 #define CAN_TXBCR_CR10              (0x1u << CAN_TXBCR_CR10_Pos)
1921 #define CAN_TXBCR_CR11_Pos          11           /**< \brief (CAN_TXBCR) Cancellation Request 11 */
1922 #define CAN_TXBCR_CR11              (0x1u << CAN_TXBCR_CR11_Pos)
1923 #define CAN_TXBCR_CR12_Pos          12           /**< \brief (CAN_TXBCR) Cancellation Request 12 */
1924 #define CAN_TXBCR_CR12              (0x1u << CAN_TXBCR_CR12_Pos)
1925 #define CAN_TXBCR_CR13_Pos          13           /**< \brief (CAN_TXBCR) Cancellation Request 13 */
1926 #define CAN_TXBCR_CR13              (0x1u << CAN_TXBCR_CR13_Pos)
1927 #define CAN_TXBCR_CR14_Pos          14           /**< \brief (CAN_TXBCR) Cancellation Request 14 */
1928 #define CAN_TXBCR_CR14              (0x1u << CAN_TXBCR_CR14_Pos)
1929 #define CAN_TXBCR_CR15_Pos          15           /**< \brief (CAN_TXBCR) Cancellation Request 15 */
1930 #define CAN_TXBCR_CR15              (0x1u << CAN_TXBCR_CR15_Pos)
1931 #define CAN_TXBCR_CR16_Pos          16           /**< \brief (CAN_TXBCR) Cancellation Request 16 */
1932 #define CAN_TXBCR_CR16              (0x1u << CAN_TXBCR_CR16_Pos)
1933 #define CAN_TXBCR_CR17_Pos          17           /**< \brief (CAN_TXBCR) Cancellation Request 17 */
1934 #define CAN_TXBCR_CR17              (0x1u << CAN_TXBCR_CR17_Pos)
1935 #define CAN_TXBCR_CR18_Pos          18           /**< \brief (CAN_TXBCR) Cancellation Request 18 */
1936 #define CAN_TXBCR_CR18              (0x1u << CAN_TXBCR_CR18_Pos)
1937 #define CAN_TXBCR_CR19_Pos          19           /**< \brief (CAN_TXBCR) Cancellation Request 19 */
1938 #define CAN_TXBCR_CR19              (0x1u << CAN_TXBCR_CR19_Pos)
1939 #define CAN_TXBCR_CR20_Pos          20           /**< \brief (CAN_TXBCR) Cancellation Request 20 */
1940 #define CAN_TXBCR_CR20              (0x1u << CAN_TXBCR_CR20_Pos)
1941 #define CAN_TXBCR_CR21_Pos          21           /**< \brief (CAN_TXBCR) Cancellation Request 21 */
1942 #define CAN_TXBCR_CR21              (0x1u << CAN_TXBCR_CR21_Pos)
1943 #define CAN_TXBCR_CR22_Pos          22           /**< \brief (CAN_TXBCR) Cancellation Request 22 */
1944 #define CAN_TXBCR_CR22              (0x1u << CAN_TXBCR_CR22_Pos)
1945 #define CAN_TXBCR_CR23_Pos          23           /**< \brief (CAN_TXBCR) Cancellation Request 23 */
1946 #define CAN_TXBCR_CR23              (0x1u << CAN_TXBCR_CR23_Pos)
1947 #define CAN_TXBCR_CR24_Pos          24           /**< \brief (CAN_TXBCR) Cancellation Request 24 */
1948 #define CAN_TXBCR_CR24              (0x1u << CAN_TXBCR_CR24_Pos)
1949 #define CAN_TXBCR_CR25_Pos          25           /**< \brief (CAN_TXBCR) Cancellation Request 25 */
1950 #define CAN_TXBCR_CR25              (0x1u << CAN_TXBCR_CR25_Pos)
1951 #define CAN_TXBCR_CR26_Pos          26           /**< \brief (CAN_TXBCR) Cancellation Request 26 */
1952 #define CAN_TXBCR_CR26              (0x1u << CAN_TXBCR_CR26_Pos)
1953 #define CAN_TXBCR_CR27_Pos          27           /**< \brief (CAN_TXBCR) Cancellation Request 27 */
1954 #define CAN_TXBCR_CR27              (0x1u << CAN_TXBCR_CR27_Pos)
1955 #define CAN_TXBCR_CR28_Pos          28           /**< \brief (CAN_TXBCR) Cancellation Request 28 */
1956 #define CAN_TXBCR_CR28              (0x1u << CAN_TXBCR_CR28_Pos)
1957 #define CAN_TXBCR_CR29_Pos          29           /**< \brief (CAN_TXBCR) Cancellation Request 29 */
1958 #define CAN_TXBCR_CR29              (0x1u << CAN_TXBCR_CR29_Pos)
1959 #define CAN_TXBCR_CR30_Pos          30           /**< \brief (CAN_TXBCR) Cancellation Request 30 */
1960 #define CAN_TXBCR_CR30              (0x1u << CAN_TXBCR_CR30_Pos)
1961 #define CAN_TXBCR_CR31_Pos          31           /**< \brief (CAN_TXBCR) Cancellation Request 31 */
1962 #define CAN_TXBCR_CR31              (0x1u << CAN_TXBCR_CR31_Pos)
1963 #define CAN_TXBCR_MASK              0xFFFFFFFFu  /**< \brief (CAN_TXBCR) MASK Register */
1964
1965 /* -------- CAN_TXBTO : (CAN Offset: 0xD8) (R/  32) Tx Buffer Transmission Occurred -------- */
1966 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
1967 typedef union {
1968   struct {
1969     uint32_t TO0:1;            /*!< bit:      0  Transmission Occurred 0            */
1970     uint32_t TO1:1;            /*!< bit:      1  Transmission Occurred 1            */
1971     uint32_t TO2:1;            /*!< bit:      2  Transmission Occurred 2            */
1972     uint32_t TO3:1;            /*!< bit:      3  Transmission Occurred 3            */
1973     uint32_t TO4:1;            /*!< bit:      4  Transmission Occurred 4            */
1974     uint32_t TO5:1;            /*!< bit:      5  Transmission Occurred 5            */
1975     uint32_t TO6:1;            /*!< bit:      6  Transmission Occurred 6            */
1976     uint32_t TO7:1;            /*!< bit:      7  Transmission Occurred 7            */
1977     uint32_t TO8:1;            /*!< bit:      8  Transmission Occurred 8            */
1978     uint32_t TO9:1;            /*!< bit:      9  Transmission Occurred 9            */
1979     uint32_t TO10:1;           /*!< bit:     10  Transmission Occurred 10           */
1980     uint32_t TO11:1;           /*!< bit:     11  Transmission Occurred 11           */
1981     uint32_t TO12:1;           /*!< bit:     12  Transmission Occurred 12           */
1982     uint32_t TO13:1;           /*!< bit:     13  Transmission Occurred 13           */
1983     uint32_t TO14:1;           /*!< bit:     14  Transmission Occurred 14           */
1984     uint32_t TO15:1;           /*!< bit:     15  Transmission Occurred 15           */
1985     uint32_t TO16:1;           /*!< bit:     16  Transmission Occurred 16           */
1986     uint32_t TO17:1;           /*!< bit:     17  Transmission Occurred 17           */
1987     uint32_t TO18:1;           /*!< bit:     18  Transmission Occurred 18           */
1988     uint32_t TO19:1;           /*!< bit:     19  Transmission Occurred 19           */
1989     uint32_t TO20:1;           /*!< bit:     20  Transmission Occurred 20           */
1990     uint32_t TO21:1;           /*!< bit:     21  Transmission Occurred 21           */
1991     uint32_t TO22:1;           /*!< bit:     22  Transmission Occurred 22           */
1992     uint32_t TO23:1;           /*!< bit:     23  Transmission Occurred 23           */
1993     uint32_t TO24:1;           /*!< bit:     24  Transmission Occurred 24           */
1994     uint32_t TO25:1;           /*!< bit:     25  Transmission Occurred 25           */
1995     uint32_t TO26:1;           /*!< bit:     26  Transmission Occurred 26           */
1996     uint32_t TO27:1;           /*!< bit:     27  Transmission Occurred 27           */
1997     uint32_t TO28:1;           /*!< bit:     28  Transmission Occurred 28           */
1998     uint32_t TO29:1;           /*!< bit:     29  Transmission Occurred 29           */
1999     uint32_t TO30:1;           /*!< bit:     30  Transmission Occurred 30           */
2000     uint32_t TO31:1;           /*!< bit:     31  Transmission Occurred 31           */
2001   } bit;                       /*!< Structure used for bit  access                  */
2002   uint32_t reg;                /*!< Type      used for register access              */
2003 } CAN_TXBTO_Type;
2004 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2005
2006 #define CAN_TXBTO_OFFSET            0xD8         /**< \brief (CAN_TXBTO offset) Tx Buffer Transmission Occurred */
2007 #define CAN_TXBTO_RESETVALUE        0x00000000u  /**< \brief (CAN_TXBTO reset_value) Tx Buffer Transmission Occurred */
2008
2009 #define CAN_TXBTO_TO0_Pos           0            /**< \brief (CAN_TXBTO) Transmission Occurred 0 */
2010 #define CAN_TXBTO_TO0               (0x1u << CAN_TXBTO_TO0_Pos)
2011 #define CAN_TXBTO_TO1_Pos           1            /**< \brief (CAN_TXBTO) Transmission Occurred 1 */
2012 #define CAN_TXBTO_TO1               (0x1u << CAN_TXBTO_TO1_Pos)
2013 #define CAN_TXBTO_TO2_Pos           2            /**< \brief (CAN_TXBTO) Transmission Occurred 2 */
2014 #define CAN_TXBTO_TO2               (0x1u << CAN_TXBTO_TO2_Pos)
2015 #define CAN_TXBTO_TO3_Pos           3            /**< \brief (CAN_TXBTO) Transmission Occurred 3 */
2016 #define CAN_TXBTO_TO3               (0x1u << CAN_TXBTO_TO3_Pos)
2017 #define CAN_TXBTO_TO4_Pos           4            /**< \brief (CAN_TXBTO) Transmission Occurred 4 */
2018 #define CAN_TXBTO_TO4               (0x1u << CAN_TXBTO_TO4_Pos)
2019 #define CAN_TXBTO_TO5_Pos           5            /**< \brief (CAN_TXBTO) Transmission Occurred 5 */
2020 #define CAN_TXBTO_TO5               (0x1u << CAN_TXBTO_TO5_Pos)
2021 #define CAN_TXBTO_TO6_Pos           6            /**< \brief (CAN_TXBTO) Transmission Occurred 6 */
2022 #define CAN_TXBTO_TO6               (0x1u << CAN_TXBTO_TO6_Pos)
2023 #define CAN_TXBTO_TO7_Pos           7            /**< \brief (CAN_TXBTO) Transmission Occurred 7 */
2024 #define CAN_TXBTO_TO7               (0x1u << CAN_TXBTO_TO7_Pos)
2025 #define CAN_TXBTO_TO8_Pos           8            /**< \brief (CAN_TXBTO) Transmission Occurred 8 */
2026 #define CAN_TXBTO_TO8               (0x1u << CAN_TXBTO_TO8_Pos)
2027 #define CAN_TXBTO_TO9_Pos           9            /**< \brief (CAN_TXBTO) Transmission Occurred 9 */
2028 #define CAN_TXBTO_TO9               (0x1u << CAN_TXBTO_TO9_Pos)
2029 #define CAN_TXBTO_TO10_Pos          10           /**< \brief (CAN_TXBTO) Transmission Occurred 10 */
2030 #define CAN_TXBTO_TO10              (0x1u << CAN_TXBTO_TO10_Pos)
2031 #define CAN_TXBTO_TO11_Pos          11           /**< \brief (CAN_TXBTO) Transmission Occurred 11 */
2032 #define CAN_TXBTO_TO11              (0x1u << CAN_TXBTO_TO11_Pos)
2033 #define CAN_TXBTO_TO12_Pos          12           /**< \brief (CAN_TXBTO) Transmission Occurred 12 */
2034 #define CAN_TXBTO_TO12              (0x1u << CAN_TXBTO_TO12_Pos)
2035 #define CAN_TXBTO_TO13_Pos          13           /**< \brief (CAN_TXBTO) Transmission Occurred 13 */
2036 #define CAN_TXBTO_TO13              (0x1u << CAN_TXBTO_TO13_Pos)
2037 #define CAN_TXBTO_TO14_Pos          14           /**< \brief (CAN_TXBTO) Transmission Occurred 14 */
2038 #define CAN_TXBTO_TO14              (0x1u << CAN_TXBTO_TO14_Pos)
2039 #define CAN_TXBTO_TO15_Pos          15           /**< \brief (CAN_TXBTO) Transmission Occurred 15 */
2040 #define CAN_TXBTO_TO15              (0x1u << CAN_TXBTO_TO15_Pos)
2041 #define CAN_TXBTO_TO16_Pos          16           /**< \brief (CAN_TXBTO) Transmission Occurred 16 */
2042 #define CAN_TXBTO_TO16              (0x1u << CAN_TXBTO_TO16_Pos)
2043 #define CAN_TXBTO_TO17_Pos          17           /**< \brief (CAN_TXBTO) Transmission Occurred 17 */
2044 #define CAN_TXBTO_TO17              (0x1u << CAN_TXBTO_TO17_Pos)
2045 #define CAN_TXBTO_TO18_Pos          18           /**< \brief (CAN_TXBTO) Transmission Occurred 18 */
2046 #define CAN_TXBTO_TO18              (0x1u << CAN_TXBTO_TO18_Pos)
2047 #define CAN_TXBTO_TO19_Pos          19           /**< \brief (CAN_TXBTO) Transmission Occurred 19 */
2048 #define CAN_TXBTO_TO19              (0x1u << CAN_TXBTO_TO19_Pos)
2049 #define CAN_TXBTO_TO20_Pos          20           /**< \brief (CAN_TXBTO) Transmission Occurred 20 */
2050 #define CAN_TXBTO_TO20              (0x1u << CAN_TXBTO_TO20_Pos)
2051 #define CAN_TXBTO_TO21_Pos          21           /**< \brief (CAN_TXBTO) Transmission Occurred 21 */
2052 #define CAN_TXBTO_TO21              (0x1u << CAN_TXBTO_TO21_Pos)
2053 #define CAN_TXBTO_TO22_Pos          22           /**< \brief (CAN_TXBTO) Transmission Occurred 22 */
2054 #define CAN_TXBTO_TO22              (0x1u << CAN_TXBTO_TO22_Pos)
2055 #define CAN_TXBTO_TO23_Pos          23           /**< \brief (CAN_TXBTO) Transmission Occurred 23 */
2056 #define CAN_TXBTO_TO23              (0x1u << CAN_TXBTO_TO23_Pos)
2057 #define CAN_TXBTO_TO24_Pos          24           /**< \brief (CAN_TXBTO) Transmission Occurred 24 */
2058 #define CAN_TXBTO_TO24              (0x1u << CAN_TXBTO_TO24_Pos)
2059 #define CAN_TXBTO_TO25_Pos          25           /**< \brief (CAN_TXBTO) Transmission Occurred 25 */
2060 #define CAN_TXBTO_TO25              (0x1u << CAN_TXBTO_TO25_Pos)
2061 #define CAN_TXBTO_TO26_Pos          26           /**< \brief (CAN_TXBTO) Transmission Occurred 26 */
2062 #define CAN_TXBTO_TO26              (0x1u << CAN_TXBTO_TO26_Pos)
2063 #define CAN_TXBTO_TO27_Pos          27           /**< \brief (CAN_TXBTO) Transmission Occurred 27 */
2064 #define CAN_TXBTO_TO27              (0x1u << CAN_TXBTO_TO27_Pos)
2065 #define CAN_TXBTO_TO28_Pos          28           /**< \brief (CAN_TXBTO) Transmission Occurred 28 */
2066 #define CAN_TXBTO_TO28              (0x1u << CAN_TXBTO_TO28_Pos)
2067 #define CAN_TXBTO_TO29_Pos          29           /**< \brief (CAN_TXBTO) Transmission Occurred 29 */
2068 #define CAN_TXBTO_TO29              (0x1u << CAN_TXBTO_TO29_Pos)
2069 #define CAN_TXBTO_TO30_Pos          30           /**< \brief (CAN_TXBTO) Transmission Occurred 30 */
2070 #define CAN_TXBTO_TO30              (0x1u << CAN_TXBTO_TO30_Pos)
2071 #define CAN_TXBTO_TO31_Pos          31           /**< \brief (CAN_TXBTO) Transmission Occurred 31 */
2072 #define CAN_TXBTO_TO31              (0x1u << CAN_TXBTO_TO31_Pos)
2073 #define CAN_TXBTO_MASK              0xFFFFFFFFu  /**< \brief (CAN_TXBTO) MASK Register */
2074
2075 /* -------- CAN_TXBCF : (CAN Offset: 0xDC) (R/  32) Tx Buffer Cancellation Finished -------- */
2076 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2077 typedef union {
2078   struct {
2079     uint32_t CF0:1;            /*!< bit:      0  Tx Buffer Cancellation Finished 0  */
2080     uint32_t CF1:1;            /*!< bit:      1  Tx Buffer Cancellation Finished 1  */
2081     uint32_t CF2:1;            /*!< bit:      2  Tx Buffer Cancellation Finished 2  */
2082     uint32_t CF3:1;            /*!< bit:      3  Tx Buffer Cancellation Finished 3  */
2083     uint32_t CF4:1;            /*!< bit:      4  Tx Buffer Cancellation Finished 4  */
2084     uint32_t CF5:1;            /*!< bit:      5  Tx Buffer Cancellation Finished 5  */
2085     uint32_t CF6:1;            /*!< bit:      6  Tx Buffer Cancellation Finished 6  */
2086     uint32_t CF7:1;            /*!< bit:      7  Tx Buffer Cancellation Finished 7  */
2087     uint32_t CF8:1;            /*!< bit:      8  Tx Buffer Cancellation Finished 8  */
2088     uint32_t CF9:1;            /*!< bit:      9  Tx Buffer Cancellation Finished 9  */
2089     uint32_t CF10:1;           /*!< bit:     10  Tx Buffer Cancellation Finished 10 */
2090     uint32_t CF11:1;           /*!< bit:     11  Tx Buffer Cancellation Finished 11 */
2091     uint32_t CF12:1;           /*!< bit:     12  Tx Buffer Cancellation Finished 12 */
2092     uint32_t CF13:1;           /*!< bit:     13  Tx Buffer Cancellation Finished 13 */
2093     uint32_t CF14:1;           /*!< bit:     14  Tx Buffer Cancellation Finished 14 */
2094     uint32_t CF15:1;           /*!< bit:     15  Tx Buffer Cancellation Finished 15 */
2095     uint32_t CF16:1;           /*!< bit:     16  Tx Buffer Cancellation Finished 16 */
2096     uint32_t CF17:1;           /*!< bit:     17  Tx Buffer Cancellation Finished 17 */
2097     uint32_t CF18:1;           /*!< bit:     18  Tx Buffer Cancellation Finished 18 */
2098     uint32_t CF19:1;           /*!< bit:     19  Tx Buffer Cancellation Finished 19 */
2099     uint32_t CF20:1;           /*!< bit:     20  Tx Buffer Cancellation Finished 20 */
2100     uint32_t CF21:1;           /*!< bit:     21  Tx Buffer Cancellation Finished 21 */
2101     uint32_t CF22:1;           /*!< bit:     22  Tx Buffer Cancellation Finished 22 */
2102     uint32_t CF23:1;           /*!< bit:     23  Tx Buffer Cancellation Finished 23 */
2103     uint32_t CF24:1;           /*!< bit:     24  Tx Buffer Cancellation Finished 24 */
2104     uint32_t CF25:1;           /*!< bit:     25  Tx Buffer Cancellation Finished 25 */
2105     uint32_t CF26:1;           /*!< bit:     26  Tx Buffer Cancellation Finished 26 */
2106     uint32_t CF27:1;           /*!< bit:     27  Tx Buffer Cancellation Finished 27 */
2107     uint32_t CF28:1;           /*!< bit:     28  Tx Buffer Cancellation Finished 28 */
2108     uint32_t CF29:1;           /*!< bit:     29  Tx Buffer Cancellation Finished 29 */
2109     uint32_t CF30:1;           /*!< bit:     30  Tx Buffer Cancellation Finished 30 */
2110     uint32_t CF31:1;           /*!< bit:     31  Tx Buffer Cancellation Finished 31 */
2111   } bit;                       /*!< Structure used for bit  access                  */
2112   uint32_t reg;                /*!< Type      used for register access              */
2113 } CAN_TXBCF_Type;
2114 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2115
2116 #define CAN_TXBCF_OFFSET            0xDC         /**< \brief (CAN_TXBCF offset) Tx Buffer Cancellation Finished */
2117 #define CAN_TXBCF_RESETVALUE        0x00000000u  /**< \brief (CAN_TXBCF reset_value) Tx Buffer Cancellation Finished */
2118
2119 #define CAN_TXBCF_CF0_Pos           0            /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 0 */
2120 #define CAN_TXBCF_CF0               (0x1u << CAN_TXBCF_CF0_Pos)
2121 #define CAN_TXBCF_CF1_Pos           1            /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 1 */
2122 #define CAN_TXBCF_CF1               (0x1u << CAN_TXBCF_CF1_Pos)
2123 #define CAN_TXBCF_CF2_Pos           2            /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 2 */
2124 #define CAN_TXBCF_CF2               (0x1u << CAN_TXBCF_CF2_Pos)
2125 #define CAN_TXBCF_CF3_Pos           3            /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 3 */
2126 #define CAN_TXBCF_CF3               (0x1u << CAN_TXBCF_CF3_Pos)
2127 #define CAN_TXBCF_CF4_Pos           4            /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 4 */
2128 #define CAN_TXBCF_CF4               (0x1u << CAN_TXBCF_CF4_Pos)
2129 #define CAN_TXBCF_CF5_Pos           5            /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 5 */
2130 #define CAN_TXBCF_CF5               (0x1u << CAN_TXBCF_CF5_Pos)
2131 #define CAN_TXBCF_CF6_Pos           6            /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 6 */
2132 #define CAN_TXBCF_CF6               (0x1u << CAN_TXBCF_CF6_Pos)
2133 #define CAN_TXBCF_CF7_Pos           7            /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 7 */
2134 #define CAN_TXBCF_CF7               (0x1u << CAN_TXBCF_CF7_Pos)
2135 #define CAN_TXBCF_CF8_Pos           8            /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 8 */
2136 #define CAN_TXBCF_CF8               (0x1u << CAN_TXBCF_CF8_Pos)
2137 #define CAN_TXBCF_CF9_Pos           9            /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 9 */
2138 #define CAN_TXBCF_CF9               (0x1u << CAN_TXBCF_CF9_Pos)
2139 #define CAN_TXBCF_CF10_Pos          10           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 10 */
2140 #define CAN_TXBCF_CF10              (0x1u << CAN_TXBCF_CF10_Pos)
2141 #define CAN_TXBCF_CF11_Pos          11           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 11 */
2142 #define CAN_TXBCF_CF11              (0x1u << CAN_TXBCF_CF11_Pos)
2143 #define CAN_TXBCF_CF12_Pos          12           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 12 */
2144 #define CAN_TXBCF_CF12              (0x1u << CAN_TXBCF_CF12_Pos)
2145 #define CAN_TXBCF_CF13_Pos          13           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 13 */
2146 #define CAN_TXBCF_CF13              (0x1u << CAN_TXBCF_CF13_Pos)
2147 #define CAN_TXBCF_CF14_Pos          14           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 14 */
2148 #define CAN_TXBCF_CF14              (0x1u << CAN_TXBCF_CF14_Pos)
2149 #define CAN_TXBCF_CF15_Pos          15           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 15 */
2150 #define CAN_TXBCF_CF15              (0x1u << CAN_TXBCF_CF15_Pos)
2151 #define CAN_TXBCF_CF16_Pos          16           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 16 */
2152 #define CAN_TXBCF_CF16              (0x1u << CAN_TXBCF_CF16_Pos)
2153 #define CAN_TXBCF_CF17_Pos          17           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 17 */
2154 #define CAN_TXBCF_CF17              (0x1u << CAN_TXBCF_CF17_Pos)
2155 #define CAN_TXBCF_CF18_Pos          18           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 18 */
2156 #define CAN_TXBCF_CF18              (0x1u << CAN_TXBCF_CF18_Pos)
2157 #define CAN_TXBCF_CF19_Pos          19           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 19 */
2158 #define CAN_TXBCF_CF19              (0x1u << CAN_TXBCF_CF19_Pos)
2159 #define CAN_TXBCF_CF20_Pos          20           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 20 */
2160 #define CAN_TXBCF_CF20              (0x1u << CAN_TXBCF_CF20_Pos)
2161 #define CAN_TXBCF_CF21_Pos          21           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 21 */
2162 #define CAN_TXBCF_CF21              (0x1u << CAN_TXBCF_CF21_Pos)
2163 #define CAN_TXBCF_CF22_Pos          22           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 22 */
2164 #define CAN_TXBCF_CF22              (0x1u << CAN_TXBCF_CF22_Pos)
2165 #define CAN_TXBCF_CF23_Pos          23           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 23 */
2166 #define CAN_TXBCF_CF23              (0x1u << CAN_TXBCF_CF23_Pos)
2167 #define CAN_TXBCF_CF24_Pos          24           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 24 */
2168 #define CAN_TXBCF_CF24              (0x1u << CAN_TXBCF_CF24_Pos)
2169 #define CAN_TXBCF_CF25_Pos          25           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 25 */
2170 #define CAN_TXBCF_CF25              (0x1u << CAN_TXBCF_CF25_Pos)
2171 #define CAN_TXBCF_CF26_Pos          26           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 26 */
2172 #define CAN_TXBCF_CF26              (0x1u << CAN_TXBCF_CF26_Pos)
2173 #define CAN_TXBCF_CF27_Pos          27           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 27 */
2174 #define CAN_TXBCF_CF27              (0x1u << CAN_TXBCF_CF27_Pos)
2175 #define CAN_TXBCF_CF28_Pos          28           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 28 */
2176 #define CAN_TXBCF_CF28              (0x1u << CAN_TXBCF_CF28_Pos)
2177 #define CAN_TXBCF_CF29_Pos          29           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 29 */
2178 #define CAN_TXBCF_CF29              (0x1u << CAN_TXBCF_CF29_Pos)
2179 #define CAN_TXBCF_CF30_Pos          30           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 30 */
2180 #define CAN_TXBCF_CF30              (0x1u << CAN_TXBCF_CF30_Pos)
2181 #define CAN_TXBCF_CF31_Pos          31           /**< \brief (CAN_TXBCF) Tx Buffer Cancellation Finished 31 */
2182 #define CAN_TXBCF_CF31              (0x1u << CAN_TXBCF_CF31_Pos)
2183 #define CAN_TXBCF_MASK              0xFFFFFFFFu  /**< \brief (CAN_TXBCF) MASK Register */
2184
2185 /* -------- CAN_TXBTIE : (CAN Offset: 0xE0) (R/W 32) Tx Buffer Transmission Interrupt Enable -------- */
2186 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2187 typedef union {
2188   struct {
2189     uint32_t TIE0:1;           /*!< bit:      0  Transmission Interrupt Enable 0    */
2190     uint32_t TIE1:1;           /*!< bit:      1  Transmission Interrupt Enable 1    */
2191     uint32_t TIE2:1;           /*!< bit:      2  Transmission Interrupt Enable 2    */
2192     uint32_t TIE3:1;           /*!< bit:      3  Transmission Interrupt Enable 3    */
2193     uint32_t TIE4:1;           /*!< bit:      4  Transmission Interrupt Enable 4    */
2194     uint32_t TIE5:1;           /*!< bit:      5  Transmission Interrupt Enable 5    */
2195     uint32_t TIE6:1;           /*!< bit:      6  Transmission Interrupt Enable 6    */
2196     uint32_t TIE7:1;           /*!< bit:      7  Transmission Interrupt Enable 7    */
2197     uint32_t TIE8:1;           /*!< bit:      8  Transmission Interrupt Enable 8    */
2198     uint32_t TIE9:1;           /*!< bit:      9  Transmission Interrupt Enable 9    */
2199     uint32_t TIE10:1;          /*!< bit:     10  Transmission Interrupt Enable 10   */
2200     uint32_t TIE11:1;          /*!< bit:     11  Transmission Interrupt Enable 11   */
2201     uint32_t TIE12:1;          /*!< bit:     12  Transmission Interrupt Enable 12   */
2202     uint32_t TIE13:1;          /*!< bit:     13  Transmission Interrupt Enable 13   */
2203     uint32_t TIE14:1;          /*!< bit:     14  Transmission Interrupt Enable 14   */
2204     uint32_t TIE15:1;          /*!< bit:     15  Transmission Interrupt Enable 15   */
2205     uint32_t TIE16:1;          /*!< bit:     16  Transmission Interrupt Enable 16   */
2206     uint32_t TIE17:1;          /*!< bit:     17  Transmission Interrupt Enable 17   */
2207     uint32_t TIE18:1;          /*!< bit:     18  Transmission Interrupt Enable 18   */
2208     uint32_t TIE19:1;          /*!< bit:     19  Transmission Interrupt Enable 19   */
2209     uint32_t TIE20:1;          /*!< bit:     20  Transmission Interrupt Enable 20   */
2210     uint32_t TIE21:1;          /*!< bit:     21  Transmission Interrupt Enable 21   */
2211     uint32_t TIE22:1;          /*!< bit:     22  Transmission Interrupt Enable 22   */
2212     uint32_t TIE23:1;          /*!< bit:     23  Transmission Interrupt Enable 23   */
2213     uint32_t TIE24:1;          /*!< bit:     24  Transmission Interrupt Enable 24   */
2214     uint32_t TIE25:1;          /*!< bit:     25  Transmission Interrupt Enable 25   */
2215     uint32_t TIE26:1;          /*!< bit:     26  Transmission Interrupt Enable 26   */
2216     uint32_t TIE27:1;          /*!< bit:     27  Transmission Interrupt Enable 27   */
2217     uint32_t TIE28:1;          /*!< bit:     28  Transmission Interrupt Enable 28   */
2218     uint32_t TIE29:1;          /*!< bit:     29  Transmission Interrupt Enable 29   */
2219     uint32_t TIE30:1;          /*!< bit:     30  Transmission Interrupt Enable 30   */
2220     uint32_t TIE31:1;          /*!< bit:     31  Transmission Interrupt Enable 31   */
2221   } bit;                       /*!< Structure used for bit  access                  */
2222   uint32_t reg;                /*!< Type      used for register access              */
2223 } CAN_TXBTIE_Type;
2224 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2225
2226 #define CAN_TXBTIE_OFFSET           0xE0         /**< \brief (CAN_TXBTIE offset) Tx Buffer Transmission Interrupt Enable */
2227 #define CAN_TXBTIE_RESETVALUE       0x00000000u  /**< \brief (CAN_TXBTIE reset_value) Tx Buffer Transmission Interrupt Enable */
2228
2229 #define CAN_TXBTIE_TIE0_Pos         0            /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 0 */
2230 #define CAN_TXBTIE_TIE0             (0x1u << CAN_TXBTIE_TIE0_Pos)
2231 #define CAN_TXBTIE_TIE1_Pos         1            /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 1 */
2232 #define CAN_TXBTIE_TIE1             (0x1u << CAN_TXBTIE_TIE1_Pos)
2233 #define CAN_TXBTIE_TIE2_Pos         2            /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 2 */
2234 #define CAN_TXBTIE_TIE2             (0x1u << CAN_TXBTIE_TIE2_Pos)
2235 #define CAN_TXBTIE_TIE3_Pos         3            /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 3 */
2236 #define CAN_TXBTIE_TIE3             (0x1u << CAN_TXBTIE_TIE3_Pos)
2237 #define CAN_TXBTIE_TIE4_Pos         4            /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 4 */
2238 #define CAN_TXBTIE_TIE4             (0x1u << CAN_TXBTIE_TIE4_Pos)
2239 #define CAN_TXBTIE_TIE5_Pos         5            /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 5 */
2240 #define CAN_TXBTIE_TIE5             (0x1u << CAN_TXBTIE_TIE5_Pos)
2241 #define CAN_TXBTIE_TIE6_Pos         6            /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 6 */
2242 #define CAN_TXBTIE_TIE6             (0x1u << CAN_TXBTIE_TIE6_Pos)
2243 #define CAN_TXBTIE_TIE7_Pos         7            /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 7 */
2244 #define CAN_TXBTIE_TIE7             (0x1u << CAN_TXBTIE_TIE7_Pos)
2245 #define CAN_TXBTIE_TIE8_Pos         8            /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 8 */
2246 #define CAN_TXBTIE_TIE8             (0x1u << CAN_TXBTIE_TIE8_Pos)
2247 #define CAN_TXBTIE_TIE9_Pos         9            /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 9 */
2248 #define CAN_TXBTIE_TIE9             (0x1u << CAN_TXBTIE_TIE9_Pos)
2249 #define CAN_TXBTIE_TIE10_Pos        10           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 10 */
2250 #define CAN_TXBTIE_TIE10            (0x1u << CAN_TXBTIE_TIE10_Pos)
2251 #define CAN_TXBTIE_TIE11_Pos        11           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 11 */
2252 #define CAN_TXBTIE_TIE11            (0x1u << CAN_TXBTIE_TIE11_Pos)
2253 #define CAN_TXBTIE_TIE12_Pos        12           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 12 */
2254 #define CAN_TXBTIE_TIE12            (0x1u << CAN_TXBTIE_TIE12_Pos)
2255 #define CAN_TXBTIE_TIE13_Pos        13           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 13 */
2256 #define CAN_TXBTIE_TIE13            (0x1u << CAN_TXBTIE_TIE13_Pos)
2257 #define CAN_TXBTIE_TIE14_Pos        14           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 14 */
2258 #define CAN_TXBTIE_TIE14            (0x1u << CAN_TXBTIE_TIE14_Pos)
2259 #define CAN_TXBTIE_TIE15_Pos        15           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 15 */
2260 #define CAN_TXBTIE_TIE15            (0x1u << CAN_TXBTIE_TIE15_Pos)
2261 #define CAN_TXBTIE_TIE16_Pos        16           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 16 */
2262 #define CAN_TXBTIE_TIE16            (0x1u << CAN_TXBTIE_TIE16_Pos)
2263 #define CAN_TXBTIE_TIE17_Pos        17           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 17 */
2264 #define CAN_TXBTIE_TIE17            (0x1u << CAN_TXBTIE_TIE17_Pos)
2265 #define CAN_TXBTIE_TIE18_Pos        18           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 18 */
2266 #define CAN_TXBTIE_TIE18            (0x1u << CAN_TXBTIE_TIE18_Pos)
2267 #define CAN_TXBTIE_TIE19_Pos        19           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 19 */
2268 #define CAN_TXBTIE_TIE19            (0x1u << CAN_TXBTIE_TIE19_Pos)
2269 #define CAN_TXBTIE_TIE20_Pos        20           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 20 */
2270 #define CAN_TXBTIE_TIE20            (0x1u << CAN_TXBTIE_TIE20_Pos)
2271 #define CAN_TXBTIE_TIE21_Pos        21           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 21 */
2272 #define CAN_TXBTIE_TIE21            (0x1u << CAN_TXBTIE_TIE21_Pos)
2273 #define CAN_TXBTIE_TIE22_Pos        22           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 22 */
2274 #define CAN_TXBTIE_TIE22            (0x1u << CAN_TXBTIE_TIE22_Pos)
2275 #define CAN_TXBTIE_TIE23_Pos        23           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 23 */
2276 #define CAN_TXBTIE_TIE23            (0x1u << CAN_TXBTIE_TIE23_Pos)
2277 #define CAN_TXBTIE_TIE24_Pos        24           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 24 */
2278 #define CAN_TXBTIE_TIE24            (0x1u << CAN_TXBTIE_TIE24_Pos)
2279 #define CAN_TXBTIE_TIE25_Pos        25           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 25 */
2280 #define CAN_TXBTIE_TIE25            (0x1u << CAN_TXBTIE_TIE25_Pos)
2281 #define CAN_TXBTIE_TIE26_Pos        26           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 26 */
2282 #define CAN_TXBTIE_TIE26            (0x1u << CAN_TXBTIE_TIE26_Pos)
2283 #define CAN_TXBTIE_TIE27_Pos        27           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 27 */
2284 #define CAN_TXBTIE_TIE27            (0x1u << CAN_TXBTIE_TIE27_Pos)
2285 #define CAN_TXBTIE_TIE28_Pos        28           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 28 */
2286 #define CAN_TXBTIE_TIE28            (0x1u << CAN_TXBTIE_TIE28_Pos)
2287 #define CAN_TXBTIE_TIE29_Pos        29           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 29 */
2288 #define CAN_TXBTIE_TIE29            (0x1u << CAN_TXBTIE_TIE29_Pos)
2289 #define CAN_TXBTIE_TIE30_Pos        30           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 30 */
2290 #define CAN_TXBTIE_TIE30            (0x1u << CAN_TXBTIE_TIE30_Pos)
2291 #define CAN_TXBTIE_TIE31_Pos        31           /**< \brief (CAN_TXBTIE) Transmission Interrupt Enable 31 */
2292 #define CAN_TXBTIE_TIE31            (0x1u << CAN_TXBTIE_TIE31_Pos)
2293 #define CAN_TXBTIE_MASK             0xFFFFFFFFu  /**< \brief (CAN_TXBTIE) MASK Register */
2294
2295 /* -------- CAN_TXBCIE : (CAN Offset: 0xE4) (R/W 32) Tx Buffer Cancellation Finished Interrupt Enable -------- */
2296 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2297 typedef union {
2298   struct {
2299     uint32_t CFIE0:1;          /*!< bit:      0  Cancellation Finished Interrupt Enable 0 */
2300     uint32_t CFIE1:1;          /*!< bit:      1  Cancellation Finished Interrupt Enable 1 */
2301     uint32_t CFIE2:1;          /*!< bit:      2  Cancellation Finished Interrupt Enable 2 */
2302     uint32_t CFIE3:1;          /*!< bit:      3  Cancellation Finished Interrupt Enable 3 */
2303     uint32_t CFIE4:1;          /*!< bit:      4  Cancellation Finished Interrupt Enable 4 */
2304     uint32_t CFIE5:1;          /*!< bit:      5  Cancellation Finished Interrupt Enable 5 */
2305     uint32_t CFIE6:1;          /*!< bit:      6  Cancellation Finished Interrupt Enable 6 */
2306     uint32_t CFIE7:1;          /*!< bit:      7  Cancellation Finished Interrupt Enable 7 */
2307     uint32_t CFIE8:1;          /*!< bit:      8  Cancellation Finished Interrupt Enable 8 */
2308     uint32_t CFIE9:1;          /*!< bit:      9  Cancellation Finished Interrupt Enable 9 */
2309     uint32_t CFIE10:1;         /*!< bit:     10  Cancellation Finished Interrupt Enable 10 */
2310     uint32_t CFIE11:1;         /*!< bit:     11  Cancellation Finished Interrupt Enable 11 */
2311     uint32_t CFIE12:1;         /*!< bit:     12  Cancellation Finished Interrupt Enable 12 */
2312     uint32_t CFIE13:1;         /*!< bit:     13  Cancellation Finished Interrupt Enable 13 */
2313     uint32_t CFIE14:1;         /*!< bit:     14  Cancellation Finished Interrupt Enable 14 */
2314     uint32_t CFIE15:1;         /*!< bit:     15  Cancellation Finished Interrupt Enable 15 */
2315     uint32_t CFIE16:1;         /*!< bit:     16  Cancellation Finished Interrupt Enable 16 */
2316     uint32_t CFIE17:1;         /*!< bit:     17  Cancellation Finished Interrupt Enable 17 */
2317     uint32_t CFIE18:1;         /*!< bit:     18  Cancellation Finished Interrupt Enable 18 */
2318     uint32_t CFIE19:1;         /*!< bit:     19  Cancellation Finished Interrupt Enable 19 */
2319     uint32_t CFIE20:1;         /*!< bit:     20  Cancellation Finished Interrupt Enable 20 */
2320     uint32_t CFIE21:1;         /*!< bit:     21  Cancellation Finished Interrupt Enable 21 */
2321     uint32_t CFIE22:1;         /*!< bit:     22  Cancellation Finished Interrupt Enable 22 */
2322     uint32_t CFIE23:1;         /*!< bit:     23  Cancellation Finished Interrupt Enable 23 */
2323     uint32_t CFIE24:1;         /*!< bit:     24  Cancellation Finished Interrupt Enable 24 */
2324     uint32_t CFIE25:1;         /*!< bit:     25  Cancellation Finished Interrupt Enable 25 */
2325     uint32_t CFIE26:1;         /*!< bit:     26  Cancellation Finished Interrupt Enable 26 */
2326     uint32_t CFIE27:1;         /*!< bit:     27  Cancellation Finished Interrupt Enable 27 */
2327     uint32_t CFIE28:1;         /*!< bit:     28  Cancellation Finished Interrupt Enable 28 */
2328     uint32_t CFIE29:1;         /*!< bit:     29  Cancellation Finished Interrupt Enable 29 */
2329     uint32_t CFIE30:1;         /*!< bit:     30  Cancellation Finished Interrupt Enable 30 */
2330     uint32_t CFIE31:1;         /*!< bit:     31  Cancellation Finished Interrupt Enable 31 */
2331   } bit;                       /*!< Structure used for bit  access                  */
2332   uint32_t reg;                /*!< Type      used for register access              */
2333 } CAN_TXBCIE_Type;
2334 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2335
2336 #define CAN_TXBCIE_OFFSET           0xE4         /**< \brief (CAN_TXBCIE offset) Tx Buffer Cancellation Finished Interrupt Enable */
2337 #define CAN_TXBCIE_RESETVALUE       0x00000000u  /**< \brief (CAN_TXBCIE reset_value) Tx Buffer Cancellation Finished Interrupt Enable */
2338
2339 #define CAN_TXBCIE_CFIE0_Pos        0            /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 0 */
2340 #define CAN_TXBCIE_CFIE0            (0x1u << CAN_TXBCIE_CFIE0_Pos)
2341 #define CAN_TXBCIE_CFIE1_Pos        1            /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 1 */
2342 #define CAN_TXBCIE_CFIE1            (0x1u << CAN_TXBCIE_CFIE1_Pos)
2343 #define CAN_TXBCIE_CFIE2_Pos        2            /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 2 */
2344 #define CAN_TXBCIE_CFIE2            (0x1u << CAN_TXBCIE_CFIE2_Pos)
2345 #define CAN_TXBCIE_CFIE3_Pos        3            /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 3 */
2346 #define CAN_TXBCIE_CFIE3            (0x1u << CAN_TXBCIE_CFIE3_Pos)
2347 #define CAN_TXBCIE_CFIE4_Pos        4            /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 4 */
2348 #define CAN_TXBCIE_CFIE4            (0x1u << CAN_TXBCIE_CFIE4_Pos)
2349 #define CAN_TXBCIE_CFIE5_Pos        5            /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 5 */
2350 #define CAN_TXBCIE_CFIE5            (0x1u << CAN_TXBCIE_CFIE5_Pos)
2351 #define CAN_TXBCIE_CFIE6_Pos        6            /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 6 */
2352 #define CAN_TXBCIE_CFIE6            (0x1u << CAN_TXBCIE_CFIE6_Pos)
2353 #define CAN_TXBCIE_CFIE7_Pos        7            /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 7 */
2354 #define CAN_TXBCIE_CFIE7            (0x1u << CAN_TXBCIE_CFIE7_Pos)
2355 #define CAN_TXBCIE_CFIE8_Pos        8            /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 8 */
2356 #define CAN_TXBCIE_CFIE8            (0x1u << CAN_TXBCIE_CFIE8_Pos)
2357 #define CAN_TXBCIE_CFIE9_Pos        9            /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 9 */
2358 #define CAN_TXBCIE_CFIE9            (0x1u << CAN_TXBCIE_CFIE9_Pos)
2359 #define CAN_TXBCIE_CFIE10_Pos       10           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 10 */
2360 #define CAN_TXBCIE_CFIE10           (0x1u << CAN_TXBCIE_CFIE10_Pos)
2361 #define CAN_TXBCIE_CFIE11_Pos       11           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 11 */
2362 #define CAN_TXBCIE_CFIE11           (0x1u << CAN_TXBCIE_CFIE11_Pos)
2363 #define CAN_TXBCIE_CFIE12_Pos       12           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 12 */
2364 #define CAN_TXBCIE_CFIE12           (0x1u << CAN_TXBCIE_CFIE12_Pos)
2365 #define CAN_TXBCIE_CFIE13_Pos       13           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 13 */
2366 #define CAN_TXBCIE_CFIE13           (0x1u << CAN_TXBCIE_CFIE13_Pos)
2367 #define CAN_TXBCIE_CFIE14_Pos       14           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 14 */
2368 #define CAN_TXBCIE_CFIE14           (0x1u << CAN_TXBCIE_CFIE14_Pos)
2369 #define CAN_TXBCIE_CFIE15_Pos       15           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 15 */
2370 #define CAN_TXBCIE_CFIE15           (0x1u << CAN_TXBCIE_CFIE15_Pos)
2371 #define CAN_TXBCIE_CFIE16_Pos       16           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 16 */
2372 #define CAN_TXBCIE_CFIE16           (0x1u << CAN_TXBCIE_CFIE16_Pos)
2373 #define CAN_TXBCIE_CFIE17_Pos       17           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 17 */
2374 #define CAN_TXBCIE_CFIE17           (0x1u << CAN_TXBCIE_CFIE17_Pos)
2375 #define CAN_TXBCIE_CFIE18_Pos       18           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 18 */
2376 #define CAN_TXBCIE_CFIE18           (0x1u << CAN_TXBCIE_CFIE18_Pos)
2377 #define CAN_TXBCIE_CFIE19_Pos       19           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 19 */
2378 #define CAN_TXBCIE_CFIE19           (0x1u << CAN_TXBCIE_CFIE19_Pos)
2379 #define CAN_TXBCIE_CFIE20_Pos       20           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 20 */
2380 #define CAN_TXBCIE_CFIE20           (0x1u << CAN_TXBCIE_CFIE20_Pos)
2381 #define CAN_TXBCIE_CFIE21_Pos       21           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 21 */
2382 #define CAN_TXBCIE_CFIE21           (0x1u << CAN_TXBCIE_CFIE21_Pos)
2383 #define CAN_TXBCIE_CFIE22_Pos       22           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 22 */
2384 #define CAN_TXBCIE_CFIE22           (0x1u << CAN_TXBCIE_CFIE22_Pos)
2385 #define CAN_TXBCIE_CFIE23_Pos       23           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 23 */
2386 #define CAN_TXBCIE_CFIE23           (0x1u << CAN_TXBCIE_CFIE23_Pos)
2387 #define CAN_TXBCIE_CFIE24_Pos       24           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 24 */
2388 #define CAN_TXBCIE_CFIE24           (0x1u << CAN_TXBCIE_CFIE24_Pos)
2389 #define CAN_TXBCIE_CFIE25_Pos       25           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 25 */
2390 #define CAN_TXBCIE_CFIE25           (0x1u << CAN_TXBCIE_CFIE25_Pos)
2391 #define CAN_TXBCIE_CFIE26_Pos       26           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 26 */
2392 #define CAN_TXBCIE_CFIE26           (0x1u << CAN_TXBCIE_CFIE26_Pos)
2393 #define CAN_TXBCIE_CFIE27_Pos       27           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 27 */
2394 #define CAN_TXBCIE_CFIE27           (0x1u << CAN_TXBCIE_CFIE27_Pos)
2395 #define CAN_TXBCIE_CFIE28_Pos       28           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 28 */
2396 #define CAN_TXBCIE_CFIE28           (0x1u << CAN_TXBCIE_CFIE28_Pos)
2397 #define CAN_TXBCIE_CFIE29_Pos       29           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 29 */
2398 #define CAN_TXBCIE_CFIE29           (0x1u << CAN_TXBCIE_CFIE29_Pos)
2399 #define CAN_TXBCIE_CFIE30_Pos       30           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 30 */
2400 #define CAN_TXBCIE_CFIE30           (0x1u << CAN_TXBCIE_CFIE30_Pos)
2401 #define CAN_TXBCIE_CFIE31_Pos       31           /**< \brief (CAN_TXBCIE) Cancellation Finished Interrupt Enable 31 */
2402 #define CAN_TXBCIE_CFIE31           (0x1u << CAN_TXBCIE_CFIE31_Pos)
2403 #define CAN_TXBCIE_MASK             0xFFFFFFFFu  /**< \brief (CAN_TXBCIE) MASK Register */
2404
2405 /* -------- CAN_TXEFC : (CAN Offset: 0xF0) (R/W 32) Tx Event FIFO Configuration -------- */
2406 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2407 typedef union {
2408   struct {
2409     uint32_t EFSA:16;          /*!< bit:  0..15  Event FIFO Start Address           */
2410     uint32_t EFS:6;            /*!< bit: 16..21  Event FIFO Size                    */
2411     uint32_t :2;               /*!< bit: 22..23  Reserved                           */
2412     uint32_t EFWM:6;           /*!< bit: 24..29  Event FIFO Watermark               */
2413     uint32_t :2;               /*!< bit: 30..31  Reserved                           */
2414   } bit;                       /*!< Structure used for bit  access                  */
2415   uint32_t reg;                /*!< Type      used for register access              */
2416 } CAN_TXEFC_Type;
2417 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2418
2419 #define CAN_TXEFC_OFFSET            0xF0         /**< \brief (CAN_TXEFC offset) Tx Event FIFO Configuration */
2420 #define CAN_TXEFC_RESETVALUE        0x00000000u  /**< \brief (CAN_TXEFC reset_value) Tx Event FIFO Configuration */
2421
2422 #define CAN_TXEFC_EFSA_Pos          0            /**< \brief (CAN_TXEFC) Event FIFO Start Address */
2423 #define CAN_TXEFC_EFSA_Msk          (0xFFFFu << CAN_TXEFC_EFSA_Pos)
2424 #define CAN_TXEFC_EFSA(value)       (CAN_TXEFC_EFSA_Msk & ((value) << CAN_TXEFC_EFSA_Pos))
2425 #define CAN_TXEFC_EFS_Pos           16           /**< \brief (CAN_TXEFC) Event FIFO Size */
2426 #define CAN_TXEFC_EFS_Msk           (0x3Fu << CAN_TXEFC_EFS_Pos)
2427 #define CAN_TXEFC_EFS(value)        (CAN_TXEFC_EFS_Msk & ((value) << CAN_TXEFC_EFS_Pos))
2428 #define CAN_TXEFC_EFWM_Pos          24           /**< \brief (CAN_TXEFC) Event FIFO Watermark */
2429 #define CAN_TXEFC_EFWM_Msk          (0x3Fu << CAN_TXEFC_EFWM_Pos)
2430 #define CAN_TXEFC_EFWM(value)       (CAN_TXEFC_EFWM_Msk & ((value) << CAN_TXEFC_EFWM_Pos))
2431 #define CAN_TXEFC_MASK              0x3F3FFFFFu  /**< \brief (CAN_TXEFC) MASK Register */
2432
2433 /* -------- CAN_TXEFS : (CAN Offset: 0xF4) (R/  32) Tx Event FIFO Status -------- */
2434 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2435 typedef union {
2436   struct {
2437     uint32_t EFFL:6;           /*!< bit:  0.. 5  Event FIFO Fill Level              */
2438     uint32_t :2;               /*!< bit:  6.. 7  Reserved                           */
2439     uint32_t EFGI:5;           /*!< bit:  8..12  Event FIFO Get Index               */
2440     uint32_t :3;               /*!< bit: 13..15  Reserved                           */
2441     uint32_t EFPI:5;           /*!< bit: 16..20  Event FIFO Put Index               */
2442     uint32_t :3;               /*!< bit: 21..23  Reserved                           */
2443     uint32_t EFF:1;            /*!< bit:     24  Event FIFO Full                    */
2444     uint32_t TEFL:1;           /*!< bit:     25  Tx Event FIFO Element Lost         */
2445     uint32_t :6;               /*!< bit: 26..31  Reserved                           */
2446   } bit;                       /*!< Structure used for bit  access                  */
2447   uint32_t reg;                /*!< Type      used for register access              */
2448 } CAN_TXEFS_Type;
2449 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2450
2451 #define CAN_TXEFS_OFFSET            0xF4         /**< \brief (CAN_TXEFS offset) Tx Event FIFO Status */
2452 #define CAN_TXEFS_RESETVALUE        0x00000000u  /**< \brief (CAN_TXEFS reset_value) Tx Event FIFO Status */
2453
2454 #define CAN_TXEFS_EFFL_Pos          0            /**< \brief (CAN_TXEFS) Event FIFO Fill Level */
2455 #define CAN_TXEFS_EFFL_Msk          (0x3Fu << CAN_TXEFS_EFFL_Pos)
2456 #define CAN_TXEFS_EFFL(value)       (CAN_TXEFS_EFFL_Msk & ((value) << CAN_TXEFS_EFFL_Pos))
2457 #define CAN_TXEFS_EFGI_Pos          8            /**< \brief (CAN_TXEFS) Event FIFO Get Index */
2458 #define CAN_TXEFS_EFGI_Msk          (0x1Fu << CAN_TXEFS_EFGI_Pos)
2459 #define CAN_TXEFS_EFGI(value)       (CAN_TXEFS_EFGI_Msk & ((value) << CAN_TXEFS_EFGI_Pos))
2460 #define CAN_TXEFS_EFPI_Pos          16           /**< \brief (CAN_TXEFS) Event FIFO Put Index */
2461 #define CAN_TXEFS_EFPI_Msk          (0x1Fu << CAN_TXEFS_EFPI_Pos)
2462 #define CAN_TXEFS_EFPI(value)       (CAN_TXEFS_EFPI_Msk & ((value) << CAN_TXEFS_EFPI_Pos))
2463 #define CAN_TXEFS_EFF_Pos           24           /**< \brief (CAN_TXEFS) Event FIFO Full */
2464 #define CAN_TXEFS_EFF               (0x1u << CAN_TXEFS_EFF_Pos)
2465 #define CAN_TXEFS_TEFL_Pos          25           /**< \brief (CAN_TXEFS) Tx Event FIFO Element Lost */
2466 #define CAN_TXEFS_TEFL              (0x1u << CAN_TXEFS_TEFL_Pos)
2467 #define CAN_TXEFS_MASK              0x031F1F3Fu  /**< \brief (CAN_TXEFS) MASK Register */
2468
2469 /* -------- CAN_TXEFA : (CAN Offset: 0xF8) (R/W 32) Tx Event FIFO Acknowledge -------- */
2470 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2471 typedef union {
2472   struct {
2473     uint32_t EFAI:5;           /*!< bit:  0.. 4  Event FIFO Acknowledge Index       */
2474     uint32_t :27;              /*!< bit:  5..31  Reserved                           */
2475   } bit;                       /*!< Structure used for bit  access                  */
2476   uint32_t reg;                /*!< Type      used for register access              */
2477 } CAN_TXEFA_Type;
2478 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2479
2480 #define CAN_TXEFA_OFFSET            0xF8         /**< \brief (CAN_TXEFA offset) Tx Event FIFO Acknowledge */
2481 #define CAN_TXEFA_RESETVALUE        0x00000000u  /**< \brief (CAN_TXEFA reset_value) Tx Event FIFO Acknowledge */
2482
2483 #define CAN_TXEFA_EFAI_Pos          0            /**< \brief (CAN_TXEFA) Event FIFO Acknowledge Index */
2484 #define CAN_TXEFA_EFAI_Msk          (0x1Fu << CAN_TXEFA_EFAI_Pos)
2485 #define CAN_TXEFA_EFAI(value)       (CAN_TXEFA_EFAI_Msk & ((value) << CAN_TXEFA_EFAI_Pos))
2486 #define CAN_TXEFA_MASK              0x0000001Fu  /**< \brief (CAN_TXEFA) MASK Register */
2487
2488 /* -------- CAN_RXBE_0 : (CAN Offset: 0x00) (R/W 32) Rx Buffer Element 0 -------- */
2489 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2490 typedef union {
2491   struct {
2492     uint32_t ID:29;            /*!< bit:  0..28  Identifier                         */
2493     uint32_t RTR:1;            /*!< bit:     29  Remote Transmission Request        */
2494     uint32_t XTD:1;            /*!< bit:     30  Extended Identifier                */
2495     uint32_t ESI:1;            /*!< bit:     31  Error State Indicator              */
2496   } bit;                       /*!< Structure used for bit  access                  */
2497   uint32_t reg;                /*!< Type      used for register access              */
2498 } CAN_RXBE_0_Type;
2499 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2500
2501 #define CAN_RXBE_0_OFFSET           0x00         /**< \brief (CAN_RXBE_0 offset) Rx Buffer Element 0 */
2502 #define CAN_RXBE_0_RESETVALUE       0x00000000u  /**< \brief (CAN_RXBE_0 reset_value) Rx Buffer Element 0 */
2503
2504 #define CAN_RXBE_0_ID_Pos           0            /**< \brief (CAN_RXBE_0) Identifier */
2505 #define CAN_RXBE_0_ID_Msk           (0x1FFFFFFFu << CAN_RXBE_0_ID_Pos)
2506 #define CAN_RXBE_0_ID(value)        (CAN_RXBE_0_ID_Msk & ((value) << CAN_RXBE_0_ID_Pos))
2507 #define CAN_RXBE_0_RTR_Pos          29           /**< \brief (CAN_RXBE_0) Remote Transmission Request */
2508 #define CAN_RXBE_0_RTR              (0x1u << CAN_RXBE_0_RTR_Pos)
2509 #define CAN_RXBE_0_XTD_Pos          30           /**< \brief (CAN_RXBE_0) Extended Identifier */
2510 #define CAN_RXBE_0_XTD              (0x1u << CAN_RXBE_0_XTD_Pos)
2511 #define CAN_RXBE_0_ESI_Pos          31           /**< \brief (CAN_RXBE_0) Error State Indicator */
2512 #define CAN_RXBE_0_ESI              (0x1u << CAN_RXBE_0_ESI_Pos)
2513 #define CAN_RXBE_0_MASK             0xFFFFFFFFu  /**< \brief (CAN_RXBE_0) MASK Register */
2514
2515 /* -------- CAN_RXBE_1 : (CAN Offset: 0x04) (R/W 32) Rx Buffer Element 1 -------- */
2516 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2517 typedef union {
2518   struct {
2519     uint32_t RXTS:16;          /*!< bit:  0..15  Rx Timestamp                       */
2520     uint32_t DLC:4;            /*!< bit: 16..19  Data Length Code                   */
2521     uint32_t BRS:1;            /*!< bit:     20  Bit Rate Search                    */
2522     uint32_t FDF:1;            /*!< bit:     21  FD Format                          */
2523     uint32_t :2;               /*!< bit: 22..23  Reserved                           */
2524     uint32_t FIDX:7;           /*!< bit: 24..30  Filter Index                       */
2525     uint32_t ANMF:1;           /*!< bit:     31  Accepted Non-matching Frame        */
2526   } bit;                       /*!< Structure used for bit  access                  */
2527   uint32_t reg;                /*!< Type      used for register access              */
2528 } CAN_RXBE_1_Type;
2529 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2530
2531 #define CAN_RXBE_1_OFFSET           0x04         /**< \brief (CAN_RXBE_1 offset) Rx Buffer Element 1 */
2532 #define CAN_RXBE_1_RESETVALUE       0x00000000u  /**< \brief (CAN_RXBE_1 reset_value) Rx Buffer Element 1 */
2533
2534 #define CAN_RXBE_1_RXTS_Pos         0            /**< \brief (CAN_RXBE_1) Rx Timestamp */
2535 #define CAN_RXBE_1_RXTS_Msk         (0xFFFFu << CAN_RXBE_1_RXTS_Pos)
2536 #define CAN_RXBE_1_RXTS(value)      (CAN_RXBE_1_RXTS_Msk & ((value) << CAN_RXBE_1_RXTS_Pos))
2537 #define CAN_RXBE_1_DLC_Pos          16           /**< \brief (CAN_RXBE_1) Data Length Code */
2538 #define CAN_RXBE_1_DLC_Msk          (0xFu << CAN_RXBE_1_DLC_Pos)
2539 #define CAN_RXBE_1_DLC(value)       (CAN_RXBE_1_DLC_Msk & ((value) << CAN_RXBE_1_DLC_Pos))
2540 #define CAN_RXBE_1_BRS_Pos          20           /**< \brief (CAN_RXBE_1) Bit Rate Search */
2541 #define CAN_RXBE_1_BRS              (0x1u << CAN_RXBE_1_BRS_Pos)
2542 #define CAN_RXBE_1_FDF_Pos          21           /**< \brief (CAN_RXBE_1) FD Format */
2543 #define CAN_RXBE_1_FDF              (0x1u << CAN_RXBE_1_FDF_Pos)
2544 #define CAN_RXBE_1_FIDX_Pos         24           /**< \brief (CAN_RXBE_1) Filter Index */
2545 #define CAN_RXBE_1_FIDX_Msk         (0x7Fu << CAN_RXBE_1_FIDX_Pos)
2546 #define CAN_RXBE_1_FIDX(value)      (CAN_RXBE_1_FIDX_Msk & ((value) << CAN_RXBE_1_FIDX_Pos))
2547 #define CAN_RXBE_1_ANMF_Pos         31           /**< \brief (CAN_RXBE_1) Accepted Non-matching Frame */
2548 #define CAN_RXBE_1_ANMF             (0x1u << CAN_RXBE_1_ANMF_Pos)
2549 #define CAN_RXBE_1_MASK             0xFF3FFFFFu  /**< \brief (CAN_RXBE_1) MASK Register */
2550
2551 /* -------- CAN_RXBE_DATA : (CAN Offset: 0x08) (R/W 32) Rx Buffer Element Data -------- */
2552 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2553 typedef union {
2554   struct {
2555     uint32_t DB0:8;            /*!< bit:  0.. 7  Data Byte 0                        */
2556     uint32_t DB1:8;            /*!< bit:  8..15  Data Byte 1                        */
2557     uint32_t DB2:8;            /*!< bit: 16..23  Data Byte 2                        */
2558     uint32_t DB3:8;            /*!< bit: 24..31  Data Byte 3                        */
2559   } bit;                       /*!< Structure used for bit  access                  */
2560   uint32_t reg;                /*!< Type      used for register access              */
2561 } CAN_RXBE_DATA_Type;
2562 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2563
2564 #define CAN_RXBE_DATA_OFFSET        0x08         /**< \brief (CAN_RXBE_DATA offset) Rx Buffer Element Data */
2565 #define CAN_RXBE_DATA_RESETVALUE    0x00000000u  /**< \brief (CAN_RXBE_DATA reset_value) Rx Buffer Element Data */
2566
2567 #define CAN_RXBE_DATA_DB0_Pos       0            /**< \brief (CAN_RXBE_DATA) Data Byte 0 */
2568 #define CAN_RXBE_DATA_DB0_Msk       (0xFFu << CAN_RXBE_DATA_DB0_Pos)
2569 #define CAN_RXBE_DATA_DB0(value)    (CAN_RXBE_DATA_DB0_Msk & ((value) << CAN_RXBE_DATA_DB0_Pos))
2570 #define CAN_RXBE_DATA_DB1_Pos       8            /**< \brief (CAN_RXBE_DATA) Data Byte 1 */
2571 #define CAN_RXBE_DATA_DB1_Msk       (0xFFu << CAN_RXBE_DATA_DB1_Pos)
2572 #define CAN_RXBE_DATA_DB1(value)    (CAN_RXBE_DATA_DB1_Msk & ((value) << CAN_RXBE_DATA_DB1_Pos))
2573 #define CAN_RXBE_DATA_DB2_Pos       16           /**< \brief (CAN_RXBE_DATA) Data Byte 2 */
2574 #define CAN_RXBE_DATA_DB2_Msk       (0xFFu << CAN_RXBE_DATA_DB2_Pos)
2575 #define CAN_RXBE_DATA_DB2(value)    (CAN_RXBE_DATA_DB2_Msk & ((value) << CAN_RXBE_DATA_DB2_Pos))
2576 #define CAN_RXBE_DATA_DB3_Pos       24           /**< \brief (CAN_RXBE_DATA) Data Byte 3 */
2577 #define CAN_RXBE_DATA_DB3_Msk       (0xFFu << CAN_RXBE_DATA_DB3_Pos)
2578 #define CAN_RXBE_DATA_DB3(value)    (CAN_RXBE_DATA_DB3_Msk & ((value) << CAN_RXBE_DATA_DB3_Pos))
2579 #define CAN_RXBE_DATA_MASK          0xFFFFFFFFu  /**< \brief (CAN_RXBE_DATA) MASK Register */
2580
2581 /* -------- CAN_RXF0E_0 : (CAN Offset: 0x00) (R/W 32) Rx FIFO 0 Element 0 -------- */
2582 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2583 typedef union {
2584   struct {
2585     uint32_t ID:29;            /*!< bit:  0..28  Identifier                         */
2586     uint32_t RTR:1;            /*!< bit:     29  Remote Transmission Request        */
2587     uint32_t XTD:1;            /*!< bit:     30  Extended Identifier                */
2588     uint32_t ESI:1;            /*!< bit:     31  Error State Indicator              */
2589   } bit;                       /*!< Structure used for bit  access                  */
2590   uint32_t reg;                /*!< Type      used for register access              */
2591 } CAN_RXF0E_0_Type;
2592 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2593
2594 #define CAN_RXF0E_0_OFFSET          0x00         /**< \brief (CAN_RXF0E_0 offset) Rx FIFO 0 Element 0 */
2595 #define CAN_RXF0E_0_RESETVALUE      0x00000000u  /**< \brief (CAN_RXF0E_0 reset_value) Rx FIFO 0 Element 0 */
2596
2597 #define CAN_RXF0E_0_ID_Pos          0            /**< \brief (CAN_RXF0E_0) Identifier */
2598 #define CAN_RXF0E_0_ID_Msk          (0x1FFFFFFFu << CAN_RXF0E_0_ID_Pos)
2599 #define CAN_RXF0E_0_ID(value)       (CAN_RXF0E_0_ID_Msk & ((value) << CAN_RXF0E_0_ID_Pos))
2600 #define CAN_RXF0E_0_RTR_Pos         29           /**< \brief (CAN_RXF0E_0) Remote Transmission Request */
2601 #define CAN_RXF0E_0_RTR             (0x1u << CAN_RXF0E_0_RTR_Pos)
2602 #define CAN_RXF0E_0_XTD_Pos         30           /**< \brief (CAN_RXF0E_0) Extended Identifier */
2603 #define CAN_RXF0E_0_XTD             (0x1u << CAN_RXF0E_0_XTD_Pos)
2604 #define CAN_RXF0E_0_ESI_Pos         31           /**< \brief (CAN_RXF0E_0) Error State Indicator */
2605 #define CAN_RXF0E_0_ESI             (0x1u << CAN_RXF0E_0_ESI_Pos)
2606 #define CAN_RXF0E_0_MASK            0xFFFFFFFFu  /**< \brief (CAN_RXF0E_0) MASK Register */
2607
2608 /* -------- CAN_RXF0E_1 : (CAN Offset: 0x04) (R/W 32) Rx FIFO 0 Element 1 -------- */
2609 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2610 typedef union {
2611   struct {
2612     uint32_t RXTS:16;          /*!< bit:  0..15  Rx Timestamp                       */
2613     uint32_t DLC:4;            /*!< bit: 16..19  Data Length Code                   */
2614     uint32_t BRS:1;            /*!< bit:     20  Bit Rate Search                    */
2615     uint32_t FDF:1;            /*!< bit:     21  FD Format                          */
2616     uint32_t :2;               /*!< bit: 22..23  Reserved                           */
2617     uint32_t FIDX:7;           /*!< bit: 24..30  Filter Index                       */
2618     uint32_t ANMF:1;           /*!< bit:     31  Accepted Non-matching Frame        */
2619   } bit;                       /*!< Structure used for bit  access                  */
2620   uint32_t reg;                /*!< Type      used for register access              */
2621 } CAN_RXF0E_1_Type;
2622 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2623
2624 #define CAN_RXF0E_1_OFFSET          0x04         /**< \brief (CAN_RXF0E_1 offset) Rx FIFO 0 Element 1 */
2625 #define CAN_RXF0E_1_RESETVALUE      0x00000000u  /**< \brief (CAN_RXF0E_1 reset_value) Rx FIFO 0 Element 1 */
2626
2627 #define CAN_RXF0E_1_RXTS_Pos        0            /**< \brief (CAN_RXF0E_1) Rx Timestamp */
2628 #define CAN_RXF0E_1_RXTS_Msk        (0xFFFFu << CAN_RXF0E_1_RXTS_Pos)
2629 #define CAN_RXF0E_1_RXTS(value)     (CAN_RXF0E_1_RXTS_Msk & ((value) << CAN_RXF0E_1_RXTS_Pos))
2630 #define CAN_RXF0E_1_DLC_Pos         16           /**< \brief (CAN_RXF0E_1) Data Length Code */
2631 #define CAN_RXF0E_1_DLC_Msk         (0xFu << CAN_RXF0E_1_DLC_Pos)
2632 #define CAN_RXF0E_1_DLC(value)      (CAN_RXF0E_1_DLC_Msk & ((value) << CAN_RXF0E_1_DLC_Pos))
2633 #define CAN_RXF0E_1_BRS_Pos         20           /**< \brief (CAN_RXF0E_1) Bit Rate Search */
2634 #define CAN_RXF0E_1_BRS             (0x1u << CAN_RXF0E_1_BRS_Pos)
2635 #define CAN_RXF0E_1_FDF_Pos         21           /**< \brief (CAN_RXF0E_1) FD Format */
2636 #define CAN_RXF0E_1_FDF             (0x1u << CAN_RXF0E_1_FDF_Pos)
2637 #define CAN_RXF0E_1_FIDX_Pos        24           /**< \brief (CAN_RXF0E_1) Filter Index */
2638 #define CAN_RXF0E_1_FIDX_Msk        (0x7Fu << CAN_RXF0E_1_FIDX_Pos)
2639 #define CAN_RXF0E_1_FIDX(value)     (CAN_RXF0E_1_FIDX_Msk & ((value) << CAN_RXF0E_1_FIDX_Pos))
2640 #define CAN_RXF0E_1_ANMF_Pos        31           /**< \brief (CAN_RXF0E_1) Accepted Non-matching Frame */
2641 #define CAN_RXF0E_1_ANMF            (0x1u << CAN_RXF0E_1_ANMF_Pos)
2642 #define CAN_RXF0E_1_MASK            0xFF3FFFFFu  /**< \brief (CAN_RXF0E_1) MASK Register */
2643
2644 /* -------- CAN_RXF0E_DATA : (CAN Offset: 0x08) (R/W 32) Rx FIFO 0 Element Data -------- */
2645 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2646 typedef union {
2647   struct {
2648     uint32_t DB0:8;            /*!< bit:  0.. 7  Data Byte 0                        */
2649     uint32_t DB1:8;            /*!< bit:  8..15  Data Byte 1                        */
2650     uint32_t DB2:8;            /*!< bit: 16..23  Data Byte 2                        */
2651     uint32_t DB3:8;            /*!< bit: 24..31  Data Byte 3                        */
2652   } bit;                       /*!< Structure used for bit  access                  */
2653   uint32_t reg;                /*!< Type      used for register access              */
2654 } CAN_RXF0E_DATA_Type;
2655 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2656
2657 #define CAN_RXF0E_DATA_OFFSET       0x08         /**< \brief (CAN_RXF0E_DATA offset) Rx FIFO 0 Element Data */
2658 #define CAN_RXF0E_DATA_RESETVALUE   0x00000000u  /**< \brief (CAN_RXF0E_DATA reset_value) Rx FIFO 0 Element Data */
2659
2660 #define CAN_RXF0E_DATA_DB0_Pos      0            /**< \brief (CAN_RXF0E_DATA) Data Byte 0 */
2661 #define CAN_RXF0E_DATA_DB0_Msk      (0xFFu << CAN_RXF0E_DATA_DB0_Pos)
2662 #define CAN_RXF0E_DATA_DB0(value)   (CAN_RXF0E_DATA_DB0_Msk & ((value) << CAN_RXF0E_DATA_DB0_Pos))
2663 #define CAN_RXF0E_DATA_DB1_Pos      8            /**< \brief (CAN_RXF0E_DATA) Data Byte 1 */
2664 #define CAN_RXF0E_DATA_DB1_Msk      (0xFFu << CAN_RXF0E_DATA_DB1_Pos)
2665 #define CAN_RXF0E_DATA_DB1(value)   (CAN_RXF0E_DATA_DB1_Msk & ((value) << CAN_RXF0E_DATA_DB1_Pos))
2666 #define CAN_RXF0E_DATA_DB2_Pos      16           /**< \brief (CAN_RXF0E_DATA) Data Byte 2 */
2667 #define CAN_RXF0E_DATA_DB2_Msk      (0xFFu << CAN_RXF0E_DATA_DB2_Pos)
2668 #define CAN_RXF0E_DATA_DB2(value)   (CAN_RXF0E_DATA_DB2_Msk & ((value) << CAN_RXF0E_DATA_DB2_Pos))
2669 #define CAN_RXF0E_DATA_DB3_Pos      24           /**< \brief (CAN_RXF0E_DATA) Data Byte 3 */
2670 #define CAN_RXF0E_DATA_DB3_Msk      (0xFFu << CAN_RXF0E_DATA_DB3_Pos)
2671 #define CAN_RXF0E_DATA_DB3(value)   (CAN_RXF0E_DATA_DB3_Msk & ((value) << CAN_RXF0E_DATA_DB3_Pos))
2672 #define CAN_RXF0E_DATA_MASK         0xFFFFFFFFu  /**< \brief (CAN_RXF0E_DATA) MASK Register */
2673
2674 /* -------- CAN_RXF1E_0 : (CAN Offset: 0x00) (R/W 32) Rx FIFO 1 Element 0 -------- */
2675 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2676 typedef union {
2677   struct {
2678     uint32_t ID:29;            /*!< bit:  0..28  Identifier                         */
2679     uint32_t RTR:1;            /*!< bit:     29  Remote Transmission Request        */
2680     uint32_t XTD:1;            /*!< bit:     30  Extended Identifier                */
2681     uint32_t ESI:1;            /*!< bit:     31  Error State Indicator              */
2682   } bit;                       /*!< Structure used for bit  access                  */
2683   uint32_t reg;                /*!< Type      used for register access              */
2684 } CAN_RXF1E_0_Type;
2685 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2686
2687 #define CAN_RXF1E_0_OFFSET          0x00         /**< \brief (CAN_RXF1E_0 offset) Rx FIFO 1 Element 0 */
2688 #define CAN_RXF1E_0_RESETVALUE      0x00000000u  /**< \brief (CAN_RXF1E_0 reset_value) Rx FIFO 1 Element 0 */
2689
2690 #define CAN_RXF1E_0_ID_Pos          0            /**< \brief (CAN_RXF1E_0) Identifier */
2691 #define CAN_RXF1E_0_ID_Msk          (0x1FFFFFFFu << CAN_RXF1E_0_ID_Pos)
2692 #define CAN_RXF1E_0_ID(value)       (CAN_RXF1E_0_ID_Msk & ((value) << CAN_RXF1E_0_ID_Pos))
2693 #define CAN_RXF1E_0_RTR_Pos         29           /**< \brief (CAN_RXF1E_0) Remote Transmission Request */
2694 #define CAN_RXF1E_0_RTR             (0x1u << CAN_RXF1E_0_RTR_Pos)
2695 #define CAN_RXF1E_0_XTD_Pos         30           /**< \brief (CAN_RXF1E_0) Extended Identifier */
2696 #define CAN_RXF1E_0_XTD             (0x1u << CAN_RXF1E_0_XTD_Pos)
2697 #define CAN_RXF1E_0_ESI_Pos         31           /**< \brief (CAN_RXF1E_0) Error State Indicator */
2698 #define CAN_RXF1E_0_ESI             (0x1u << CAN_RXF1E_0_ESI_Pos)
2699 #define CAN_RXF1E_0_MASK            0xFFFFFFFFu  /**< \brief (CAN_RXF1E_0) MASK Register */
2700
2701 /* -------- CAN_RXF1E_1 : (CAN Offset: 0x04) (R/W 32) Rx FIFO 1 Element 1 -------- */
2702 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2703 typedef union {
2704   struct {
2705     uint32_t RXTS:16;          /*!< bit:  0..15  Rx Timestamp                       */
2706     uint32_t DLC:4;            /*!< bit: 16..19  Data Length Code                   */
2707     uint32_t BRS:1;            /*!< bit:     20  Bit Rate Search                    */
2708     uint32_t FDF:1;            /*!< bit:     21  FD Format                          */
2709     uint32_t :2;               /*!< bit: 22..23  Reserved                           */
2710     uint32_t FIDX:7;           /*!< bit: 24..30  Filter Index                       */
2711     uint32_t ANMF:1;           /*!< bit:     31  Accepted Non-matching Frame        */
2712   } bit;                       /*!< Structure used for bit  access                  */
2713   uint32_t reg;                /*!< Type      used for register access              */
2714 } CAN_RXF1E_1_Type;
2715 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2716
2717 #define CAN_RXF1E_1_OFFSET          0x04         /**< \brief (CAN_RXF1E_1 offset) Rx FIFO 1 Element 1 */
2718 #define CAN_RXF1E_1_RESETVALUE      0x00000000u  /**< \brief (CAN_RXF1E_1 reset_value) Rx FIFO 1 Element 1 */
2719
2720 #define CAN_RXF1E_1_RXTS_Pos        0            /**< \brief (CAN_RXF1E_1) Rx Timestamp */
2721 #define CAN_RXF1E_1_RXTS_Msk        (0xFFFFu << CAN_RXF1E_1_RXTS_Pos)
2722 #define CAN_RXF1E_1_RXTS(value)     (CAN_RXF1E_1_RXTS_Msk & ((value) << CAN_RXF1E_1_RXTS_Pos))
2723 #define CAN_RXF1E_1_DLC_Pos         16           /**< \brief (CAN_RXF1E_1) Data Length Code */
2724 #define CAN_RXF1E_1_DLC_Msk         (0xFu << CAN_RXF1E_1_DLC_Pos)
2725 #define CAN_RXF1E_1_DLC(value)      (CAN_RXF1E_1_DLC_Msk & ((value) << CAN_RXF1E_1_DLC_Pos))
2726 #define CAN_RXF1E_1_BRS_Pos         20           /**< \brief (CAN_RXF1E_1) Bit Rate Search */
2727 #define CAN_RXF1E_1_BRS             (0x1u << CAN_RXF1E_1_BRS_Pos)
2728 #define CAN_RXF1E_1_FDF_Pos         21           /**< \brief (CAN_RXF1E_1) FD Format */
2729 #define CAN_RXF1E_1_FDF             (0x1u << CAN_RXF1E_1_FDF_Pos)
2730 #define CAN_RXF1E_1_FIDX_Pos        24           /**< \brief (CAN_RXF1E_1) Filter Index */
2731 #define CAN_RXF1E_1_FIDX_Msk        (0x7Fu << CAN_RXF1E_1_FIDX_Pos)
2732 #define CAN_RXF1E_1_FIDX(value)     (CAN_RXF1E_1_FIDX_Msk & ((value) << CAN_RXF1E_1_FIDX_Pos))
2733 #define CAN_RXF1E_1_ANMF_Pos        31           /**< \brief (CAN_RXF1E_1) Accepted Non-matching Frame */
2734 #define CAN_RXF1E_1_ANMF            (0x1u << CAN_RXF1E_1_ANMF_Pos)
2735 #define CAN_RXF1E_1_MASK            0xFF3FFFFFu  /**< \brief (CAN_RXF1E_1) MASK Register */
2736
2737 /* -------- CAN_RXF1E_DATA : (CAN Offset: 0x08) (R/W 32) Rx FIFO 1 Element Data -------- */
2738 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2739 typedef union {
2740   struct {
2741     uint32_t DB0:8;            /*!< bit:  0.. 7  Data Byte 0                        */
2742     uint32_t DB1:8;            /*!< bit:  8..15  Data Byte 1                        */
2743     uint32_t DB2:8;            /*!< bit: 16..23  Data Byte 2                        */
2744     uint32_t DB3:8;            /*!< bit: 24..31  Data Byte 3                        */
2745   } bit;                       /*!< Structure used for bit  access                  */
2746   uint32_t reg;                /*!< Type      used for register access              */
2747 } CAN_RXF1E_DATA_Type;
2748 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2749
2750 #define CAN_RXF1E_DATA_OFFSET       0x08         /**< \brief (CAN_RXF1E_DATA offset) Rx FIFO 1 Element Data */
2751 #define CAN_RXF1E_DATA_RESETVALUE   0x00000000u  /**< \brief (CAN_RXF1E_DATA reset_value) Rx FIFO 1 Element Data */
2752
2753 #define CAN_RXF1E_DATA_DB0_Pos      0            /**< \brief (CAN_RXF1E_DATA) Data Byte 0 */
2754 #define CAN_RXF1E_DATA_DB0_Msk      (0xFFu << CAN_RXF1E_DATA_DB0_Pos)
2755 #define CAN_RXF1E_DATA_DB0(value)   (CAN_RXF1E_DATA_DB0_Msk & ((value) << CAN_RXF1E_DATA_DB0_Pos))
2756 #define CAN_RXF1E_DATA_DB1_Pos      8            /**< \brief (CAN_RXF1E_DATA) Data Byte 1 */
2757 #define CAN_RXF1E_DATA_DB1_Msk      (0xFFu << CAN_RXF1E_DATA_DB1_Pos)
2758 #define CAN_RXF1E_DATA_DB1(value)   (CAN_RXF1E_DATA_DB1_Msk & ((value) << CAN_RXF1E_DATA_DB1_Pos))
2759 #define CAN_RXF1E_DATA_DB2_Pos      16           /**< \brief (CAN_RXF1E_DATA) Data Byte 2 */
2760 #define CAN_RXF1E_DATA_DB2_Msk      (0xFFu << CAN_RXF1E_DATA_DB2_Pos)
2761 #define CAN_RXF1E_DATA_DB2(value)   (CAN_RXF1E_DATA_DB2_Msk & ((value) << CAN_RXF1E_DATA_DB2_Pos))
2762 #define CAN_RXF1E_DATA_DB3_Pos      24           /**< \brief (CAN_RXF1E_DATA) Data Byte 3 */
2763 #define CAN_RXF1E_DATA_DB3_Msk      (0xFFu << CAN_RXF1E_DATA_DB3_Pos)
2764 #define CAN_RXF1E_DATA_DB3(value)   (CAN_RXF1E_DATA_DB3_Msk & ((value) << CAN_RXF1E_DATA_DB3_Pos))
2765 #define CAN_RXF1E_DATA_MASK         0xFFFFFFFFu  /**< \brief (CAN_RXF1E_DATA) MASK Register */
2766
2767 /* -------- CAN_SIDFE_0 : (CAN Offset: 0x00) (R/W 32) Standard Message ID Filter Element -------- */
2768 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2769 typedef union {
2770   struct {
2771     uint32_t SFID2:11;         /*!< bit:  0..10  Standard Filter ID 2               */
2772     uint32_t :5;               /*!< bit: 11..15  Reserved                           */
2773     uint32_t SFID1:11;         /*!< bit: 16..26  Standard Filter ID 1               */
2774     uint32_t SFEC:3;           /*!< bit: 27..29  Standard Filter Element Configuration */
2775     uint32_t SFT:2;            /*!< bit: 30..31  Standard Filter Type               */
2776   } bit;                       /*!< Structure used for bit  access                  */
2777   uint32_t reg;                /*!< Type      used for register access              */
2778 } CAN_SIDFE_0_Type;
2779 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2780
2781 #define CAN_SIDFE_0_OFFSET          0x00         /**< \brief (CAN_SIDFE_0 offset) Standard Message ID Filter Element */
2782 #define CAN_SIDFE_0_RESETVALUE      0x00000000u  /**< \brief (CAN_SIDFE_0 reset_value) Standard Message ID Filter Element */
2783
2784 #define CAN_SIDFE_0_SFID2_Pos       0            /**< \brief (CAN_SIDFE_0) Standard Filter ID 2 */
2785 #define CAN_SIDFE_0_SFID2_Msk       (0x7FFu << CAN_SIDFE_0_SFID2_Pos)
2786 #define CAN_SIDFE_0_SFID2(value)    (CAN_SIDFE_0_SFID2_Msk & ((value) << CAN_SIDFE_0_SFID2_Pos))
2787 #define CAN_SIDFE_0_SFID1_Pos       16           /**< \brief (CAN_SIDFE_0) Standard Filter ID 1 */
2788 #define CAN_SIDFE_0_SFID1_Msk       (0x7FFu << CAN_SIDFE_0_SFID1_Pos)
2789 #define CAN_SIDFE_0_SFID1(value)    (CAN_SIDFE_0_SFID1_Msk & ((value) << CAN_SIDFE_0_SFID1_Pos))
2790 #define CAN_SIDFE_0_SFEC_Pos        27           /**< \brief (CAN_SIDFE_0) Standard Filter Element Configuration */
2791 #define CAN_SIDFE_0_SFEC_Msk        (0x7u << CAN_SIDFE_0_SFEC_Pos)
2792 #define CAN_SIDFE_0_SFEC(value)     (CAN_SIDFE_0_SFEC_Msk & ((value) << CAN_SIDFE_0_SFEC_Pos))
2793 #define   CAN_SIDFE_0_SFEC_DISABLE_Val    0x0u   /**< \brief (CAN_SIDFE_0) Disable filter element */
2794 #define   CAN_SIDFE_0_SFEC_STF0M_Val      0x1u   /**< \brief (CAN_SIDFE_0) Store in Rx FIFO 0 if filter match */
2795 #define   CAN_SIDFE_0_SFEC_STF1M_Val      0x2u   /**< \brief (CAN_SIDFE_0) Store in Rx FIFO 1 if filter match */
2796 #define   CAN_SIDFE_0_SFEC_REJECT_Val     0x3u   /**< \brief (CAN_SIDFE_0) Reject ID if filter match */
2797 #define   CAN_SIDFE_0_SFEC_PRIORITY_Val   0x4u   /**< \brief (CAN_SIDFE_0) Set priority if filter match */
2798 #define   CAN_SIDFE_0_SFEC_PRIF0M_Val     0x5u   /**< \brief (CAN_SIDFE_0) Set priority and store in FIFO 0 if filter match */
2799 #define   CAN_SIDFE_0_SFEC_PRIF1M_Val     0x6u   /**< \brief (CAN_SIDFE_0) Set priority and store in FIFO 1 if filter match */
2800 #define   CAN_SIDFE_0_SFEC_STRXBUF_Val    0x7u   /**< \brief (CAN_SIDFE_0) Store into Rx Buffer */
2801 #define CAN_SIDFE_0_SFEC_DISABLE    (CAN_SIDFE_0_SFEC_DISABLE_Val  << CAN_SIDFE_0_SFEC_Pos)
2802 #define CAN_SIDFE_0_SFEC_STF0M      (CAN_SIDFE_0_SFEC_STF0M_Val    << CAN_SIDFE_0_SFEC_Pos)
2803 #define CAN_SIDFE_0_SFEC_STF1M      (CAN_SIDFE_0_SFEC_STF1M_Val    << CAN_SIDFE_0_SFEC_Pos)
2804 #define CAN_SIDFE_0_SFEC_REJECT     (CAN_SIDFE_0_SFEC_REJECT_Val   << CAN_SIDFE_0_SFEC_Pos)
2805 #define CAN_SIDFE_0_SFEC_PRIORITY   (CAN_SIDFE_0_SFEC_PRIORITY_Val << CAN_SIDFE_0_SFEC_Pos)
2806 #define CAN_SIDFE_0_SFEC_PRIF0M     (CAN_SIDFE_0_SFEC_PRIF0M_Val   << CAN_SIDFE_0_SFEC_Pos)
2807 #define CAN_SIDFE_0_SFEC_PRIF1M     (CAN_SIDFE_0_SFEC_PRIF1M_Val   << CAN_SIDFE_0_SFEC_Pos)
2808 #define CAN_SIDFE_0_SFEC_STRXBUF    (CAN_SIDFE_0_SFEC_STRXBUF_Val  << CAN_SIDFE_0_SFEC_Pos)
2809 #define CAN_SIDFE_0_SFT_Pos         30           /**< \brief (CAN_SIDFE_0) Standard Filter Type */
2810 #define CAN_SIDFE_0_SFT_Msk         (0x3u << CAN_SIDFE_0_SFT_Pos)
2811 #define CAN_SIDFE_0_SFT(value)      (CAN_SIDFE_0_SFT_Msk & ((value) << CAN_SIDFE_0_SFT_Pos))
2812 #define   CAN_SIDFE_0_SFT_RANGE_Val       0x0u   /**< \brief (CAN_SIDFE_0) Range filter from SFID1 to SFID2 */
2813 #define   CAN_SIDFE_0_SFT_DUAL_Val        0x1u   /**< \brief (CAN_SIDFE_0) Dual ID filter for SFID1 or SFID2 */
2814 #define   CAN_SIDFE_0_SFT_CLASSIC_Val     0x2u   /**< \brief (CAN_SIDFE_0) Classic filter */
2815 #define CAN_SIDFE_0_SFT_RANGE       (CAN_SIDFE_0_SFT_RANGE_Val     << CAN_SIDFE_0_SFT_Pos)
2816 #define CAN_SIDFE_0_SFT_DUAL        (CAN_SIDFE_0_SFT_DUAL_Val      << CAN_SIDFE_0_SFT_Pos)
2817 #define CAN_SIDFE_0_SFT_CLASSIC     (CAN_SIDFE_0_SFT_CLASSIC_Val   << CAN_SIDFE_0_SFT_Pos)
2818 #define CAN_SIDFE_0_MASK            0xFFFF07FFu  /**< \brief (CAN_SIDFE_0) MASK Register */
2819
2820 /* -------- CAN_TXBE_0 : (CAN Offset: 0x00) (R/W 32) Tx Buffer Element 0 -------- */
2821 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2822 typedef union {
2823   struct {
2824     uint32_t ID:29;            /*!< bit:  0..28  Identifier                         */
2825     uint32_t RTR:1;            /*!< bit:     29  Remote Transmission Request        */
2826     uint32_t XTD:1;            /*!< bit:     30  Extended Identifier                */
2827     uint32_t ESI:1;            /*!< bit:     31  Error State Indicator              */
2828   } bit;                       /*!< Structure used for bit  access                  */
2829   uint32_t reg;                /*!< Type      used for register access              */
2830 } CAN_TXBE_0_Type;
2831 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2832
2833 #define CAN_TXBE_0_OFFSET           0x00         /**< \brief (CAN_TXBE_0 offset) Tx Buffer Element 0 */
2834 #define CAN_TXBE_0_RESETVALUE       0x00000000u  /**< \brief (CAN_TXBE_0 reset_value) Tx Buffer Element 0 */
2835
2836 #define CAN_TXBE_0_ID_Pos           0            /**< \brief (CAN_TXBE_0) Identifier */
2837 #define CAN_TXBE_0_ID_Msk           (0x1FFFFFFFu << CAN_TXBE_0_ID_Pos)
2838 #define CAN_TXBE_0_ID(value)        (CAN_TXBE_0_ID_Msk & ((value) << CAN_TXBE_0_ID_Pos))
2839 #define CAN_TXBE_0_RTR_Pos          29           /**< \brief (CAN_TXBE_0) Remote Transmission Request */
2840 #define CAN_TXBE_0_RTR              (0x1u << CAN_TXBE_0_RTR_Pos)
2841 #define CAN_TXBE_0_XTD_Pos          30           /**< \brief (CAN_TXBE_0) Extended Identifier */
2842 #define CAN_TXBE_0_XTD              (0x1u << CAN_TXBE_0_XTD_Pos)
2843 #define CAN_TXBE_0_ESI_Pos          31           /**< \brief (CAN_TXBE_0) Error State Indicator */
2844 #define CAN_TXBE_0_ESI              (0x1u << CAN_TXBE_0_ESI_Pos)
2845 #define CAN_TXBE_0_MASK             0xFFFFFFFFu  /**< \brief (CAN_TXBE_0) MASK Register */
2846
2847 /* -------- CAN_TXBE_1 : (CAN Offset: 0x04) (R/W 32) Tx Buffer Element 1 -------- */
2848 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2849 typedef union {
2850   struct {
2851     uint32_t :16;              /*!< bit:  0..15  Reserved                           */
2852     uint32_t DLC:4;            /*!< bit: 16..19  Identifier                         */
2853     uint32_t BRS:1;            /*!< bit:     20  Bit Rate Search                    */
2854     uint32_t FDF:1;            /*!< bit:     21  FD Format                          */
2855     uint32_t :1;               /*!< bit:     22  Reserved                           */
2856     uint32_t EFC:1;            /*!< bit:     23  Event FIFO Control                 */
2857     uint32_t MM:8;             /*!< bit: 24..31  Message Marker                     */
2858   } bit;                       /*!< Structure used for bit  access                  */
2859   uint32_t reg;                /*!< Type      used for register access              */
2860 } CAN_TXBE_1_Type;
2861 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2862
2863 #define CAN_TXBE_1_OFFSET           0x04         /**< \brief (CAN_TXBE_1 offset) Tx Buffer Element 1 */
2864 #define CAN_TXBE_1_RESETVALUE       0x00000000u  /**< \brief (CAN_TXBE_1 reset_value) Tx Buffer Element 1 */
2865
2866 #define CAN_TXBE_1_DLC_Pos          16           /**< \brief (CAN_TXBE_1) Identifier */
2867 #define CAN_TXBE_1_DLC_Msk          (0xFu << CAN_TXBE_1_DLC_Pos)
2868 #define CAN_TXBE_1_DLC(value)       (CAN_TXBE_1_DLC_Msk & ((value) << CAN_TXBE_1_DLC_Pos))
2869 #define CAN_TXBE_1_BRS_Pos          20           /**< \brief (CAN_TXBE_1) Bit Rate Search */
2870 #define CAN_TXBE_1_BRS              (0x1u << CAN_TXBE_1_BRS_Pos)
2871 #define CAN_TXBE_1_FDF_Pos          21           /**< \brief (CAN_TXBE_1) FD Format */
2872 #define CAN_TXBE_1_FDF              (0x1u << CAN_TXBE_1_FDF_Pos)
2873 #define CAN_TXBE_1_EFC_Pos          23           /**< \brief (CAN_TXBE_1) Event FIFO Control */
2874 #define CAN_TXBE_1_EFC              (0x1u << CAN_TXBE_1_EFC_Pos)
2875 #define CAN_TXBE_1_MM_Pos           24           /**< \brief (CAN_TXBE_1) Message Marker */
2876 #define CAN_TXBE_1_MM_Msk           (0xFFu << CAN_TXBE_1_MM_Pos)
2877 #define CAN_TXBE_1_MM(value)        (CAN_TXBE_1_MM_Msk & ((value) << CAN_TXBE_1_MM_Pos))
2878 #define CAN_TXBE_1_MASK             0xFFBF0000u  /**< \brief (CAN_TXBE_1) MASK Register */
2879
2880 /* -------- CAN_TXBE_DATA : (CAN Offset: 0x08) (R/W 32) Tx Buffer Element Data -------- */
2881 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2882 typedef union {
2883   struct {
2884     uint32_t DB0:8;            /*!< bit:  0.. 7  Data Byte 0                        */
2885     uint32_t DB1:8;            /*!< bit:  8..15  Data Byte 1                        */
2886     uint32_t DB2:8;            /*!< bit: 16..23  Data Byte 2                        */
2887     uint32_t DB3:8;            /*!< bit: 24..31  Data Byte 3                        */
2888   } bit;                       /*!< Structure used for bit  access                  */
2889   uint32_t reg;                /*!< Type      used for register access              */
2890 } CAN_TXBE_DATA_Type;
2891 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2892
2893 #define CAN_TXBE_DATA_OFFSET        0x08         /**< \brief (CAN_TXBE_DATA offset) Tx Buffer Element Data */
2894 #define CAN_TXBE_DATA_RESETVALUE    0x00000000u  /**< \brief (CAN_TXBE_DATA reset_value) Tx Buffer Element Data */
2895
2896 #define CAN_TXBE_DATA_DB0_Pos       0            /**< \brief (CAN_TXBE_DATA) Data Byte 0 */
2897 #define CAN_TXBE_DATA_DB0_Msk       (0xFFu << CAN_TXBE_DATA_DB0_Pos)
2898 #define CAN_TXBE_DATA_DB0(value)    (CAN_TXBE_DATA_DB0_Msk & ((value) << CAN_TXBE_DATA_DB0_Pos))
2899 #define CAN_TXBE_DATA_DB1_Pos       8            /**< \brief (CAN_TXBE_DATA) Data Byte 1 */
2900 #define CAN_TXBE_DATA_DB1_Msk       (0xFFu << CAN_TXBE_DATA_DB1_Pos)
2901 #define CAN_TXBE_DATA_DB1(value)    (CAN_TXBE_DATA_DB1_Msk & ((value) << CAN_TXBE_DATA_DB1_Pos))
2902 #define CAN_TXBE_DATA_DB2_Pos       16           /**< \brief (CAN_TXBE_DATA) Data Byte 2 */
2903 #define CAN_TXBE_DATA_DB2_Msk       (0xFFu << CAN_TXBE_DATA_DB2_Pos)
2904 #define CAN_TXBE_DATA_DB2(value)    (CAN_TXBE_DATA_DB2_Msk & ((value) << CAN_TXBE_DATA_DB2_Pos))
2905 #define CAN_TXBE_DATA_DB3_Pos       24           /**< \brief (CAN_TXBE_DATA) Data Byte 3 */
2906 #define CAN_TXBE_DATA_DB3_Msk       (0xFFu << CAN_TXBE_DATA_DB3_Pos)
2907 #define CAN_TXBE_DATA_DB3(value)    (CAN_TXBE_DATA_DB3_Msk & ((value) << CAN_TXBE_DATA_DB3_Pos))
2908 #define CAN_TXBE_DATA_MASK          0xFFFFFFFFu  /**< \brief (CAN_TXBE_DATA) MASK Register */
2909
2910 /* -------- CAN_TXEFE_0 : (CAN Offset: 0x00) (R/W 32) Tx Event FIFO Element 0 -------- */
2911 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2912 typedef union {
2913   struct {
2914     uint32_t ID:29;            /*!< bit:  0..28  Identifier                         */
2915     uint32_t RTR:1;            /*!< bit:     29  Remote Transmission Request        */
2916     uint32_t XTD:1;            /*!< bit:     30  Extended Indentifier               */
2917     uint32_t ESI:1;            /*!< bit:     31  Error State Indicator              */
2918   } bit;                       /*!< Structure used for bit  access                  */
2919   uint32_t reg;                /*!< Type      used for register access              */
2920 } CAN_TXEFE_0_Type;
2921 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2922
2923 #define CAN_TXEFE_0_OFFSET          0x00         /**< \brief (CAN_TXEFE_0 offset) Tx Event FIFO Element 0 */
2924 #define CAN_TXEFE_0_RESETVALUE      0x00000000u  /**< \brief (CAN_TXEFE_0 reset_value) Tx Event FIFO Element 0 */
2925
2926 #define CAN_TXEFE_0_ID_Pos          0            /**< \brief (CAN_TXEFE_0) Identifier */
2927 #define CAN_TXEFE_0_ID_Msk          (0x1FFFFFFFu << CAN_TXEFE_0_ID_Pos)
2928 #define CAN_TXEFE_0_ID(value)       (CAN_TXEFE_0_ID_Msk & ((value) << CAN_TXEFE_0_ID_Pos))
2929 #define CAN_TXEFE_0_RTR_Pos         29           /**< \brief (CAN_TXEFE_0) Remote Transmission Request */
2930 #define CAN_TXEFE_0_RTR             (0x1u << CAN_TXEFE_0_RTR_Pos)
2931 #define CAN_TXEFE_0_XTD_Pos         30           /**< \brief (CAN_TXEFE_0) Extended Indentifier */
2932 #define CAN_TXEFE_0_XTD             (0x1u << CAN_TXEFE_0_XTD_Pos)
2933 #define CAN_TXEFE_0_ESI_Pos         31           /**< \brief (CAN_TXEFE_0) Error State Indicator */
2934 #define CAN_TXEFE_0_ESI             (0x1u << CAN_TXEFE_0_ESI_Pos)
2935 #define CAN_TXEFE_0_MASK            0xFFFFFFFFu  /**< \brief (CAN_TXEFE_0) MASK Register */
2936
2937 /* -------- CAN_TXEFE_1 : (CAN Offset: 0x04) (R/W 32) Tx Event FIFO Element 1 -------- */
2938 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2939 typedef union {
2940   struct {
2941     uint32_t TXTS:16;          /*!< bit:  0..15  Tx Timestamp                       */
2942     uint32_t DLC:4;            /*!< bit: 16..19  Data Length Code                   */
2943     uint32_t BRS:1;            /*!< bit:     20  Bit Rate Search                    */
2944     uint32_t FDF:1;            /*!< bit:     21  FD Format                          */
2945     uint32_t ET:2;             /*!< bit: 22..23  Event Type                         */
2946     uint32_t MM:8;             /*!< bit: 24..31  Message Marker                     */
2947   } bit;                       /*!< Structure used for bit  access                  */
2948   uint32_t reg;                /*!< Type      used for register access              */
2949 } CAN_TXEFE_1_Type;
2950 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2951
2952 #define CAN_TXEFE_1_OFFSET          0x04         /**< \brief (CAN_TXEFE_1 offset) Tx Event FIFO Element 1 */
2953 #define CAN_TXEFE_1_RESETVALUE      0x00000000u  /**< \brief (CAN_TXEFE_1 reset_value) Tx Event FIFO Element 1 */
2954
2955 #define CAN_TXEFE_1_TXTS_Pos        0            /**< \brief (CAN_TXEFE_1) Tx Timestamp */
2956 #define CAN_TXEFE_1_TXTS_Msk        (0xFFFFu << CAN_TXEFE_1_TXTS_Pos)
2957 #define CAN_TXEFE_1_TXTS(value)     (CAN_TXEFE_1_TXTS_Msk & ((value) << CAN_TXEFE_1_TXTS_Pos))
2958 #define CAN_TXEFE_1_DLC_Pos         16           /**< \brief (CAN_TXEFE_1) Data Length Code */
2959 #define CAN_TXEFE_1_DLC_Msk         (0xFu << CAN_TXEFE_1_DLC_Pos)
2960 #define CAN_TXEFE_1_DLC(value)      (CAN_TXEFE_1_DLC_Msk & ((value) << CAN_TXEFE_1_DLC_Pos))
2961 #define CAN_TXEFE_1_BRS_Pos         20           /**< \brief (CAN_TXEFE_1) Bit Rate Search */
2962 #define CAN_TXEFE_1_BRS             (0x1u << CAN_TXEFE_1_BRS_Pos)
2963 #define CAN_TXEFE_1_FDF_Pos         21           /**< \brief (CAN_TXEFE_1) FD Format */
2964 #define CAN_TXEFE_1_FDF             (0x1u << CAN_TXEFE_1_FDF_Pos)
2965 #define CAN_TXEFE_1_ET_Pos          22           /**< \brief (CAN_TXEFE_1) Event Type */
2966 #define CAN_TXEFE_1_ET_Msk          (0x3u << CAN_TXEFE_1_ET_Pos)
2967 #define CAN_TXEFE_1_ET(value)       (CAN_TXEFE_1_ET_Msk & ((value) << CAN_TXEFE_1_ET_Pos))
2968 #define   CAN_TXEFE_1_ET_TXE_Val          0x1u   /**< \brief (CAN_TXEFE_1) Tx event */
2969 #define   CAN_TXEFE_1_ET_TXC_Val          0x2u   /**< \brief (CAN_TXEFE_1) Transmission in spite of cancellation */
2970 #define CAN_TXEFE_1_ET_TXE          (CAN_TXEFE_1_ET_TXE_Val        << CAN_TXEFE_1_ET_Pos)
2971 #define CAN_TXEFE_1_ET_TXC          (CAN_TXEFE_1_ET_TXC_Val        << CAN_TXEFE_1_ET_Pos)
2972 #define CAN_TXEFE_1_MM_Pos          24           /**< \brief (CAN_TXEFE_1) Message Marker */
2973 #define CAN_TXEFE_1_MM_Msk          (0xFFu << CAN_TXEFE_1_MM_Pos)
2974 #define CAN_TXEFE_1_MM(value)       (CAN_TXEFE_1_MM_Msk & ((value) << CAN_TXEFE_1_MM_Pos))
2975 #define CAN_TXEFE_1_MASK            0xFFFFFFFFu  /**< \brief (CAN_TXEFE_1) MASK Register */
2976
2977 /* -------- CAN_XIDFE_0 : (CAN Offset: 0x00) (R/W 32) Extended Message ID Filter Element 0 -------- */
2978 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
2979 typedef union {
2980   struct {
2981     uint32_t EFID1:29;         /*!< bit:  0..28  Extended Filter ID 1               */
2982     uint32_t EFEC:3;           /*!< bit: 29..31  Extended Filter Element Configuration */
2983   } bit;                       /*!< Structure used for bit  access                  */
2984   uint32_t reg;                /*!< Type      used for register access              */
2985 } CAN_XIDFE_0_Type;
2986 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
2987
2988 #define CAN_XIDFE_0_OFFSET          0x00         /**< \brief (CAN_XIDFE_0 offset) Extended Message ID Filter Element 0 */
2989 #define CAN_XIDFE_0_RESETVALUE      0x00000000u  /**< \brief (CAN_XIDFE_0 reset_value) Extended Message ID Filter Element 0 */
2990
2991 #define CAN_XIDFE_0_EFID1_Pos       0            /**< \brief (CAN_XIDFE_0) Extended Filter ID 1 */
2992 #define CAN_XIDFE_0_EFID1_Msk       (0x1FFFFFFFu << CAN_XIDFE_0_EFID1_Pos)
2993 #define CAN_XIDFE_0_EFID1(value)    (CAN_XIDFE_0_EFID1_Msk & ((value) << CAN_XIDFE_0_EFID1_Pos))
2994 #define CAN_XIDFE_0_EFEC_Pos        29           /**< \brief (CAN_XIDFE_0) Extended Filter Element Configuration */
2995 #define CAN_XIDFE_0_EFEC_Msk        (0x7u << CAN_XIDFE_0_EFEC_Pos)
2996 #define CAN_XIDFE_0_EFEC(value)     (CAN_XIDFE_0_EFEC_Msk & ((value) << CAN_XIDFE_0_EFEC_Pos))
2997 #define   CAN_XIDFE_0_EFEC_DISABLE_Val    0x0u   /**< \brief (CAN_XIDFE_0) Disable filter element */
2998 #define   CAN_XIDFE_0_EFEC_STF0M_Val      0x1u   /**< \brief (CAN_XIDFE_0) Store in Rx FIFO 0 if filter match */
2999 #define   CAN_XIDFE_0_EFEC_STF1M_Val      0x2u   /**< \brief (CAN_XIDFE_0) Store in Rx FIFO 1 if filter match */
3000 #define   CAN_XIDFE_0_EFEC_REJECT_Val     0x3u   /**< \brief (CAN_XIDFE_0) Reject ID if filter match */
3001 #define   CAN_XIDFE_0_EFEC_PRIORITY_Val   0x4u   /**< \brief (CAN_XIDFE_0) Set priority if filter match */
3002 #define   CAN_XIDFE_0_EFEC_PRIF0M_Val     0x5u   /**< \brief (CAN_XIDFE_0) Set priority and store in FIFO 0 if filter match */
3003 #define   CAN_XIDFE_0_EFEC_PRIF1M_Val     0x6u   /**< \brief (CAN_XIDFE_0) Set priority and store in FIFO 1 if filter match */
3004 #define   CAN_XIDFE_0_EFEC_STRXBUF_Val    0x7u   /**< \brief (CAN_XIDFE_0) Store into Rx Buffer */
3005 #define CAN_XIDFE_0_EFEC_DISABLE    (CAN_XIDFE_0_EFEC_DISABLE_Val  << CAN_XIDFE_0_EFEC_Pos)
3006 #define CAN_XIDFE_0_EFEC_STF0M      (CAN_XIDFE_0_EFEC_STF0M_Val    << CAN_XIDFE_0_EFEC_Pos)
3007 #define CAN_XIDFE_0_EFEC_STF1M      (CAN_XIDFE_0_EFEC_STF1M_Val    << CAN_XIDFE_0_EFEC_Pos)
3008 #define CAN_XIDFE_0_EFEC_REJECT     (CAN_XIDFE_0_EFEC_REJECT_Val   << CAN_XIDFE_0_EFEC_Pos)
3009 #define CAN_XIDFE_0_EFEC_PRIORITY   (CAN_XIDFE_0_EFEC_PRIORITY_Val << CAN_XIDFE_0_EFEC_Pos)
3010 #define CAN_XIDFE_0_EFEC_PRIF0M     (CAN_XIDFE_0_EFEC_PRIF0M_Val   << CAN_XIDFE_0_EFEC_Pos)
3011 #define CAN_XIDFE_0_EFEC_PRIF1M     (CAN_XIDFE_0_EFEC_PRIF1M_Val   << CAN_XIDFE_0_EFEC_Pos)
3012 #define CAN_XIDFE_0_EFEC_STRXBUF    (CAN_XIDFE_0_EFEC_STRXBUF_Val  << CAN_XIDFE_0_EFEC_Pos)
3013 #define CAN_XIDFE_0_MASK            0xFFFFFFFFu  /**< \brief (CAN_XIDFE_0) MASK Register */
3014
3015 /* -------- CAN_XIDFE_1 : (CAN Offset: 0x04) (R/W 32) Extended Message ID Filter Element 1 -------- */
3016 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3017 typedef union {
3018   struct {
3019     uint32_t EFID2:29;         /*!< bit:  0..28  Extended Filter ID 2               */
3020     uint32_t :1;               /*!< bit:     29  Reserved                           */
3021     uint32_t EFT:2;            /*!< bit: 30..31  Extended Filter Type               */
3022   } bit;                       /*!< Structure used for bit  access                  */
3023   uint32_t reg;                /*!< Type      used for register access              */
3024 } CAN_XIDFE_1_Type;
3025 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3026
3027 #define CAN_XIDFE_1_OFFSET          0x04         /**< \brief (CAN_XIDFE_1 offset) Extended Message ID Filter Element 1 */
3028 #define CAN_XIDFE_1_RESETVALUE      0x00000000u  /**< \brief (CAN_XIDFE_1 reset_value) Extended Message ID Filter Element 1 */
3029
3030 #define CAN_XIDFE_1_EFID2_Pos       0            /**< \brief (CAN_XIDFE_1) Extended Filter ID 2 */
3031 #define CAN_XIDFE_1_EFID2_Msk       (0x1FFFFFFFu << CAN_XIDFE_1_EFID2_Pos)
3032 #define CAN_XIDFE_1_EFID2(value)    (CAN_XIDFE_1_EFID2_Msk & ((value) << CAN_XIDFE_1_EFID2_Pos))
3033 #define CAN_XIDFE_1_EFT_Pos         30           /**< \brief (CAN_XIDFE_1) Extended Filter Type */
3034 #define CAN_XIDFE_1_EFT_Msk         (0x3u << CAN_XIDFE_1_EFT_Pos)
3035 #define CAN_XIDFE_1_EFT(value)      (CAN_XIDFE_1_EFT_Msk & ((value) << CAN_XIDFE_1_EFT_Pos))
3036 #define   CAN_XIDFE_1_EFT_RANGEM_Val      0x0u   /**< \brief (CAN_XIDFE_1) Range filter from EFID1 to EFID2 */
3037 #define   CAN_XIDFE_1_EFT_DUAL_Val        0x1u   /**< \brief (CAN_XIDFE_1) Dual ID filter for EFID1 or EFID2 */
3038 #define   CAN_XIDFE_1_EFT_CLASSIC_Val     0x2u   /**< \brief (CAN_XIDFE_1) Classic filter */
3039 #define   CAN_XIDFE_1_EFT_RANGE_Val       0x3u   /**< \brief (CAN_XIDFE_1) Range filter from EFID1 to EFID2 with no XIDAM mask */
3040 #define CAN_XIDFE_1_EFT_RANGEM      (CAN_XIDFE_1_EFT_RANGEM_Val    << CAN_XIDFE_1_EFT_Pos)
3041 #define CAN_XIDFE_1_EFT_DUAL        (CAN_XIDFE_1_EFT_DUAL_Val      << CAN_XIDFE_1_EFT_Pos)
3042 #define CAN_XIDFE_1_EFT_CLASSIC     (CAN_XIDFE_1_EFT_CLASSIC_Val   << CAN_XIDFE_1_EFT_Pos)
3043 #define CAN_XIDFE_1_EFT_RANGE       (CAN_XIDFE_1_EFT_RANGE_Val     << CAN_XIDFE_1_EFT_Pos)
3044 #define CAN_XIDFE_1_MASK            0xDFFFFFFFu  /**< \brief (CAN_XIDFE_1) MASK Register */
3045
3046 /** \brief CAN APB hardware registers */
3047 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3048 typedef struct {
3049   __I  CAN_CREL_Type             CREL;        /**< \brief Offset: 0x00 (R/  32) Core Release */
3050   __I  CAN_ENDN_Type             ENDN;        /**< \brief Offset: 0x04 (R/  32) Endian */
3051   __IO CAN_MRCFG_Type            MRCFG;       /**< \brief Offset: 0x08 (R/W 32) Message RAM Configuration */
3052   __IO CAN_DBTP_Type             DBTP;        /**< \brief Offset: 0x0C (R/W 32) Fast Bit Timing and Prescaler */
3053   __IO CAN_TEST_Type             TEST;        /**< \brief Offset: 0x10 (R/W 32) Test */
3054   __IO CAN_RWD_Type              RWD;         /**< \brief Offset: 0x14 (R/W 32) RAM Watchdog */
3055   __IO CAN_CCCR_Type             CCCR;        /**< \brief Offset: 0x18 (R/W 32) CC Control */
3056   __IO CAN_NBTP_Type             NBTP;        /**< \brief Offset: 0x1C (R/W 32) Nominal Bit Timing and Prescaler */
3057   __IO CAN_TSCC_Type             TSCC;        /**< \brief Offset: 0x20 (R/W 32) Timestamp Counter Configuration */
3058   __I  CAN_TSCV_Type             TSCV;        /**< \brief Offset: 0x24 (R/  32) Timestamp Counter Value */
3059   __IO CAN_TOCC_Type             TOCC;        /**< \brief Offset: 0x28 (R/W 32) Timeout Counter Configuration */
3060   __IO CAN_TOCV_Type             TOCV;        /**< \brief Offset: 0x2C (R/W 32) Timeout Counter Value */
3061        RoReg8                    Reserved1[0x10];
3062   __I  CAN_ECR_Type              ECR;         /**< \brief Offset: 0x40 (R/  32) Error Counter */
3063   __I  CAN_PSR_Type              PSR;         /**< \brief Offset: 0x44 (R/  32) Protocol Status */
3064   __IO CAN_TDCR_Type             TDCR;        /**< \brief Offset: 0x48 (R/W 32) Extended ID Filter Configuration */
3065        RoReg8                    Reserved2[0x4];
3066   __IO CAN_IR_Type               IR;          /**< \brief Offset: 0x50 (R/W 32) Interrupt */
3067   __IO CAN_IE_Type               IE;          /**< \brief Offset: 0x54 (R/W 32) Interrupt Enable */
3068   __IO CAN_ILS_Type              ILS;         /**< \brief Offset: 0x58 (R/W 32) Interrupt Line Select */
3069   __IO CAN_ILE_Type              ILE;         /**< \brief Offset: 0x5C (R/W 32) Interrupt Line Enable */
3070        RoReg8                    Reserved3[0x20];
3071   __IO CAN_GFC_Type              GFC;         /**< \brief Offset: 0x80 (R/W 32) Global Filter Configuration */
3072   __IO CAN_SIDFC_Type            SIDFC;       /**< \brief Offset: 0x84 (R/W 32) Standard ID Filter Configuration */
3073   __IO CAN_XIDFC_Type            XIDFC;       /**< \brief Offset: 0x88 (R/W 32) Extended ID Filter Configuration */
3074        RoReg8                    Reserved4[0x4];
3075   __IO CAN_XIDAM_Type            XIDAM;       /**< \brief Offset: 0x90 (R/W 32) Extended ID AND Mask */
3076   __I  CAN_HPMS_Type             HPMS;        /**< \brief Offset: 0x94 (R/  32) High Priority Message Status */
3077   __IO CAN_NDAT1_Type            NDAT1;       /**< \brief Offset: 0x98 (R/W 32) New Data 1 */
3078   __IO CAN_NDAT2_Type            NDAT2;       /**< \brief Offset: 0x9C (R/W 32) New Data 2 */
3079   __IO CAN_RXF0C_Type            RXF0C;       /**< \brief Offset: 0xA0 (R/W 32) Rx FIFO 0 Configuration */
3080   __I  CAN_RXF0S_Type            RXF0S;       /**< \brief Offset: 0xA4 (R/  32) Rx FIFO 0 Status */
3081   __IO CAN_RXF0A_Type            RXF0A;       /**< \brief Offset: 0xA8 (R/W 32) Rx FIFO 0 Acknowledge */
3082   __IO CAN_RXBC_Type             RXBC;        /**< \brief Offset: 0xAC (R/W 32) Rx Buffer Configuration */
3083   __IO CAN_RXF1C_Type            RXF1C;       /**< \brief Offset: 0xB0 (R/W 32) Rx FIFO 1 Configuration */
3084   __I  CAN_RXF1S_Type            RXF1S;       /**< \brief Offset: 0xB4 (R/  32) Rx FIFO 1 Status */
3085   __IO CAN_RXF1A_Type            RXF1A;       /**< \brief Offset: 0xB8 (R/W 32) Rx FIFO 1 Acknowledge */
3086   __IO CAN_RXESC_Type            RXESC;       /**< \brief Offset: 0xBC (R/W 32) Rx Buffer / FIFO Element Size Configuration */
3087   __IO CAN_TXBC_Type             TXBC;        /**< \brief Offset: 0xC0 (R/W 32) Tx Buffer Configuration */
3088   __I  CAN_TXFQS_Type            TXFQS;       /**< \brief Offset: 0xC4 (R/  32) Tx FIFO / Queue Status */
3089   __IO CAN_TXESC_Type            TXESC;       /**< \brief Offset: 0xC8 (R/W 32) Tx Buffer Element Size Configuration */
3090   __I  CAN_TXBRP_Type            TXBRP;       /**< \brief Offset: 0xCC (R/  32) Tx Buffer Request Pending */
3091   __IO CAN_TXBAR_Type            TXBAR;       /**< \brief Offset: 0xD0 (R/W 32) Tx Buffer Add Request */
3092   __IO CAN_TXBCR_Type            TXBCR;       /**< \brief Offset: 0xD4 (R/W 32) Tx Buffer Cancellation Request */
3093   __I  CAN_TXBTO_Type            TXBTO;       /**< \brief Offset: 0xD8 (R/  32) Tx Buffer Transmission Occurred */
3094   __I  CAN_TXBCF_Type            TXBCF;       /**< \brief Offset: 0xDC (R/  32) Tx Buffer Cancellation Finished */
3095   __IO CAN_TXBTIE_Type           TXBTIE;      /**< \brief Offset: 0xE0 (R/W 32) Tx Buffer Transmission Interrupt Enable */
3096   __IO CAN_TXBCIE_Type           TXBCIE;      /**< \brief Offset: 0xE4 (R/W 32) Tx Buffer Cancellation Finished Interrupt Enable */
3097        RoReg8                    Reserved5[0x8];
3098   __IO CAN_TXEFC_Type            TXEFC;       /**< \brief Offset: 0xF0 (R/W 32) Tx Event FIFO Configuration */
3099   __I  CAN_TXEFS_Type            TXEFS;       /**< \brief Offset: 0xF4 (R/  32) Tx Event FIFO Status */
3100   __IO CAN_TXEFA_Type            TXEFA;       /**< \brief Offset: 0xF8 (R/W 32) Tx Event FIFO Acknowledge */
3101 } Can;
3102 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3103
3104 /** \brief CAN Mram_rxbe hardware registers */
3105 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3106 typedef struct {
3107   __IO CAN_RXBE_0_Type           RXBE_0;      /**< \brief Offset: 0x00 (R/W 32) Rx Buffer Element 0 */
3108   __IO CAN_RXBE_1_Type           RXBE_1;      /**< \brief Offset: 0x04 (R/W 32) Rx Buffer Element 1 */
3109   __IO CAN_RXBE_DATA_Type        RXBE_DATA[16]; /**< \brief Offset: 0x08 (R/W 32) Rx Buffer Element Data */
3110 } CanMramRxbe
3111 #ifdef __GNUC__
3112   __attribute__ ((aligned (4)))
3113 #endif
3114 ;
3115 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3116
3117 /** \brief CAN Mram_rxf0e hardware registers */
3118 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3119 typedef struct {
3120   __IO CAN_RXF0E_0_Type          RXF0E_0;     /**< \brief Offset: 0x00 (R/W 32) Rx FIFO 0 Element 0 */
3121   __IO CAN_RXF0E_1_Type          RXF0E_1;     /**< \brief Offset: 0x04 (R/W 32) Rx FIFO 0 Element 1 */
3122   __IO CAN_RXF0E_DATA_Type       RXF0E_DATA[16]; /**< \brief Offset: 0x08 (R/W 32) Rx FIFO 0 Element Data */
3123 } CanMramRxf0e
3124 #ifdef __GNUC__
3125   __attribute__ ((aligned (4)))
3126 #endif
3127 ;
3128 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3129
3130 /** \brief CAN Mram_rxf1e hardware registers */
3131 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3132 typedef struct {
3133   __IO CAN_RXF1E_0_Type          RXF1E_0;     /**< \brief Offset: 0x00 (R/W 32) Rx FIFO 1 Element 0 */
3134   __IO CAN_RXF1E_1_Type          RXF1E_1;     /**< \brief Offset: 0x04 (R/W 32) Rx FIFO 1 Element 1 */
3135   __IO CAN_RXF1E_DATA_Type       RXF1E_DATA[16]; /**< \brief Offset: 0x08 (R/W 32) Rx FIFO 1 Element Data */
3136 } CanMramRxf1e
3137 #ifdef __GNUC__
3138   __attribute__ ((aligned (4)))
3139 #endif
3140 ;
3141 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3142
3143 /** \brief CAN Mram_sidfe hardware registers */
3144 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3145 typedef struct {
3146   __IO CAN_SIDFE_0_Type          SIDFE_0;     /**< \brief Offset: 0x00 (R/W 32) Standard Message ID Filter Element */
3147 } CanMramSidfe
3148 #ifdef __GNUC__
3149   __attribute__ ((aligned (4)))
3150 #endif
3151 ;
3152 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3153
3154 /** \brief CAN Mram_txbe hardware registers */
3155 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3156 typedef struct {
3157   __IO CAN_TXBE_0_Type           TXBE_0;      /**< \brief Offset: 0x00 (R/W 32) Tx Buffer Element 0 */
3158   __IO CAN_TXBE_1_Type           TXBE_1;      /**< \brief Offset: 0x04 (R/W 32) Tx Buffer Element 1 */
3159   __IO CAN_TXBE_DATA_Type        TXBE_DATA[16]; /**< \brief Offset: 0x08 (R/W 32) Tx Buffer Element Data */
3160 } CanMramTxbe
3161 #ifdef __GNUC__
3162   __attribute__ ((aligned (4)))
3163 #endif
3164 ;
3165 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3166
3167 /** \brief CAN Mram_txefe hardware registers */
3168 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3169 typedef struct {
3170   __IO CAN_TXEFE_0_Type          TXEFE_0;     /**< \brief Offset: 0x00 (R/W 32) Tx Event FIFO Element 0 */
3171   __IO CAN_TXEFE_1_Type          TXEFE_1;     /**< \brief Offset: 0x04 (R/W 32) Tx Event FIFO Element 1 */
3172 } CanMramTxefe
3173 #ifdef __GNUC__
3174   __attribute__ ((aligned (4)))
3175 #endif
3176 ;
3177 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3178
3179 /** \brief CAN Mram_xifde hardware registers */
3180 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
3181 typedef struct {
3182   __IO CAN_XIDFE_0_Type          XIDFE_0;     /**< \brief Offset: 0x00 (R/W 32) Extended Message ID Filter Element 0 */
3183   __IO CAN_XIDFE_1_Type          XIDFE_1;     /**< \brief Offset: 0x04 (R/W 32) Extended Message ID Filter Element 1 */
3184 } CanMramXifde
3185 #ifdef __GNUC__
3186   __attribute__ ((aligned (4)))
3187 #endif
3188 ;
3189 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
3190
3191 #define SECTION_CAN_MRAM_RXBE
3192
3193 #define SECTION_CAN_MRAM_RXF0E
3194
3195 #define SECTION_CAN_MRAM_RXF1E
3196
3197 #define SECTION_CAN_MRAM_SIDFE
3198
3199 #define SECTION_CAN_MRAM_TXBE
3200
3201 #define SECTION_CAN_MRAM_TXEFE
3202
3203 #define SECTION_CAN_MRAM_XIFDE
3204
3205 /*@}*/
3206
3207 #endif /* _SAMD51_CAN_COMPONENT_ */