1 /*
2  * Copyright 1997-2016 Freescale Semiconductor, Inc.
3  * Copyright 2016-2022 NXP
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  */
7 
8 /*!
9  * @file S32K116_MTB_DWT.h
10  * @version 1.1
11  * @date 2022-01-21
12  * @brief Peripheral Access Layer for S32K116_MTB_DWT
13  *
14  * This file contains register definitions and macros for easy access to their
15  * bit fields.
16  *
17  * This file assumes LITTLE endian system.
18  */
19 
20 /**
21 * @page misra_violations MISRA-C:2012 violations
22 *
23 * @section [global]
24 * Violates MISRA 2012 Advisory Rule 2.3, local typedef not referenced
25 * The SoC header defines typedef for all modules.
26 *
27 * @section [global]
28 * Violates MISRA 2012 Advisory Rule 2.5, local macro not referenced
29 * The SoC header defines macros for all modules and registers.
30 *
31 * @section [global]
32 * Violates MISRA 2012 Advisory Directive 4.9, Function-like macro
33 * These are generated macros used for accessing the bit-fields from registers.
34 *
35 * @section [global]
36 * Violates MISRA 2012 Required Rule 5.1, identifier clash
37 * The supported compilers use more than 31 significant characters for identifiers.
38 *
39 * @section [global]
40 * Violates MISRA 2012 Required Rule 5.2, identifier clash
41 * The supported compilers use more than 31 significant characters for identifiers.
42 *
43 * @section [global]
44 * Violates MISRA 2012 Required Rule 5.4, identifier clash
45 * The supported compilers use more than 31 significant characters for identifiers.
46 *
47 * @section [global]
48 * Violates MISRA 2012 Required Rule 5.5, identifier clash
49 * The supported compilers use more than 31 significant characters for identifiers.
50 *
51 * @section [global]
52 * Violates MISRA 2012 Required Rule 21.1, defined macro '__I' is reserved to the compiler
53 * This type qualifier is needed to ensure correct I/O access and addressing.
54 */
55 
56 /* Prevention from multiple including the same memory map */
57 #if !defined(S32K116_MTB_DWT_H_)  /* Check if memory map has not been already included */
58 #define S32K116_MTB_DWT_H_
59 
60 #include "S32K116_COMMON.h"
61 
62 /* ----------------------------------------------------------------------------
63    -- MTB_DWT Peripheral Access Layer
64    ---------------------------------------------------------------------------- */
65 
66 /*!
67  * @addtogroup MTB_DWT_Peripheral_Access_Layer MTB_DWT Peripheral Access Layer
68  * @{
69  */
70 
71 /** MTB_DWT - Size of Registers Arrays */
72 #define MTB_DWT_CMF_COUNT                         2u
73 #define MTB_DWT_PERIPHID_COUNT                    8u
74 #define MTB_DWT_COMPID_COUNT                      4u
75 
76 /** MTB_DWT - Register Layout Typedef */
77 typedef struct {
78   __I  uint32_t CTRL;                              /**< MTB DWT Control Register, offset: 0x0 */
79   uint8_t RESERVED_0[28];
80   struct {                                         /* offset: 0x20, array step: 0x10 */
81     __IO uint32_t COMP;                              /**< MTB_DWT Comparator Register, array offset: 0x20, array step: 0x10 */
82     __IO uint32_t MASK;                              /**< MTB_DWT Comparator Mask Register, array offset: 0x24, array step: 0x10 */
83     __IO uint32_t FCT;                               /**< MTB_DWT Comparator Function Register 0..MTB_DWT Comparator Function Register 1, array offset: 0x28, array step: 0x10 */
84     uint8_t RESERVED_0[4];
85   } CMF[MTB_DWT_CMF_COUNT];
86   uint8_t RESERVED_1[448];
87   __IO uint32_t TBCTRL;                            /**< MTB_DWT Trace Buffer Control Register, offset: 0x200 */
88   uint8_t RESERVED_2[3524];
89   __I  uint32_t DEVICECFG;                         /**< Device Configuration Register, offset: 0xFC8 */
90   __I  uint32_t DEVICETYPID;                       /**< Device Type Identifier Register, offset: 0xFCC */
91   __I  uint32_t PERIPHID[MTB_DWT_PERIPHID_COUNT];  /**< Peripheral ID Register, array offset: 0xFD0, array step: 0x4 */
92   __I  uint32_t COMPID[MTB_DWT_COMPID_COUNT];      /**< Component ID Register, array offset: 0xFF0, array step: 0x4 */
93 } MTB_DWT_Type, *MTB_DWT_MemMapPtr;
94 
95 /** Number of instances of the MTB_DWT module. */
96 #define MTB_DWT_INSTANCE_COUNT                   (1u)
97 
98 /* MTB_DWT - Peripheral instance base addresses */
99 /** Peripheral MTB_DWT base address */
100 #define IP_MTB_DWT_BASE                          (0xF0001000u)
101 /** Peripheral MTB_DWT base pointer */
102 #define IP_MTB_DWT                               ((MTB_DWT_Type *)IP_MTB_DWT_BASE)
103 /** Array initializer of MTB_DWT peripheral base addresses */
104 #define IP_MTB_DWT_BASE_ADDRS                    { IP_MTB_DWT_BASE }
105 /** Array initializer of MTB_DWT peripheral base pointers */
106 #define IP_MTB_DWT_BASE_PTRS                     { IP_MTB_DWT }
107 
108 /* ----------------------------------------------------------------------------
109    -- MTB_DWT Register Masks
110    ---------------------------------------------------------------------------- */
111 
112 /*!
113  * @addtogroup MTB_DWT_Register_Masks MTB_DWT Register Masks
114  * @{
115  */
116 
117 /*! @name CTRL - MTB DWT Control Register */
118 /*! @{ */
119 
120 #define MTB_DWT_CTRL_DWTCFGCTRL_MASK             (0xFFFFFFFU)
121 #define MTB_DWT_CTRL_DWTCFGCTRL_SHIFT            (0U)
122 #define MTB_DWT_CTRL_DWTCFGCTRL_WIDTH            (28U)
123 #define MTB_DWT_CTRL_DWTCFGCTRL(x)               (((uint32_t)(((uint32_t)(x)) << MTB_DWT_CTRL_DWTCFGCTRL_SHIFT)) & MTB_DWT_CTRL_DWTCFGCTRL_MASK)
124 
125 #define MTB_DWT_CTRL_NUMCMP_MASK                 (0xF0000000U)
126 #define MTB_DWT_CTRL_NUMCMP_SHIFT                (28U)
127 #define MTB_DWT_CTRL_NUMCMP_WIDTH                (4U)
128 #define MTB_DWT_CTRL_NUMCMP(x)                   (((uint32_t)(((uint32_t)(x)) << MTB_DWT_CTRL_NUMCMP_SHIFT)) & MTB_DWT_CTRL_NUMCMP_MASK)
129 /*! @} */
130 
131 /*! @name COMP - MTB_DWT Comparator Register */
132 /*! @{ */
133 
134 #define MTB_DWT_COMP_COMP_MASK                   (0xFFFFFFFFU)
135 #define MTB_DWT_COMP_COMP_SHIFT                  (0U)
136 #define MTB_DWT_COMP_COMP_WIDTH                  (32U)
137 #define MTB_DWT_COMP_COMP(x)                     (((uint32_t)(((uint32_t)(x)) << MTB_DWT_COMP_COMP_SHIFT)) & MTB_DWT_COMP_COMP_MASK)
138 /*! @} */
139 
140 /*! @name MASK - MTB_DWT Comparator Mask Register */
141 /*! @{ */
142 
143 #define MTB_DWT_MASK_MASK_MASK                   (0x1FU)
144 #define MTB_DWT_MASK_MASK_SHIFT                  (0U)
145 #define MTB_DWT_MASK_MASK_WIDTH                  (5U)
146 #define MTB_DWT_MASK_MASK(x)                     (((uint32_t)(((uint32_t)(x)) << MTB_DWT_MASK_MASK_SHIFT)) & MTB_DWT_MASK_MASK_MASK)
147 /*! @} */
148 
149 /*! @name FCT - MTB_DWT Comparator Function Register 0..MTB_DWT Comparator Function Register 1 */
150 /*! @{ */
151 
152 #define MTB_DWT_FCT_FUNCTION_MASK                (0xFU)
153 #define MTB_DWT_FCT_FUNCTION_SHIFT               (0U)
154 #define MTB_DWT_FCT_FUNCTION_WIDTH               (4U)
155 #define MTB_DWT_FCT_FUNCTION(x)                  (((uint32_t)(((uint32_t)(x)) << MTB_DWT_FCT_FUNCTION_SHIFT)) & MTB_DWT_FCT_FUNCTION_MASK)
156 
157 #define MTB_DWT_FCT_DATAVMATCH_MASK              (0x100U)
158 #define MTB_DWT_FCT_DATAVMATCH_SHIFT             (8U)
159 #define MTB_DWT_FCT_DATAVMATCH_WIDTH             (1U)
160 #define MTB_DWT_FCT_DATAVMATCH(x)                (((uint32_t)(((uint32_t)(x)) << MTB_DWT_FCT_DATAVMATCH_SHIFT)) & MTB_DWT_FCT_DATAVMATCH_MASK)
161 
162 #define MTB_DWT_FCT_DATAVSIZE_MASK               (0xC00U)
163 #define MTB_DWT_FCT_DATAVSIZE_SHIFT              (10U)
164 #define MTB_DWT_FCT_DATAVSIZE_WIDTH              (2U)
165 #define MTB_DWT_FCT_DATAVSIZE(x)                 (((uint32_t)(((uint32_t)(x)) << MTB_DWT_FCT_DATAVSIZE_SHIFT)) & MTB_DWT_FCT_DATAVSIZE_MASK)
166 
167 #define MTB_DWT_FCT_DATAVADDR0_MASK              (0xF000U)
168 #define MTB_DWT_FCT_DATAVADDR0_SHIFT             (12U)
169 #define MTB_DWT_FCT_DATAVADDR0_WIDTH             (4U)
170 #define MTB_DWT_FCT_DATAVADDR0(x)                (((uint32_t)(((uint32_t)(x)) << MTB_DWT_FCT_DATAVADDR0_SHIFT)) & MTB_DWT_FCT_DATAVADDR0_MASK)
171 
172 #define MTB_DWT_FCT_MATCHED_MASK                 (0x1000000U)
173 #define MTB_DWT_FCT_MATCHED_SHIFT                (24U)
174 #define MTB_DWT_FCT_MATCHED_WIDTH                (1U)
175 #define MTB_DWT_FCT_MATCHED(x)                   (((uint32_t)(((uint32_t)(x)) << MTB_DWT_FCT_MATCHED_SHIFT)) & MTB_DWT_FCT_MATCHED_MASK)
176 /*! @} */
177 
178 /*! @name TBCTRL - MTB_DWT Trace Buffer Control Register */
179 /*! @{ */
180 
181 #define MTB_DWT_TBCTRL_ACOMP0_MASK               (0x1U)
182 #define MTB_DWT_TBCTRL_ACOMP0_SHIFT              (0U)
183 #define MTB_DWT_TBCTRL_ACOMP0_WIDTH              (1U)
184 #define MTB_DWT_TBCTRL_ACOMP0(x)                 (((uint32_t)(((uint32_t)(x)) << MTB_DWT_TBCTRL_ACOMP0_SHIFT)) & MTB_DWT_TBCTRL_ACOMP0_MASK)
185 
186 #define MTB_DWT_TBCTRL_ACOMP1_MASK               (0x2U)
187 #define MTB_DWT_TBCTRL_ACOMP1_SHIFT              (1U)
188 #define MTB_DWT_TBCTRL_ACOMP1_WIDTH              (1U)
189 #define MTB_DWT_TBCTRL_ACOMP1(x)                 (((uint32_t)(((uint32_t)(x)) << MTB_DWT_TBCTRL_ACOMP1_SHIFT)) & MTB_DWT_TBCTRL_ACOMP1_MASK)
190 
191 #define MTB_DWT_TBCTRL_NUMCOMP_MASK              (0xF0000000U)
192 #define MTB_DWT_TBCTRL_NUMCOMP_SHIFT             (28U)
193 #define MTB_DWT_TBCTRL_NUMCOMP_WIDTH             (4U)
194 #define MTB_DWT_TBCTRL_NUMCOMP(x)                (((uint32_t)(((uint32_t)(x)) << MTB_DWT_TBCTRL_NUMCOMP_SHIFT)) & MTB_DWT_TBCTRL_NUMCOMP_MASK)
195 /*! @} */
196 
197 /*! @name DEVICECFG - Device Configuration Register */
198 /*! @{ */
199 
200 #define MTB_DWT_DEVICECFG_DEVICECFG_MASK         (0xFFFFFFFFU)
201 #define MTB_DWT_DEVICECFG_DEVICECFG_SHIFT        (0U)
202 #define MTB_DWT_DEVICECFG_DEVICECFG_WIDTH        (32U)
203 #define MTB_DWT_DEVICECFG_DEVICECFG(x)           (((uint32_t)(((uint32_t)(x)) << MTB_DWT_DEVICECFG_DEVICECFG_SHIFT)) & MTB_DWT_DEVICECFG_DEVICECFG_MASK)
204 /*! @} */
205 
206 /*! @name DEVICETYPID - Device Type Identifier Register */
207 /*! @{ */
208 
209 #define MTB_DWT_DEVICETYPID_DEVICETYPID_MASK     (0xFFFFFFFFU)
210 #define MTB_DWT_DEVICETYPID_DEVICETYPID_SHIFT    (0U)
211 #define MTB_DWT_DEVICETYPID_DEVICETYPID_WIDTH    (32U)
212 #define MTB_DWT_DEVICETYPID_DEVICETYPID(x)       (((uint32_t)(((uint32_t)(x)) << MTB_DWT_DEVICETYPID_DEVICETYPID_SHIFT)) & MTB_DWT_DEVICETYPID_DEVICETYPID_MASK)
213 /*! @} */
214 
215 /*! @name PERIPHID - Peripheral ID Register */
216 /*! @{ */
217 
218 #define MTB_DWT_PERIPHID_PERIPHID_MASK           (0xFFFFFFFFU)
219 #define MTB_DWT_PERIPHID_PERIPHID_SHIFT          (0U)
220 #define MTB_DWT_PERIPHID_PERIPHID_WIDTH          (32U)
221 #define MTB_DWT_PERIPHID_PERIPHID(x)             (((uint32_t)(((uint32_t)(x)) << MTB_DWT_PERIPHID_PERIPHID_SHIFT)) & MTB_DWT_PERIPHID_PERIPHID_MASK)
222 /*! @} */
223 
224 /*! @name COMPID - Component ID Register */
225 /*! @{ */
226 
227 #define MTB_DWT_COMPID_COMPID_MASK               (0xFFFFFFFFU)
228 #define MTB_DWT_COMPID_COMPID_SHIFT              (0U)
229 #define MTB_DWT_COMPID_COMPID_WIDTH              (32U)
230 #define MTB_DWT_COMPID_COMPID(x)                 (((uint32_t)(((uint32_t)(x)) << MTB_DWT_COMPID_COMPID_SHIFT)) & MTB_DWT_COMPID_COMPID_MASK)
231 /*! @} */
232 
233 /*!
234  * @}
235  */ /* end of group MTB_DWT_Register_Masks */
236 
237 /*!
238  * @}
239  */ /* end of group MTB_DWT_Peripheral_Access_Layer */
240 
241 #endif  /* #if !defined(S32K116_MTB_DWT_H_) */
242