• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2023 HPMicro
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 
9 #ifndef HPM_MMC_H
10 #define HPM_MMC_H
11 
12 typedef struct {
13     __RW uint32_t CR;                          /* 0x0: Control Register */
14     __RW uint32_t STA;                         /* 0x4: Status Register */
15     __RW uint32_t INT_EN;                      /* 0x8: Interrupt Enable Register */
16     __RW uint32_t SYSCLK_FREQ;                 /* 0xC: System Clock Frequency Register */
17     __RW uint32_t SYSCLK_PERIOD;               /* 0x10: System Clock Period Register */
18     __RW uint32_t OOSYNC_THETA_THR;            /* 0x14: Position Out-Of-Sync Threshold Regster */
19     __RW uint32_t DISCRETECFG0;                /* 0x18: Discrete Mode Configuration 0 Register */
20     __RW uint32_t DISCRETECFG1;                /* 0x1C: Discrete Mode Configuration 1 Register */
21     __RW uint32_t CONTCFG0;                    /* 0x20: Continuous Mode Configuration 0 Register */
22     __RW uint32_t INI_POS_TIME;                /* 0x24: The destined timestamp register for position initialization */
23     __RW uint32_t INI_POS;                     /* 0x28: The destined position register for position initialization */
24     __RW uint32_t INI_REV;                     /* 0x2C: The destined revolution register for position initialization */
25     __RW uint32_t INI_SPEED;                   /* 0x30: The destined speed register for position initialization */
26     __RW uint32_t INI_ACCEL;                   /* 0x34: The destined accelerator register for position initialization */
27     __RW uint32_t INI_COEF_TIME;               /* 0x38: The destined timestamp register for coefficients initialization */
28     __RW uint32_t INI_PCOEF;                   /* 0x3C: The destined coefficient P register for coefficients initialization */
29     __RW uint32_t INI_ICOEF;                   /* 0x40: The destined coefficient I register for coefficients initialization */
30     __RW uint32_t INI_ACOEF;                   /* 0x44: The destined coefficient A register for coefficients initialization */
31     __R  uint32_t ESTM_TIM;                    /* 0x48: The timestamp register for internal estimation */
32     __R  uint32_t ESTM_POS;                    /* 0x4C: The position register for the internal  estimation */
33     __R  uint32_t ESTM_REV;                    /* 0x50: The revolution register for the internal  estimation */
34     __R  uint32_t ESTM_SPEED;                  /* 0x54: The speed register for the internal estimation */
35     __R  uint32_t ESTM_ACCEL;                  /* 0x58: The accelerator register for theinternal estimation */
36     __R  uint32_t CUR_PCOEF;                   /* 0x5C: The coefficient P register for the internal estimation */
37     __R  uint32_t CUR_ICOEF;                   /* 0x60: The coefficient I register for the internal estimation */
38     __R  uint32_t CUR_ACOEF;                   /* 0x64: The coefficient A register for the internal estimation */
39     __RW uint32_t INI_DELTA_POS_TIME;          /* 0x68: The destined timestamp register for delta position initialization */
40     __RW uint32_t INI_DELTA_POS;               /* 0x6C: The destined delta position register for delta position initialization */
41     __RW uint32_t INI_DELTA_REV;               /* 0x70: The destined delta revolution register for delta position initialization */
42     __RW uint32_t INI_DELTA_SPEED;             /* 0x74: The destined delta speed register for delta position initialization */
43     __RW uint32_t INI_DELTA_ACCEL;             /* 0x78: The destined delta accelerator register for delta position initialization */
44     __R  uint8_t  RESERVED0[4];                /* 0x7C - 0x7F: Reserved */
45     __RW uint32_t POS_TRG_CFG;                 /* 0x80: Tracking Configuration pos trigger cfg */
46     __RW uint32_t POS_TRG_POS_THR;             /* 0x84: Tracking Configuration position threshold */
47     __RW uint32_t POS_TRG_REV_THR;             /* 0x88: Tracking Configuration revolution threshold */
48     __RW uint32_t SPEED_TRG_CFG;               /* 0x8C: Tracking Configuration speed trigger cfg */
49     __RW uint32_t SPEED_TRG_THR;               /* 0x90: Tracking Configuration speed threshold */
50     __R  uint8_t  RESERVED1[12];               /* 0x94 - 0x9F: Reserved */
51     struct {
52         __RW uint32_t ERR_THR;                 /* 0xA0: Tracking Configuration coef trigger cfg */
53         __RW uint32_t P;                       /* 0xA4: Tracking Configuration coef trigger cfg P */
54         __RW uint32_t I;                       /* 0xA8: Tracking Configuration coef trigger cfg I */
55         __RW uint32_t A;                       /* 0xAC: Tracking Configuration coef trigger cfg A */
56         __RW uint32_t TIME;                    /* 0xB0: Tracking Configuration coef trigger cfg time */
57     } COEF_TRG_CFG[3];
58     __R  uint8_t  RESERVED2[36];               /* 0xDC - 0xFF: Reserved */
59     struct {
60         __RW uint32_t BR_CTRL;                 /* 0x100: Prediction Control Register */
61         __RW uint32_t BR_TIMEOFF;              /* 0x104: Prediction Timing Offset Register */
62         __RW uint32_t BR_TRG_PERIOD;           /* 0x108: Prediction Triggering Period Offset Register */
63         __RW uint32_t BR_TRG_F_TIME;           /* 0x10C: Prediction Triggering First Offset Register */
64         __RW uint32_t BR_ST;                   /* 0x110: Prediction Status Register */
65         __R  uint8_t  RESERVED0[44];           /* 0x114 - 0x13F: Reserved */
66         __RW uint32_t BR_TRG_POS_CFG;          /* 0x140: Prediction Configuration postion trigger cfg */
67         __RW uint32_t BR_TRG_POS_THR;          /* 0x144: Prediction Configuration postion threshold */
68         __RW uint32_t BR_TRG_REV_THR;          /* 0x148: Prediction Configuration revolutiom threshold */
69         __RW uint32_t BR_TRG_SPEED_CFG;        /* 0x14C: Prediction Configuration speed trigger cfg */
70         __RW uint32_t BR_TRG_SPEED_THR;        /* 0x150: Prediction Configuration speed threshold */
71         __R  uint8_t  RESERVED1[108];          /* 0x154 - 0x1BF: Reserved */
72         __RW uint32_t BR_INI_POS_TIME;         /* 0x1C0: Initialization timestamp for open-loop mode */
73         __RW uint32_t BR_INI_POS;              /* 0x1C4: Initialization position for open-loop mode */
74         __RW uint32_t BR_INI_REV;              /* 0x1C8: Initialization revolution for open-loop mode */
75         __RW uint32_t BR_INI_SPEED;            /* 0x1CC: Initialization speed for open-loop mode */
76         __RW uint32_t BR_INI_ACCEL;            /* 0x1D0: Initialization acceleration for open-loop mode */
77         __RW uint32_t BR_INI_DELTA_POS_TIME;   /* 0x1D4: Initialization timestamp for delta mode in prediction mode */
78         __RW uint32_t BR_INI_DELTA_POS;        /* 0x1D8: Initialization delta position for delta mode in prediction mode */
79         __RW uint32_t BR_INI_DELTA_REV;        /* 0x1DC: Initialization delta revolution for delta mode in prediction mode */
80         __RW uint32_t BR_INI_DELTA_SPEED;      /* 0x1E0: Initialization delta speed for delta mode in prediction mode */
81         __RW uint32_t BR_INI_DELTA_ACCEL;      /* 0x1E4: Initialization delta acceleration for delta mode in prediction mode */
82         __R  uint8_t  RESERVED2[4];            /* 0x1E8 - 0x1EB: Reserved */
83         __R  uint32_t BR_CUR_POS_TIME;         /* 0x1EC: Monitor of the output timestamp */
84         __R  uint32_t BR_CUR_POS;              /* 0x1F0: Monitor of the output position */
85         __R  uint32_t BR_CUR_REV;              /* 0x1F4: Monitor of the output revolution */
86         __R  uint32_t BR_CUR_SPEED;            /* 0x1F8: Monitor of the output speed */
87         __R  uint32_t BR_CUR_ACCEL;            /* 0x1FC: Monitor of the output acceleration */
88     } BR[2];
89     __R  uint32_t BK0_TIMESTAMP;               /* 0x300: Monitor of the just received input timestamp for tracing logic */
90     __R  uint32_t BK0_POSITION;                /* 0x304: Monitor of the just received input position for tracing logic */
91     __R  uint32_t BK0_REVOLUTION;              /* 0x308: Monitor of the just received input revolution for tracing logic */
92     __R  uint32_t BK0_SPEED;                   /* 0x30C: Monitor of the just received input speed for tracing logic */
93     __R  uint32_t BK0_ACCELERATOR;             /* 0x310: Monitor of the just received input acceleration for tracing logic */
94     __R  uint8_t  RESERVED3[12];               /* 0x314 - 0x31F: Reserved */
95     __R  uint32_t BK1_TIMESTAMP;               /* 0x320: Monitor of the previous received input timestamp for tracing logic */
96     __R  uint32_t BK1_POSITION;                /* 0x324: Monitor of the previous received input position for tracing logic */
97     __R  uint32_t BK1_REVOLUTION;              /* 0x328: Monitor of the previous received input revolution for tracing logic */
98     __R  uint32_t BK1_SPEED;                   /* 0x32C: Monitor of the previous received input speed for tracing logic */
99     __R  uint32_t BK1_ACCELERATOR;             /* 0x330: Monitor of the previous received input acceleration for tracing logic */
100 } MMC_Type;
101 
102 
103 /* Bitfield definition for register: CR */
104 /*
105  * SFTRST (RW)
106  *
107  * Software reset, high active. When write 1 ,all internal logical will be reset.
108  * 0b - No action
109  * 1b - All MMC internal registers are forced into their reset state. Interface registers are not affected.
110  */
111 #define MMC_CR_SFTRST_MASK (0x80000000UL)
112 #define MMC_CR_SFTRST_SHIFT (31U)
113 #define MMC_CR_SFTRST_SET(x) (((uint32_t)(x) << MMC_CR_SFTRST_SHIFT) & MMC_CR_SFTRST_MASK)
114 #define MMC_CR_SFTRST_GET(x) (((uint32_t)(x) & MMC_CR_SFTRST_MASK) >> MMC_CR_SFTRST_SHIFT)
115 
116 /*
117  * INI_BR0_POS_REQ (RW)
118  *
119  * Auto clear. Only effective in open_loop mode.
120  */
121 #define MMC_CR_INI_BR0_POS_REQ_MASK (0x20000000UL)
122 #define MMC_CR_INI_BR0_POS_REQ_SHIFT (29U)
123 #define MMC_CR_INI_BR0_POS_REQ_SET(x) (((uint32_t)(x) << MMC_CR_INI_BR0_POS_REQ_SHIFT) & MMC_CR_INI_BR0_POS_REQ_MASK)
124 #define MMC_CR_INI_BR0_POS_REQ_GET(x) (((uint32_t)(x) & MMC_CR_INI_BR0_POS_REQ_MASK) >> MMC_CR_INI_BR0_POS_REQ_SHIFT)
125 
126 /*
127  * INI_BR1_POS_REQ (RW)
128  *
129  * Auto clear. Only effective in open_loop mode.
130  */
131 #define MMC_CR_INI_BR1_POS_REQ_MASK (0x10000000UL)
132 #define MMC_CR_INI_BR1_POS_REQ_SHIFT (28U)
133 #define MMC_CR_INI_BR1_POS_REQ_SET(x) (((uint32_t)(x) << MMC_CR_INI_BR1_POS_REQ_SHIFT) & MMC_CR_INI_BR1_POS_REQ_MASK)
134 #define MMC_CR_INI_BR1_POS_REQ_GET(x) (((uint32_t)(x) & MMC_CR_INI_BR1_POS_REQ_MASK) >> MMC_CR_INI_BR1_POS_REQ_SHIFT)
135 
136 /*
137  * FRCACCELZERO (RW)
138  *
139  * Zeroise the accelerator calculation.
140  */
141 #define MMC_CR_FRCACCELZERO_MASK (0x8000000UL)
142 #define MMC_CR_FRCACCELZERO_SHIFT (27U)
143 #define MMC_CR_FRCACCELZERO_SET(x) (((uint32_t)(x) << MMC_CR_FRCACCELZERO_SHIFT) & MMC_CR_FRCACCELZERO_MASK)
144 #define MMC_CR_FRCACCELZERO_GET(x) (((uint32_t)(x) & MMC_CR_FRCACCELZERO_MASK) >> MMC_CR_FRCACCELZERO_SHIFT)
145 
146 /*
147  * MS_COEF_EN (RW)
148  *
149  * Multiple Coefficients Enable
150  */
151 #define MMC_CR_MS_COEF_EN_MASK (0x4000000UL)
152 #define MMC_CR_MS_COEF_EN_SHIFT (26U)
153 #define MMC_CR_MS_COEF_EN_SET(x) (((uint32_t)(x) << MMC_CR_MS_COEF_EN_SHIFT) & MMC_CR_MS_COEF_EN_MASK)
154 #define MMC_CR_MS_COEF_EN_GET(x) (((uint32_t)(x) & MMC_CR_MS_COEF_EN_MASK) >> MMC_CR_MS_COEF_EN_SHIFT)
155 
156 /*
157  * INI_DELTA_POS_TRG_TYPE (RW)
158  *
159  * 0: Time Stamp in the configuration
160  * 1: Risedge of In Trg[0]
161  * 2: Risedge of In Trg[1]
162  * 3: Risedge of out trg[0]
163  * 4: Risedge of out trg[1]
164  * 5: triggered by self position trigger
165  * 6: triggered by self speed trigger
166  * Otherser: no function
167  */
168 #define MMC_CR_INI_DELTA_POS_TRG_TYPE_MASK (0x3800000UL)
169 #define MMC_CR_INI_DELTA_POS_TRG_TYPE_SHIFT (23U)
170 #define MMC_CR_INI_DELTA_POS_TRG_TYPE_SET(x) (((uint32_t)(x) << MMC_CR_INI_DELTA_POS_TRG_TYPE_SHIFT) & MMC_CR_INI_DELTA_POS_TRG_TYPE_MASK)
171 #define MMC_CR_INI_DELTA_POS_TRG_TYPE_GET(x) (((uint32_t)(x) & MMC_CR_INI_DELTA_POS_TRG_TYPE_MASK) >> MMC_CR_INI_DELTA_POS_TRG_TYPE_SHIFT)
172 
173 /*
174  * INI_POS_TRG_TYPE (RW)
175  *
176  * 0: Time Stamp in the configuration
177  * 1: Risedge of In Trg[0]
178  * 2: Risedge of In Trg[1]
179  * 3: Risedge of out trg[0]
180  * 4: Risedge of out trg[1]
181  * 5: triggered by self position trigger
182  * 6: triggered by self speed trigger
183  * Otherser: no function
184  */
185 #define MMC_CR_INI_POS_TRG_TYPE_MASK (0x700000UL)
186 #define MMC_CR_INI_POS_TRG_TYPE_SHIFT (20U)
187 #define MMC_CR_INI_POS_TRG_TYPE_SET(x) (((uint32_t)(x) << MMC_CR_INI_POS_TRG_TYPE_SHIFT) & MMC_CR_INI_POS_TRG_TYPE_MASK)
188 #define MMC_CR_INI_POS_TRG_TYPE_GET(x) (((uint32_t)(x) & MMC_CR_INI_POS_TRG_TYPE_MASK) >> MMC_CR_INI_POS_TRG_TYPE_SHIFT)
189 
190 /*
191  * INI_DELTA_POS_CMD_MSK (RW)
192  *
193  * 1: change
194  * 0: won't change
195  * bit 3: for delta accel
196  * bit 2: for delta speed
197  * bit 1: for delta revolution
198  * bit 0: for delta position
199  */
200 #define MMC_CR_INI_DELTA_POS_CMD_MSK_MASK (0xF0000UL)
201 #define MMC_CR_INI_DELTA_POS_CMD_MSK_SHIFT (16U)
202 #define MMC_CR_INI_DELTA_POS_CMD_MSK_SET(x) (((uint32_t)(x) << MMC_CR_INI_DELTA_POS_CMD_MSK_SHIFT) & MMC_CR_INI_DELTA_POS_CMD_MSK_MASK)
203 #define MMC_CR_INI_DELTA_POS_CMD_MSK_GET(x) (((uint32_t)(x) & MMC_CR_INI_DELTA_POS_CMD_MSK_MASK) >> MMC_CR_INI_DELTA_POS_CMD_MSK_SHIFT)
204 
205 /*
206  * INI_DELTA_POS_REQ (RW)
207  *
208  * 1: Command to reload the delta pos. Auto clear
209  * 0:
210  */
211 #define MMC_CR_INI_DELTA_POS_REQ_MASK (0x8000U)
212 #define MMC_CR_INI_DELTA_POS_REQ_SHIFT (15U)
213 #define MMC_CR_INI_DELTA_POS_REQ_SET(x) (((uint32_t)(x) << MMC_CR_INI_DELTA_POS_REQ_SHIFT) & MMC_CR_INI_DELTA_POS_REQ_MASK)
214 #define MMC_CR_INI_DELTA_POS_REQ_GET(x) (((uint32_t)(x) & MMC_CR_INI_DELTA_POS_REQ_MASK) >> MMC_CR_INI_DELTA_POS_REQ_SHIFT)
215 
216 /*
217  * OPEN_LOOP_MODE (RW)
218  *
219  * 1: in open loop mode
220  * 0: not in open loop mode
221  */
222 #define MMC_CR_OPEN_LOOP_MODE_MASK (0x4000U)
223 #define MMC_CR_OPEN_LOOP_MODE_SHIFT (14U)
224 #define MMC_CR_OPEN_LOOP_MODE_SET(x) (((uint32_t)(x) << MMC_CR_OPEN_LOOP_MODE_SHIFT) & MMC_CR_OPEN_LOOP_MODE_MASK)
225 #define MMC_CR_OPEN_LOOP_MODE_GET(x) (((uint32_t)(x) & MMC_CR_OPEN_LOOP_MODE_MASK) >> MMC_CR_OPEN_LOOP_MODE_SHIFT)
226 
227 /*
228  * POS_TYPE (RW)
229  *
230  * 1: 32-bit for rev+pos, with each element occupying 16 bits
231  * 0: 32-bit for rev, and 32 bit for pos
232  * When CR[MANUAL_IO]==1,
233  * 1: means that the INI_POS is acting as INI_POS cmds
234  * 0: means that the INI_POS is simulating the input of iposition and itimestamp
235  */
236 #define MMC_CR_POS_TYPE_MASK (0x2000U)
237 #define MMC_CR_POS_TYPE_SHIFT (13U)
238 #define MMC_CR_POS_TYPE_SET(x) (((uint32_t)(x) << MMC_CR_POS_TYPE_SHIFT) & MMC_CR_POS_TYPE_MASK)
239 #define MMC_CR_POS_TYPE_GET(x) (((uint32_t)(x) & MMC_CR_POS_TYPE_MASK) >> MMC_CR_POS_TYPE_SHIFT)
240 
241 /*
242  * INI_POS_CMD_MSK (RW)
243  *
244  * 1: change
245  * 0: won't change
246  * bit 3: for accel
247  * bit 2: for speed
248  * bit 1: for revolution
249  * bit 0: for position
250  */
251 #define MMC_CR_INI_POS_CMD_MSK_MASK (0x1E00U)
252 #define MMC_CR_INI_POS_CMD_MSK_SHIFT (9U)
253 #define MMC_CR_INI_POS_CMD_MSK_SET(x) (((uint32_t)(x) << MMC_CR_INI_POS_CMD_MSK_SHIFT) & MMC_CR_INI_POS_CMD_MSK_MASK)
254 #define MMC_CR_INI_POS_CMD_MSK_GET(x) (((uint32_t)(x) & MMC_CR_INI_POS_CMD_MSK_MASK) >> MMC_CR_INI_POS_CMD_MSK_SHIFT)
255 
256 /*
257  * INI_POS_REQ (RW)
258  *
259  * 1: Command to reload the positions. Auto clear
260  * 0:
261  */
262 #define MMC_CR_INI_POS_REQ_MASK (0x100U)
263 #define MMC_CR_INI_POS_REQ_SHIFT (8U)
264 #define MMC_CR_INI_POS_REQ_SET(x) (((uint32_t)(x) << MMC_CR_INI_POS_REQ_SHIFT) & MMC_CR_INI_POS_REQ_MASK)
265 #define MMC_CR_INI_POS_REQ_GET(x) (((uint32_t)(x) & MMC_CR_INI_POS_REQ_MASK) >> MMC_CR_INI_POS_REQ_SHIFT)
266 
267 /*
268  * INI_COEFS_CMD_MSK (RW)
269  *
270  * 1: change
271  * 0: won't change
272  * bit 2: for ACOEF
273  * bit 1: for ICOEF
274  * bit 0: for PCOEF
275  */
276 #define MMC_CR_INI_COEFS_CMD_MSK_MASK (0xE0U)
277 #define MMC_CR_INI_COEFS_CMD_MSK_SHIFT (5U)
278 #define MMC_CR_INI_COEFS_CMD_MSK_SET(x) (((uint32_t)(x) << MMC_CR_INI_COEFS_CMD_MSK_SHIFT) & MMC_CR_INI_COEFS_CMD_MSK_MASK)
279 #define MMC_CR_INI_COEFS_CMD_MSK_GET(x) (((uint32_t)(x) & MMC_CR_INI_COEFS_CMD_MSK_MASK) >> MMC_CR_INI_COEFS_CMD_MSK_SHIFT)
280 
281 /*
282  * INI_COEFS_CMD (RW)
283  *
284  * 1: Command to reload the coefs. Auto clear
285  * 0:
286  */
287 #define MMC_CR_INI_COEFS_CMD_MASK (0x10U)
288 #define MMC_CR_INI_COEFS_CMD_SHIFT (4U)
289 #define MMC_CR_INI_COEFS_CMD_SET(x) (((uint32_t)(x) << MMC_CR_INI_COEFS_CMD_SHIFT) & MMC_CR_INI_COEFS_CMD_MASK)
290 #define MMC_CR_INI_COEFS_CMD_GET(x) (((uint32_t)(x) & MMC_CR_INI_COEFS_CMD_MASK) >> MMC_CR_INI_COEFS_CMD_SHIFT)
291 
292 /*
293  * SHADOW_RD_REQ (RW)
294  *
295  * 1: Shadow Request for read of tracking parameters. Auto clear
296  * 0:
297  */
298 #define MMC_CR_SHADOW_RD_REQ_MASK (0x8U)
299 #define MMC_CR_SHADOW_RD_REQ_SHIFT (3U)
300 #define MMC_CR_SHADOW_RD_REQ_SET(x) (((uint32_t)(x) << MMC_CR_SHADOW_RD_REQ_SHIFT) & MMC_CR_SHADOW_RD_REQ_MASK)
301 #define MMC_CR_SHADOW_RD_REQ_GET(x) (((uint32_t)(x) & MMC_CR_SHADOW_RD_REQ_MASK) >> MMC_CR_SHADOW_RD_REQ_SHIFT)
302 
303 /*
304  * ADJOP (RW)
305  *
306  * 1: use the input iposition whenever a new iposition comes, and force the predicted output stop at the boundaries.
307  * 0: Continuous tracking mode, without any boundary check
308  */
309 #define MMC_CR_ADJOP_MASK (0x4U)
310 #define MMC_CR_ADJOP_SHIFT (2U)
311 #define MMC_CR_ADJOP_SET(x) (((uint32_t)(x) << MMC_CR_ADJOP_SHIFT) & MMC_CR_ADJOP_MASK)
312 #define MMC_CR_ADJOP_GET(x) (((uint32_t)(x) & MMC_CR_ADJOP_MASK) >> MMC_CR_ADJOP_SHIFT)
313 
314 /*
315  * DISCRETETRC (RW)
316  *
317  * 1: Discrete position input
318  * 0: Continuous position input
319  */
320 #define MMC_CR_DISCRETETRC_MASK (0x2U)
321 #define MMC_CR_DISCRETETRC_SHIFT (1U)
322 #define MMC_CR_DISCRETETRC_SET(x) (((uint32_t)(x) << MMC_CR_DISCRETETRC_SHIFT) & MMC_CR_DISCRETETRC_MASK)
323 #define MMC_CR_DISCRETETRC_GET(x) (((uint32_t)(x) & MMC_CR_DISCRETETRC_MASK) >> MMC_CR_DISCRETETRC_SHIFT)
324 
325 /*
326  * MOD_EN (RW)
327  *
328  * Module Enable
329  */
330 #define MMC_CR_MOD_EN_MASK (0x1U)
331 #define MMC_CR_MOD_EN_SHIFT (0U)
332 #define MMC_CR_MOD_EN_SET(x) (((uint32_t)(x) << MMC_CR_MOD_EN_SHIFT) & MMC_CR_MOD_EN_MASK)
333 #define MMC_CR_MOD_EN_GET(x) (((uint32_t)(x) & MMC_CR_MOD_EN_MASK) >> MMC_CR_MOD_EN_SHIFT)
334 
335 /* Bitfield definition for register: STA */
336 /*
337  * ERR_ID (RO)
338  *
339  * Tracking ERR_ID
340  */
341 #define MMC_STA_ERR_ID_MASK (0xF0000000UL)
342 #define MMC_STA_ERR_ID_SHIFT (28U)
343 #define MMC_STA_ERR_ID_GET(x) (((uint32_t)(x) & MMC_STA_ERR_ID_MASK) >> MMC_STA_ERR_ID_SHIFT)
344 
345 /*
346  * SPEED_TRG_VALID (W1C)
347  *
348  * W1C
349  */
350 #define MMC_STA_SPEED_TRG_VALID_MASK (0x400U)
351 #define MMC_STA_SPEED_TRG_VALID_SHIFT (10U)
352 #define MMC_STA_SPEED_TRG_VALID_SET(x) (((uint32_t)(x) << MMC_STA_SPEED_TRG_VALID_SHIFT) & MMC_STA_SPEED_TRG_VALID_MASK)
353 #define MMC_STA_SPEED_TRG_VALID_GET(x) (((uint32_t)(x) & MMC_STA_SPEED_TRG_VALID_MASK) >> MMC_STA_SPEED_TRG_VALID_SHIFT)
354 
355 /*
356  * POS_TRG_VALID (W1C)
357  *
358  * W1C
359  */
360 #define MMC_STA_POS_TRG_VALID_MASK (0x200U)
361 #define MMC_STA_POS_TRG_VALID_SHIFT (9U)
362 #define MMC_STA_POS_TRG_VALID_SET(x) (((uint32_t)(x) << MMC_STA_POS_TRG_VALID_SHIFT) & MMC_STA_POS_TRG_VALID_MASK)
363 #define MMC_STA_POS_TRG_VALID_GET(x) (((uint32_t)(x) & MMC_STA_POS_TRG_VALID_MASK) >> MMC_STA_POS_TRG_VALID_SHIFT)
364 
365 /*
366  * INI_DELTA_POS_REQ_CMD_DONE (W1C)
367  *
368  * W1C
369  */
370 #define MMC_STA_INI_DELTA_POS_REQ_CMD_DONE_MASK (0x100U)
371 #define MMC_STA_INI_DELTA_POS_REQ_CMD_DONE_SHIFT (8U)
372 #define MMC_STA_INI_DELTA_POS_REQ_CMD_DONE_SET(x) (((uint32_t)(x) << MMC_STA_INI_DELTA_POS_REQ_CMD_DONE_SHIFT) & MMC_STA_INI_DELTA_POS_REQ_CMD_DONE_MASK)
373 #define MMC_STA_INI_DELTA_POS_REQ_CMD_DONE_GET(x) (((uint32_t)(x) & MMC_STA_INI_DELTA_POS_REQ_CMD_DONE_MASK) >> MMC_STA_INI_DELTA_POS_REQ_CMD_DONE_SHIFT)
374 
375 /*
376  * INI_BR0_POS_REQ_CMD_DONE (W1C)
377  *
378  * W1C
379  */
380 #define MMC_STA_INI_BR0_POS_REQ_CMD_DONE_MASK (0x80U)
381 #define MMC_STA_INI_BR0_POS_REQ_CMD_DONE_SHIFT (7U)
382 #define MMC_STA_INI_BR0_POS_REQ_CMD_DONE_SET(x) (((uint32_t)(x) << MMC_STA_INI_BR0_POS_REQ_CMD_DONE_SHIFT) & MMC_STA_INI_BR0_POS_REQ_CMD_DONE_MASK)
383 #define MMC_STA_INI_BR0_POS_REQ_CMD_DONE_GET(x) (((uint32_t)(x) & MMC_STA_INI_BR0_POS_REQ_CMD_DONE_MASK) >> MMC_STA_INI_BR0_POS_REQ_CMD_DONE_SHIFT)
384 
385 /*
386  * INI_BR1_POS_REQ_CMD_DONE (W1C)
387  *
388  * W1C
389  */
390 #define MMC_STA_INI_BR1_POS_REQ_CMD_DONE_MASK (0x40U)
391 #define MMC_STA_INI_BR1_POS_REQ_CMD_DONE_SHIFT (6U)
392 #define MMC_STA_INI_BR1_POS_REQ_CMD_DONE_SET(x) (((uint32_t)(x) << MMC_STA_INI_BR1_POS_REQ_CMD_DONE_SHIFT) & MMC_STA_INI_BR1_POS_REQ_CMD_DONE_MASK)
393 #define MMC_STA_INI_BR1_POS_REQ_CMD_DONE_GET(x) (((uint32_t)(x) & MMC_STA_INI_BR1_POS_REQ_CMD_DONE_MASK) >> MMC_STA_INI_BR1_POS_REQ_CMD_DONE_SHIFT)
394 
395 /*
396  * IDLE (RO)
397  *
398  * Tracking Module in Idle status
399  */
400 #define MMC_STA_IDLE_MASK (0x20U)
401 #define MMC_STA_IDLE_SHIFT (5U)
402 #define MMC_STA_IDLE_GET(x) (((uint32_t)(x) & MMC_STA_IDLE_MASK) >> MMC_STA_IDLE_SHIFT)
403 
404 /*
405  * OOSYNC (W1C)
406  *
407  * Tracking module out-of sync. W1C
408  */
409 #define MMC_STA_OOSYNC_MASK (0x10U)
410 #define MMC_STA_OOSYNC_SHIFT (4U)
411 #define MMC_STA_OOSYNC_SET(x) (((uint32_t)(x) << MMC_STA_OOSYNC_SHIFT) & MMC_STA_OOSYNC_MASK)
412 #define MMC_STA_OOSYNC_GET(x) (((uint32_t)(x) & MMC_STA_OOSYNC_MASK) >> MMC_STA_OOSYNC_SHIFT)
413 
414 /*
415  * INI_POS_REQ_CMD_DONE (W1C)
416  *
417  * W1C
418  */
419 #define MMC_STA_INI_POS_REQ_CMD_DONE_MASK (0x4U)
420 #define MMC_STA_INI_POS_REQ_CMD_DONE_SHIFT (2U)
421 #define MMC_STA_INI_POS_REQ_CMD_DONE_SET(x) (((uint32_t)(x) << MMC_STA_INI_POS_REQ_CMD_DONE_SHIFT) & MMC_STA_INI_POS_REQ_CMD_DONE_MASK)
422 #define MMC_STA_INI_POS_REQ_CMD_DONE_GET(x) (((uint32_t)(x) & MMC_STA_INI_POS_REQ_CMD_DONE_MASK) >> MMC_STA_INI_POS_REQ_CMD_DONE_SHIFT)
423 
424 /*
425  * INI_COEFS_CMD_DONE (W1C)
426  *
427  * W1C
428  */
429 #define MMC_STA_INI_COEFS_CMD_DONE_MASK (0x2U)
430 #define MMC_STA_INI_COEFS_CMD_DONE_SHIFT (1U)
431 #define MMC_STA_INI_COEFS_CMD_DONE_SET(x) (((uint32_t)(x) << MMC_STA_INI_COEFS_CMD_DONE_SHIFT) & MMC_STA_INI_COEFS_CMD_DONE_MASK)
432 #define MMC_STA_INI_COEFS_CMD_DONE_GET(x) (((uint32_t)(x) & MMC_STA_INI_COEFS_CMD_DONE_MASK) >> MMC_STA_INI_COEFS_CMD_DONE_SHIFT)
433 
434 /*
435  * SHADOW_RD_DONE (RO)
436  *
437  * Shadow ready for read. Auto cleared by setting CR[SHADOW_RD_REQ] as 1
438  */
439 #define MMC_STA_SHADOW_RD_DONE_MASK (0x1U)
440 #define MMC_STA_SHADOW_RD_DONE_SHIFT (0U)
441 #define MMC_STA_SHADOW_RD_DONE_GET(x) (((uint32_t)(x) & MMC_STA_SHADOW_RD_DONE_MASK) >> MMC_STA_SHADOW_RD_DONE_SHIFT)
442 
443 /* Bitfield definition for register: INT_EN */
444 /*
445  * SPEED_TRG_VLD_IE (RW)
446  *
447  * Interrupt Enable for SPEED_TRG_VALID
448  */
449 #define MMC_INT_EN_SPEED_TRG_VLD_IE_MASK (0x400U)
450 #define MMC_INT_EN_SPEED_TRG_VLD_IE_SHIFT (10U)
451 #define MMC_INT_EN_SPEED_TRG_VLD_IE_SET(x) (((uint32_t)(x) << MMC_INT_EN_SPEED_TRG_VLD_IE_SHIFT) & MMC_INT_EN_SPEED_TRG_VLD_IE_MASK)
452 #define MMC_INT_EN_SPEED_TRG_VLD_IE_GET(x) (((uint32_t)(x) & MMC_INT_EN_SPEED_TRG_VLD_IE_MASK) >> MMC_INT_EN_SPEED_TRG_VLD_IE_SHIFT)
453 
454 /*
455  * POS_TRG_VLD_IE (RW)
456  *
457  * Interrupt Enable for POS_TRG_VALID
458  */
459 #define MMC_INT_EN_POS_TRG_VLD_IE_MASK (0x200U)
460 #define MMC_INT_EN_POS_TRG_VLD_IE_SHIFT (9U)
461 #define MMC_INT_EN_POS_TRG_VLD_IE_SET(x) (((uint32_t)(x) << MMC_INT_EN_POS_TRG_VLD_IE_SHIFT) & MMC_INT_EN_POS_TRG_VLD_IE_MASK)
462 #define MMC_INT_EN_POS_TRG_VLD_IE_GET(x) (((uint32_t)(x) & MMC_INT_EN_POS_TRG_VLD_IE_MASK) >> MMC_INT_EN_POS_TRG_VLD_IE_SHIFT)
463 
464 /*
465  * INI_DELTA_POS_REQ_CMD_DONE_IE (RW)
466  *
467  * Interrupt Enable for INI_DELTA_POS_REQ_CMD_DONE
468  */
469 #define MMC_INT_EN_INI_DELTA_POS_REQ_CMD_DONE_IE_MASK (0x100U)
470 #define MMC_INT_EN_INI_DELTA_POS_REQ_CMD_DONE_IE_SHIFT (8U)
471 #define MMC_INT_EN_INI_DELTA_POS_REQ_CMD_DONE_IE_SET(x) (((uint32_t)(x) << MMC_INT_EN_INI_DELTA_POS_REQ_CMD_DONE_IE_SHIFT) & MMC_INT_EN_INI_DELTA_POS_REQ_CMD_DONE_IE_MASK)
472 #define MMC_INT_EN_INI_DELTA_POS_REQ_CMD_DONE_IE_GET(x) (((uint32_t)(x) & MMC_INT_EN_INI_DELTA_POS_REQ_CMD_DONE_IE_MASK) >> MMC_INT_EN_INI_DELTA_POS_REQ_CMD_DONE_IE_SHIFT)
473 
474 /*
475  * INI_BR0_POS_REQ_CMD_DONE_IE (RW)
476  *
477  * Interrupt Enable for INI_BR0_POS_REQ_CMD_DONE
478  */
479 #define MMC_INT_EN_INI_BR0_POS_REQ_CMD_DONE_IE_MASK (0x80U)
480 #define MMC_INT_EN_INI_BR0_POS_REQ_CMD_DONE_IE_SHIFT (7U)
481 #define MMC_INT_EN_INI_BR0_POS_REQ_CMD_DONE_IE_SET(x) (((uint32_t)(x) << MMC_INT_EN_INI_BR0_POS_REQ_CMD_DONE_IE_SHIFT) & MMC_INT_EN_INI_BR0_POS_REQ_CMD_DONE_IE_MASK)
482 #define MMC_INT_EN_INI_BR0_POS_REQ_CMD_DONE_IE_GET(x) (((uint32_t)(x) & MMC_INT_EN_INI_BR0_POS_REQ_CMD_DONE_IE_MASK) >> MMC_INT_EN_INI_BR0_POS_REQ_CMD_DONE_IE_SHIFT)
483 
484 /*
485  * INI_BR1_POS_REQ_CMD_DONE_IE (RW)
486  *
487  * Interrupt Enable for INI_BR1_POS_REQ_CMD_DONE
488  */
489 #define MMC_INT_EN_INI_BR1_POS_REQ_CMD_DONE_IE_MASK (0x40U)
490 #define MMC_INT_EN_INI_BR1_POS_REQ_CMD_DONE_IE_SHIFT (6U)
491 #define MMC_INT_EN_INI_BR1_POS_REQ_CMD_DONE_IE_SET(x) (((uint32_t)(x) << MMC_INT_EN_INI_BR1_POS_REQ_CMD_DONE_IE_SHIFT) & MMC_INT_EN_INI_BR1_POS_REQ_CMD_DONE_IE_MASK)
492 #define MMC_INT_EN_INI_BR1_POS_REQ_CMD_DONE_IE_GET(x) (((uint32_t)(x) & MMC_INT_EN_INI_BR1_POS_REQ_CMD_DONE_IE_MASK) >> MMC_INT_EN_INI_BR1_POS_REQ_CMD_DONE_IE_SHIFT)
493 
494 /*
495  * OOSYNC_IE (RW)
496  *
497  * Interrupt Enable for OOSYNC
498  */
499 #define MMC_INT_EN_OOSYNC_IE_MASK (0x10U)
500 #define MMC_INT_EN_OOSYNC_IE_SHIFT (4U)
501 #define MMC_INT_EN_OOSYNC_IE_SET(x) (((uint32_t)(x) << MMC_INT_EN_OOSYNC_IE_SHIFT) & MMC_INT_EN_OOSYNC_IE_MASK)
502 #define MMC_INT_EN_OOSYNC_IE_GET(x) (((uint32_t)(x) & MMC_INT_EN_OOSYNC_IE_MASK) >> MMC_INT_EN_OOSYNC_IE_SHIFT)
503 
504 /*
505  * INI_POS_REQ_CMD_DONE_IE (RW)
506  *
507  * Interrupt Enable for INI_POS_REQ_CMD_DONE
508  */
509 #define MMC_INT_EN_INI_POS_REQ_CMD_DONE_IE_MASK (0x4U)
510 #define MMC_INT_EN_INI_POS_REQ_CMD_DONE_IE_SHIFT (2U)
511 #define MMC_INT_EN_INI_POS_REQ_CMD_DONE_IE_SET(x) (((uint32_t)(x) << MMC_INT_EN_INI_POS_REQ_CMD_DONE_IE_SHIFT) & MMC_INT_EN_INI_POS_REQ_CMD_DONE_IE_MASK)
512 #define MMC_INT_EN_INI_POS_REQ_CMD_DONE_IE_GET(x) (((uint32_t)(x) & MMC_INT_EN_INI_POS_REQ_CMD_DONE_IE_MASK) >> MMC_INT_EN_INI_POS_REQ_CMD_DONE_IE_SHIFT)
513 
514 /*
515  * INI_COEFS_CMD_DONE_IE (RW)
516  *
517  * Interrupt Enable for INI_COEFS_CMD_DONE
518  */
519 #define MMC_INT_EN_INI_COEFS_CMD_DONE_IE_MASK (0x2U)
520 #define MMC_INT_EN_INI_COEFS_CMD_DONE_IE_SHIFT (1U)
521 #define MMC_INT_EN_INI_COEFS_CMD_DONE_IE_SET(x) (((uint32_t)(x) << MMC_INT_EN_INI_COEFS_CMD_DONE_IE_SHIFT) & MMC_INT_EN_INI_COEFS_CMD_DONE_IE_MASK)
522 #define MMC_INT_EN_INI_COEFS_CMD_DONE_IE_GET(x) (((uint32_t)(x) & MMC_INT_EN_INI_COEFS_CMD_DONE_IE_MASK) >> MMC_INT_EN_INI_COEFS_CMD_DONE_IE_SHIFT)
523 
524 /*
525  * SHADOW_RD_DONE_IE (RW)
526  *
527  * Interrupt Enable for SHADOW_RD_DONE
528  */
529 #define MMC_INT_EN_SHADOW_RD_DONE_IE_MASK (0x1U)
530 #define MMC_INT_EN_SHADOW_RD_DONE_IE_SHIFT (0U)
531 #define MMC_INT_EN_SHADOW_RD_DONE_IE_SET(x) (((uint32_t)(x) << MMC_INT_EN_SHADOW_RD_DONE_IE_SHIFT) & MMC_INT_EN_SHADOW_RD_DONE_IE_MASK)
532 #define MMC_INT_EN_SHADOW_RD_DONE_IE_GET(x) (((uint32_t)(x) & MMC_INT_EN_SHADOW_RD_DONE_IE_MASK) >> MMC_INT_EN_SHADOW_RD_DONE_IE_SHIFT)
533 
534 /* Bitfield definition for register: SYSCLK_FREQ */
535 /*
536  * VAL (RW)
537  *
538  * system clock frequency, ufix<32, 0>
539  */
540 #define MMC_SYSCLK_FREQ_VAL_MASK (0xFFFFFFFFUL)
541 #define MMC_SYSCLK_FREQ_VAL_SHIFT (0U)
542 #define MMC_SYSCLK_FREQ_VAL_SET(x) (((uint32_t)(x) << MMC_SYSCLK_FREQ_VAL_SHIFT) & MMC_SYSCLK_FREQ_VAL_MASK)
543 #define MMC_SYSCLK_FREQ_VAL_GET(x) (((uint32_t)(x) & MMC_SYSCLK_FREQ_VAL_MASK) >> MMC_SYSCLK_FREQ_VAL_SHIFT)
544 
545 /* Bitfield definition for register: SYSCLK_PERIOD */
546 /*
547  * VAL (RW)
548  *
549  * round( the value of clock period * (2^24)*(2^20) ), ufix<32, 0>
550  */
551 #define MMC_SYSCLK_PERIOD_VAL_MASK (0xFFFFFFFFUL)
552 #define MMC_SYSCLK_PERIOD_VAL_SHIFT (0U)
553 #define MMC_SYSCLK_PERIOD_VAL_SET(x) (((uint32_t)(x) << MMC_SYSCLK_PERIOD_VAL_SHIFT) & MMC_SYSCLK_PERIOD_VAL_MASK)
554 #define MMC_SYSCLK_PERIOD_VAL_GET(x) (((uint32_t)(x) & MMC_SYSCLK_PERIOD_VAL_MASK) >> MMC_SYSCLK_PERIOD_VAL_SHIFT)
555 
556 /* Bitfield definition for register: OOSYNC_THETA_THR */
557 /*
558  * VAL (RW)
559  *
560  * the threshold of theta difference between actual and prediction for out-of-sync determination,ufix<32, 32>
561  */
562 #define MMC_OOSYNC_THETA_THR_VAL_MASK (0xFFFFFFFFUL)
563 #define MMC_OOSYNC_THETA_THR_VAL_SHIFT (0U)
564 #define MMC_OOSYNC_THETA_THR_VAL_SET(x) (((uint32_t)(x) << MMC_OOSYNC_THETA_THR_VAL_SHIFT) & MMC_OOSYNC_THETA_THR_VAL_MASK)
565 #define MMC_OOSYNC_THETA_THR_VAL_GET(x) (((uint32_t)(x) & MMC_OOSYNC_THETA_THR_VAL_MASK) >> MMC_OOSYNC_THETA_THR_VAL_SHIFT)
566 
567 /* Bitfield definition for register: DISCRETECFG0 */
568 /*
569  * POSMAX (RW)
570  *
571  * Max ID Of Lines. For example-1, for 512 lines, it is 511. ufix<32, 0>
572  */
573 #define MMC_DISCRETECFG0_POSMAX_MASK (0xFFFFFUL)
574 #define MMC_DISCRETECFG0_POSMAX_SHIFT (0U)
575 #define MMC_DISCRETECFG0_POSMAX_SET(x) (((uint32_t)(x) << MMC_DISCRETECFG0_POSMAX_SHIFT) & MMC_DISCRETECFG0_POSMAX_MASK)
576 #define MMC_DISCRETECFG0_POSMAX_GET(x) (((uint32_t)(x) & MMC_DISCRETECFG0_POSMAX_MASK) >> MMC_DISCRETECFG0_POSMAX_SHIFT)
577 
578 /* Bitfield definition for register: DISCRETECFG1 */
579 /*
580  * INV_POSMAX (RW)
581  *
582  * discrete mode: ufix<32, 0> of 1/(Number Of Lines)
583  * continuous mode: the max delta for tracking from the last received position, ufix<32, 32>
584  */
585 #define MMC_DISCRETECFG1_INV_POSMAX_MASK (0xFFFFFFFFUL)
586 #define MMC_DISCRETECFG1_INV_POSMAX_SHIFT (0U)
587 #define MMC_DISCRETECFG1_INV_POSMAX_SET(x) (((uint32_t)(x) << MMC_DISCRETECFG1_INV_POSMAX_SHIFT) & MMC_DISCRETECFG1_INV_POSMAX_MASK)
588 #define MMC_DISCRETECFG1_INV_POSMAX_GET(x) (((uint32_t)(x) & MMC_DISCRETECFG1_INV_POSMAX_MASK) >> MMC_DISCRETECFG1_INV_POSMAX_SHIFT)
589 
590 /* Bitfield definition for register: CONTCFG0 */
591 /*
592  * HALF_CIRC_THETA (RW)
593  *
594  * the theta for cal the clockwise or anticlockwise rotation between two adjacent inputs, ufix<32, 32>
595  */
596 #define MMC_CONTCFG0_HALF_CIRC_THETA_MASK (0xFFFFFFFFUL)
597 #define MMC_CONTCFG0_HALF_CIRC_THETA_SHIFT (0U)
598 #define MMC_CONTCFG0_HALF_CIRC_THETA_SET(x) (((uint32_t)(x) << MMC_CONTCFG0_HALF_CIRC_THETA_SHIFT) & MMC_CONTCFG0_HALF_CIRC_THETA_MASK)
599 #define MMC_CONTCFG0_HALF_CIRC_THETA_GET(x) (((uint32_t)(x) & MMC_CONTCFG0_HALF_CIRC_THETA_MASK) >> MMC_CONTCFG0_HALF_CIRC_THETA_SHIFT)
600 
601 /* Bitfield definition for register: INI_POS_TIME */
602 /*
603  * VAL (RW)
604  *
605  * indicate the time to change the values.
606  * 0: instant change
607  */
608 #define MMC_INI_POS_TIME_VAL_MASK (0xFFFFFFFFUL)
609 #define MMC_INI_POS_TIME_VAL_SHIFT (0U)
610 #define MMC_INI_POS_TIME_VAL_SET(x) (((uint32_t)(x) << MMC_INI_POS_TIME_VAL_SHIFT) & MMC_INI_POS_TIME_VAL_MASK)
611 #define MMC_INI_POS_TIME_VAL_GET(x) (((uint32_t)(x) & MMC_INI_POS_TIME_VAL_MASK) >> MMC_INI_POS_TIME_VAL_SHIFT)
612 
613 /* Bitfield definition for register: INI_POS */
614 /*
615  * VAL (RW)
616  *
617  * the value;
618  * continuous mode: ufix<32, 32>
619  */
620 #define MMC_INI_POS_VAL_MASK (0xFFFFFFFFUL)
621 #define MMC_INI_POS_VAL_SHIFT (0U)
622 #define MMC_INI_POS_VAL_SET(x) (((uint32_t)(x) << MMC_INI_POS_VAL_SHIFT) & MMC_INI_POS_VAL_MASK)
623 #define MMC_INI_POS_VAL_GET(x) (((uint32_t)(x) & MMC_INI_POS_VAL_MASK) >> MMC_INI_POS_VAL_SHIFT)
624 
625 /* Bitfield definition for register: INI_REV */
626 /*
627  * VAL (RW)
628  *
629  * the value;
630  * continuous mode: ufix<32, 0>
631  */
632 #define MMC_INI_REV_VAL_MASK (0xFFFFFFFFUL)
633 #define MMC_INI_REV_VAL_SHIFT (0U)
634 #define MMC_INI_REV_VAL_SET(x) (((uint32_t)(x) << MMC_INI_REV_VAL_SHIFT) & MMC_INI_REV_VAL_MASK)
635 #define MMC_INI_REV_VAL_GET(x) (((uint32_t)(x) & MMC_INI_REV_VAL_MASK) >> MMC_INI_REV_VAL_SHIFT)
636 
637 /* Bitfield definition for register: INI_SPEED */
638 /*
639  * VAL (RW)
640  *
641  * the value;
642  * continuous mode: fix<32, 19>
643  */
644 #define MMC_INI_SPEED_VAL_MASK (0xFFFFFFFFUL)
645 #define MMC_INI_SPEED_VAL_SHIFT (0U)
646 #define MMC_INI_SPEED_VAL_SET(x) (((uint32_t)(x) << MMC_INI_SPEED_VAL_SHIFT) & MMC_INI_SPEED_VAL_MASK)
647 #define MMC_INI_SPEED_VAL_GET(x) (((uint32_t)(x) & MMC_INI_SPEED_VAL_MASK) >> MMC_INI_SPEED_VAL_SHIFT)
648 
649 /* Bitfield definition for register: INI_ACCEL */
650 /*
651  * VAL (RW)
652  *
653  * the value
654  * continuous mode: fix<32, 19>
655  */
656 #define MMC_INI_ACCEL_VAL_MASK (0xFFFFFFFFUL)
657 #define MMC_INI_ACCEL_VAL_SHIFT (0U)
658 #define MMC_INI_ACCEL_VAL_SET(x) (((uint32_t)(x) << MMC_INI_ACCEL_VAL_SHIFT) & MMC_INI_ACCEL_VAL_MASK)
659 #define MMC_INI_ACCEL_VAL_GET(x) (((uint32_t)(x) & MMC_INI_ACCEL_VAL_MASK) >> MMC_INI_ACCEL_VAL_SHIFT)
660 
661 /* Bitfield definition for register: INI_COEF_TIME */
662 /*
663  * VAL (RW)
664  *
665  * indicate the time to change the values.
666  * 0: instant change
667  */
668 #define MMC_INI_COEF_TIME_VAL_MASK (0xFFFFFFFFUL)
669 #define MMC_INI_COEF_TIME_VAL_SHIFT (0U)
670 #define MMC_INI_COEF_TIME_VAL_SET(x) (((uint32_t)(x) << MMC_INI_COEF_TIME_VAL_SHIFT) & MMC_INI_COEF_TIME_VAL_MASK)
671 #define MMC_INI_COEF_TIME_VAL_GET(x) (((uint32_t)(x) & MMC_INI_COEF_TIME_VAL_MASK) >> MMC_INI_COEF_TIME_VAL_SHIFT)
672 
673 /* Bitfield definition for register: INI_PCOEF */
674 /*
675  * VAL (RW)
676  *
677  * the value, fix<32, 15>
678  */
679 #define MMC_INI_PCOEF_VAL_MASK (0xFFFFFFFFUL)
680 #define MMC_INI_PCOEF_VAL_SHIFT (0U)
681 #define MMC_INI_PCOEF_VAL_SET(x) (((uint32_t)(x) << MMC_INI_PCOEF_VAL_SHIFT) & MMC_INI_PCOEF_VAL_MASK)
682 #define MMC_INI_PCOEF_VAL_GET(x) (((uint32_t)(x) & MMC_INI_PCOEF_VAL_MASK) >> MMC_INI_PCOEF_VAL_SHIFT)
683 
684 /* Bitfield definition for register: INI_ICOEF */
685 /*
686  * VAL (RW)
687  *
688  * the value, fix<32, 21>
689  */
690 #define MMC_INI_ICOEF_VAL_MASK (0xFFFFFFFFUL)
691 #define MMC_INI_ICOEF_VAL_SHIFT (0U)
692 #define MMC_INI_ICOEF_VAL_SET(x) (((uint32_t)(x) << MMC_INI_ICOEF_VAL_SHIFT) & MMC_INI_ICOEF_VAL_MASK)
693 #define MMC_INI_ICOEF_VAL_GET(x) (((uint32_t)(x) & MMC_INI_ICOEF_VAL_MASK) >> MMC_INI_ICOEF_VAL_SHIFT)
694 
695 /* Bitfield definition for register: INI_ACOEF */
696 /*
697  * VAL (RW)
698  *
699  * the value, fix<32, 19>
700  */
701 #define MMC_INI_ACOEF_VAL_MASK (0xFFFFFFFFUL)
702 #define MMC_INI_ACOEF_VAL_SHIFT (0U)
703 #define MMC_INI_ACOEF_VAL_SET(x) (((uint32_t)(x) << MMC_INI_ACOEF_VAL_SHIFT) & MMC_INI_ACOEF_VAL_MASK)
704 #define MMC_INI_ACOEF_VAL_GET(x) (((uint32_t)(x) & MMC_INI_ACOEF_VAL_MASK) >> MMC_INI_ACOEF_VAL_SHIFT)
705 
706 /* Bitfield definition for register: ESTM_TIM */
707 /*
708  * VAL (RO)
709  *
710  * the value
711  */
712 #define MMC_ESTM_TIM_VAL_MASK (0xFFFFFFFFUL)
713 #define MMC_ESTM_TIM_VAL_SHIFT (0U)
714 #define MMC_ESTM_TIM_VAL_GET(x) (((uint32_t)(x) & MMC_ESTM_TIM_VAL_MASK) >> MMC_ESTM_TIM_VAL_SHIFT)
715 
716 /* Bitfield definition for register: ESTM_POS */
717 /*
718  * VAL (RO)
719  *
720  * the value
721  */
722 #define MMC_ESTM_POS_VAL_MASK (0xFFFFFFFFUL)
723 #define MMC_ESTM_POS_VAL_SHIFT (0U)
724 #define MMC_ESTM_POS_VAL_GET(x) (((uint32_t)(x) & MMC_ESTM_POS_VAL_MASK) >> MMC_ESTM_POS_VAL_SHIFT)
725 
726 /* Bitfield definition for register: ESTM_REV */
727 /*
728  * VAL (RO)
729  *
730  * the value
731  */
732 #define MMC_ESTM_REV_VAL_MASK (0xFFFFFFFFUL)
733 #define MMC_ESTM_REV_VAL_SHIFT (0U)
734 #define MMC_ESTM_REV_VAL_GET(x) (((uint32_t)(x) & MMC_ESTM_REV_VAL_MASK) >> MMC_ESTM_REV_VAL_SHIFT)
735 
736 /* Bitfield definition for register: ESTM_SPEED */
737 /*
738  * VAL (RO)
739  *
740  * the value
741  */
742 #define MMC_ESTM_SPEED_VAL_MASK (0xFFFFFFFFUL)
743 #define MMC_ESTM_SPEED_VAL_SHIFT (0U)
744 #define MMC_ESTM_SPEED_VAL_GET(x) (((uint32_t)(x) & MMC_ESTM_SPEED_VAL_MASK) >> MMC_ESTM_SPEED_VAL_SHIFT)
745 
746 /* Bitfield definition for register: ESTM_ACCEL */
747 /*
748  * VAL (RO)
749  *
750  * the value
751  */
752 #define MMC_ESTM_ACCEL_VAL_MASK (0xFFFFFFFFUL)
753 #define MMC_ESTM_ACCEL_VAL_SHIFT (0U)
754 #define MMC_ESTM_ACCEL_VAL_GET(x) (((uint32_t)(x) & MMC_ESTM_ACCEL_VAL_MASK) >> MMC_ESTM_ACCEL_VAL_SHIFT)
755 
756 /* Bitfield definition for register: CUR_PCOEF */
757 /*
758  * VAL (RO)
759  *
760  * the value
761  */
762 #define MMC_CUR_PCOEF_VAL_MASK (0xFFFFFFFFUL)
763 #define MMC_CUR_PCOEF_VAL_SHIFT (0U)
764 #define MMC_CUR_PCOEF_VAL_GET(x) (((uint32_t)(x) & MMC_CUR_PCOEF_VAL_MASK) >> MMC_CUR_PCOEF_VAL_SHIFT)
765 
766 /* Bitfield definition for register: CUR_ICOEF */
767 /*
768  * VAL (RO)
769  *
770  * the value
771  */
772 #define MMC_CUR_ICOEF_VAL_MASK (0xFFFFFFFFUL)
773 #define MMC_CUR_ICOEF_VAL_SHIFT (0U)
774 #define MMC_CUR_ICOEF_VAL_GET(x) (((uint32_t)(x) & MMC_CUR_ICOEF_VAL_MASK) >> MMC_CUR_ICOEF_VAL_SHIFT)
775 
776 /* Bitfield definition for register: CUR_ACOEF */
777 /*
778  * VAL (RO)
779  *
780  * the value
781  */
782 #define MMC_CUR_ACOEF_VAL_MASK (0xFFFFFFFFUL)
783 #define MMC_CUR_ACOEF_VAL_SHIFT (0U)
784 #define MMC_CUR_ACOEF_VAL_GET(x) (((uint32_t)(x) & MMC_CUR_ACOEF_VAL_MASK) >> MMC_CUR_ACOEF_VAL_SHIFT)
785 
786 /* Bitfield definition for register: INI_DELTA_POS_TIME */
787 /*
788  * VAL (RW)
789  *
790  * indicate the time to change the values.
791  * 0: instant change
792  */
793 #define MMC_INI_DELTA_POS_TIME_VAL_MASK (0xFFFFFFFFUL)
794 #define MMC_INI_DELTA_POS_TIME_VAL_SHIFT (0U)
795 #define MMC_INI_DELTA_POS_TIME_VAL_SET(x) (((uint32_t)(x) << MMC_INI_DELTA_POS_TIME_VAL_SHIFT) & MMC_INI_DELTA_POS_TIME_VAL_MASK)
796 #define MMC_INI_DELTA_POS_TIME_VAL_GET(x) (((uint32_t)(x) & MMC_INI_DELTA_POS_TIME_VAL_MASK) >> MMC_INI_DELTA_POS_TIME_VAL_SHIFT)
797 
798 /* Bitfield definition for register: INI_DELTA_POS */
799 /*
800  * VAL (RW)
801  *
802  * the value
803  * continuous mode: ufix <32, 32>
804  */
805 #define MMC_INI_DELTA_POS_VAL_MASK (0xFFFFFFFFUL)
806 #define MMC_INI_DELTA_POS_VAL_SHIFT (0U)
807 #define MMC_INI_DELTA_POS_VAL_SET(x) (((uint32_t)(x) << MMC_INI_DELTA_POS_VAL_SHIFT) & MMC_INI_DELTA_POS_VAL_MASK)
808 #define MMC_INI_DELTA_POS_VAL_GET(x) (((uint32_t)(x) & MMC_INI_DELTA_POS_VAL_MASK) >> MMC_INI_DELTA_POS_VAL_SHIFT)
809 
810 /* Bitfield definition for register: INI_DELTA_REV */
811 /*
812  * VAL (RW)
813  *
814  * the value
815  * continuous mode: fix<32, 0>
816  */
817 #define MMC_INI_DELTA_REV_VAL_MASK (0xFFFFFFFFUL)
818 #define MMC_INI_DELTA_REV_VAL_SHIFT (0U)
819 #define MMC_INI_DELTA_REV_VAL_SET(x) (((uint32_t)(x) << MMC_INI_DELTA_REV_VAL_SHIFT) & MMC_INI_DELTA_REV_VAL_MASK)
820 #define MMC_INI_DELTA_REV_VAL_GET(x) (((uint32_t)(x) & MMC_INI_DELTA_REV_VAL_MASK) >> MMC_INI_DELTA_REV_VAL_SHIFT)
821 
822 /* Bitfield definition for register: INI_DELTA_SPEED */
823 /*
824  * VAL (RW)
825  *
826  * the value;
827  * continuous mode: fix<32, 19>
828  */
829 #define MMC_INI_DELTA_SPEED_VAL_MASK (0xFFFFFFFFUL)
830 #define MMC_INI_DELTA_SPEED_VAL_SHIFT (0U)
831 #define MMC_INI_DELTA_SPEED_VAL_SET(x) (((uint32_t)(x) << MMC_INI_DELTA_SPEED_VAL_SHIFT) & MMC_INI_DELTA_SPEED_VAL_MASK)
832 #define MMC_INI_DELTA_SPEED_VAL_GET(x) (((uint32_t)(x) & MMC_INI_DELTA_SPEED_VAL_MASK) >> MMC_INI_DELTA_SPEED_VAL_SHIFT)
833 
834 /* Bitfield definition for register: INI_DELTA_ACCEL */
835 /*
836  * VAL (RW)
837  *
838  * the value
839  * continuous mode: fix<32, 19>
840  */
841 #define MMC_INI_DELTA_ACCEL_VAL_MASK (0xFFFFFFFFUL)
842 #define MMC_INI_DELTA_ACCEL_VAL_SHIFT (0U)
843 #define MMC_INI_DELTA_ACCEL_VAL_SET(x) (((uint32_t)(x) << MMC_INI_DELTA_ACCEL_VAL_SHIFT) & MMC_INI_DELTA_ACCEL_VAL_MASK)
844 #define MMC_INI_DELTA_ACCEL_VAL_GET(x) (((uint32_t)(x) & MMC_INI_DELTA_ACCEL_VAL_MASK) >> MMC_INI_DELTA_ACCEL_VAL_SHIFT)
845 
846 /* Bitfield definition for register: POS_TRG_CFG */
847 /*
848  * EDGE (RW)
849  *
850  * 0: (rising edge) pos inc greater than, 1: (falling edge)  pos dec less than
851  */
852 #define MMC_POS_TRG_CFG_EDGE_MASK (0x2U)
853 #define MMC_POS_TRG_CFG_EDGE_SHIFT (1U)
854 #define MMC_POS_TRG_CFG_EDGE_SET(x) (((uint32_t)(x) << MMC_POS_TRG_CFG_EDGE_SHIFT) & MMC_POS_TRG_CFG_EDGE_MASK)
855 #define MMC_POS_TRG_CFG_EDGE_GET(x) (((uint32_t)(x) & MMC_POS_TRG_CFG_EDGE_MASK) >> MMC_POS_TRG_CFG_EDGE_SHIFT)
856 
857 /*
858  * EN (RW)
859  *
860  * 1-trigger valid; 0-Trigger not valid"
861  */
862 #define MMC_POS_TRG_CFG_EN_MASK (0x1U)
863 #define MMC_POS_TRG_CFG_EN_SHIFT (0U)
864 #define MMC_POS_TRG_CFG_EN_SET(x) (((uint32_t)(x) << MMC_POS_TRG_CFG_EN_SHIFT) & MMC_POS_TRG_CFG_EN_MASK)
865 #define MMC_POS_TRG_CFG_EN_GET(x) (((uint32_t)(x) & MMC_POS_TRG_CFG_EN_MASK) >> MMC_POS_TRG_CFG_EN_SHIFT)
866 
867 /* Bitfield definition for register: POS_TRG_POS_THR */
868 /*
869  * VAL (RW)
870  *
871  * For pos out trigger (pos).
872  * ufix<32, 32>
873  */
874 #define MMC_POS_TRG_POS_THR_VAL_MASK (0xFFFFFFFFUL)
875 #define MMC_POS_TRG_POS_THR_VAL_SHIFT (0U)
876 #define MMC_POS_TRG_POS_THR_VAL_SET(x) (((uint32_t)(x) << MMC_POS_TRG_POS_THR_VAL_SHIFT) & MMC_POS_TRG_POS_THR_VAL_MASK)
877 #define MMC_POS_TRG_POS_THR_VAL_GET(x) (((uint32_t)(x) & MMC_POS_TRG_POS_THR_VAL_MASK) >> MMC_POS_TRG_POS_THR_VAL_SHIFT)
878 
879 /* Bitfield definition for register: POS_TRG_REV_THR */
880 /*
881  * VAL (RW)
882  *
883  * For pos out trigger (rev)
884  * fix<32, 0>
885  */
886 #define MMC_POS_TRG_REV_THR_VAL_MASK (0xFFFFFFFFUL)
887 #define MMC_POS_TRG_REV_THR_VAL_SHIFT (0U)
888 #define MMC_POS_TRG_REV_THR_VAL_SET(x) (((uint32_t)(x) << MMC_POS_TRG_REV_THR_VAL_SHIFT) & MMC_POS_TRG_REV_THR_VAL_MASK)
889 #define MMC_POS_TRG_REV_THR_VAL_GET(x) (((uint32_t)(x) & MMC_POS_TRG_REV_THR_VAL_MASK) >> MMC_POS_TRG_REV_THR_VAL_SHIFT)
890 
891 /* Bitfield definition for register: SPEED_TRG_CFG */
892 /*
893  * COMP_TYPE (RW)
894  *
895  * 1: Use abs value for comparion. 0: Use the speed with direction info (so not the abs value)
896  */
897 #define MMC_SPEED_TRG_CFG_COMP_TYPE_MASK (0x4U)
898 #define MMC_SPEED_TRG_CFG_COMP_TYPE_SHIFT (2U)
899 #define MMC_SPEED_TRG_CFG_COMP_TYPE_SET(x) (((uint32_t)(x) << MMC_SPEED_TRG_CFG_COMP_TYPE_SHIFT) & MMC_SPEED_TRG_CFG_COMP_TYPE_MASK)
900 #define MMC_SPEED_TRG_CFG_COMP_TYPE_GET(x) (((uint32_t)(x) & MMC_SPEED_TRG_CFG_COMP_TYPE_MASK) >> MMC_SPEED_TRG_CFG_COMP_TYPE_SHIFT)
901 
902 /*
903  * EDGE (RW)
904  *
905  * 0: (rising edge) speed inc greater than, 1: (falling edge)  speed dec less than
906  */
907 #define MMC_SPEED_TRG_CFG_EDGE_MASK (0x2U)
908 #define MMC_SPEED_TRG_CFG_EDGE_SHIFT (1U)
909 #define MMC_SPEED_TRG_CFG_EDGE_SET(x) (((uint32_t)(x) << MMC_SPEED_TRG_CFG_EDGE_SHIFT) & MMC_SPEED_TRG_CFG_EDGE_MASK)
910 #define MMC_SPEED_TRG_CFG_EDGE_GET(x) (((uint32_t)(x) & MMC_SPEED_TRG_CFG_EDGE_MASK) >> MMC_SPEED_TRG_CFG_EDGE_SHIFT)
911 
912 /*
913  * EN (RW)
914  *
915  * 1-trigger valid; 0-Trigger not valid
916  * Normally it means either the max pos speed, or the min negative speed.
917  */
918 #define MMC_SPEED_TRG_CFG_EN_MASK (0x1U)
919 #define MMC_SPEED_TRG_CFG_EN_SHIFT (0U)
920 #define MMC_SPEED_TRG_CFG_EN_SET(x) (((uint32_t)(x) << MMC_SPEED_TRG_CFG_EN_SHIFT) & MMC_SPEED_TRG_CFG_EN_MASK)
921 #define MMC_SPEED_TRG_CFG_EN_GET(x) (((uint32_t)(x) & MMC_SPEED_TRG_CFG_EN_MASK) >> MMC_SPEED_TRG_CFG_EN_SHIFT)
922 
923 /* Bitfield definition for register: SPEED_TRG_THR */
924 /*
925  * VAL (RW)
926  *
927  * For speed trigger.
928  * continuous mode: fix<32, 19>
929  */
930 #define MMC_SPEED_TRG_THR_VAL_MASK (0xFFFFFFFFUL)
931 #define MMC_SPEED_TRG_THR_VAL_SHIFT (0U)
932 #define MMC_SPEED_TRG_THR_VAL_SET(x) (((uint32_t)(x) << MMC_SPEED_TRG_THR_VAL_SHIFT) & MMC_SPEED_TRG_THR_VAL_MASK)
933 #define MMC_SPEED_TRG_THR_VAL_GET(x) (((uint32_t)(x) & MMC_SPEED_TRG_THR_VAL_MASK) >> MMC_SPEED_TRG_THR_VAL_SHIFT)
934 
935 /* Bitfield definition for register of struct array COEF_TRG_CFG: ERR_THR */
936 /*
937  * VAL (RW)
938  *
939  * ErrThr0: Error Threshold 0, (abs(tracking error)>= will choose the coefs as below)
940  * Note: ErrThr0>ErrThr1>ErrThr2
941  * ufix<31, 28>
942  */
943 #define MMC_COEF_TRG_CFG_ERR_THR_VAL_MASK (0xFFFFFFFFUL)
944 #define MMC_COEF_TRG_CFG_ERR_THR_VAL_SHIFT (0U)
945 #define MMC_COEF_TRG_CFG_ERR_THR_VAL_SET(x) (((uint32_t)(x) << MMC_COEF_TRG_CFG_ERR_THR_VAL_SHIFT) & MMC_COEF_TRG_CFG_ERR_THR_VAL_MASK)
946 #define MMC_COEF_TRG_CFG_ERR_THR_VAL_GET(x) (((uint32_t)(x) & MMC_COEF_TRG_CFG_ERR_THR_VAL_MASK) >> MMC_COEF_TRG_CFG_ERR_THR_VAL_SHIFT)
947 
948 /* Bitfield definition for register of struct array COEF_TRG_CFG: P */
949 /*
950  * VAL (RW)
951  *
952  * P0_Coef, fix<32, 15>
953  */
954 #define MMC_COEF_TRG_CFG_P_VAL_MASK (0xFFFFFFFFUL)
955 #define MMC_COEF_TRG_CFG_P_VAL_SHIFT (0U)
956 #define MMC_COEF_TRG_CFG_P_VAL_SET(x) (((uint32_t)(x) << MMC_COEF_TRG_CFG_P_VAL_SHIFT) & MMC_COEF_TRG_CFG_P_VAL_MASK)
957 #define MMC_COEF_TRG_CFG_P_VAL_GET(x) (((uint32_t)(x) & MMC_COEF_TRG_CFG_P_VAL_MASK) >> MMC_COEF_TRG_CFG_P_VAL_SHIFT)
958 
959 /* Bitfield definition for register of struct array COEF_TRG_CFG: I */
960 /*
961  * VAL (RW)
962  *
963  * I0_Coef, fix<32, 21>
964  */
965 #define MMC_COEF_TRG_CFG_I_VAL_MASK (0xFFFFFFFFUL)
966 #define MMC_COEF_TRG_CFG_I_VAL_SHIFT (0U)
967 #define MMC_COEF_TRG_CFG_I_VAL_SET(x) (((uint32_t)(x) << MMC_COEF_TRG_CFG_I_VAL_SHIFT) & MMC_COEF_TRG_CFG_I_VAL_MASK)
968 #define MMC_COEF_TRG_CFG_I_VAL_GET(x) (((uint32_t)(x) & MMC_COEF_TRG_CFG_I_VAL_MASK) >> MMC_COEF_TRG_CFG_I_VAL_SHIFT)
969 
970 /* Bitfield definition for register of struct array COEF_TRG_CFG: A */
971 /*
972  * VAL (RW)
973  *
974  * A0_Coef,fix<32, 19>
975  */
976 #define MMC_COEF_TRG_CFG_A_VAL_MASK (0xFFFFFFFFUL)
977 #define MMC_COEF_TRG_CFG_A_VAL_SHIFT (0U)
978 #define MMC_COEF_TRG_CFG_A_VAL_SET(x) (((uint32_t)(x) << MMC_COEF_TRG_CFG_A_VAL_SHIFT) & MMC_COEF_TRG_CFG_A_VAL_MASK)
979 #define MMC_COEF_TRG_CFG_A_VAL_GET(x) (((uint32_t)(x) & MMC_COEF_TRG_CFG_A_VAL_MASK) >> MMC_COEF_TRG_CFG_A_VAL_SHIFT)
980 
981 /* Bitfield definition for register of struct array COEF_TRG_CFG: TIME */
982 /*
983  * VAL (RW)
984  *
985  * CoefTime0: Time Stayed using this coefs (counted in input samples). Ideal value of tracing cycles should +1. ufix<32,0>
986  */
987 #define MMC_COEF_TRG_CFG_TIME_VAL_MASK (0xFFFFFFFFUL)
988 #define MMC_COEF_TRG_CFG_TIME_VAL_SHIFT (0U)
989 #define MMC_COEF_TRG_CFG_TIME_VAL_SET(x) (((uint32_t)(x) << MMC_COEF_TRG_CFG_TIME_VAL_SHIFT) & MMC_COEF_TRG_CFG_TIME_VAL_MASK)
990 #define MMC_COEF_TRG_CFG_TIME_VAL_GET(x) (((uint32_t)(x) & MMC_COEF_TRG_CFG_TIME_VAL_MASK) >> MMC_COEF_TRG_CFG_TIME_VAL_SHIFT)
991 
992 /* Bitfield definition for register of struct array BR: BR_CTRL */
993 /*
994  * SPEED_TRG_VALID_IE (RW)
995  *
996  * Interrupt Enable for SPEED_TRG_VALID
997  */
998 #define MMC_BR_BR_CTRL_SPEED_TRG_VALID_IE_MASK (0x40000000UL)
999 #define MMC_BR_BR_CTRL_SPEED_TRG_VALID_IE_SHIFT (30U)
1000 #define MMC_BR_BR_CTRL_SPEED_TRG_VALID_IE_SET(x) (((uint32_t)(x) << MMC_BR_BR_CTRL_SPEED_TRG_VALID_IE_SHIFT) & MMC_BR_BR_CTRL_SPEED_TRG_VALID_IE_MASK)
1001 #define MMC_BR_BR_CTRL_SPEED_TRG_VALID_IE_GET(x) (((uint32_t)(x) & MMC_BR_BR_CTRL_SPEED_TRG_VALID_IE_MASK) >> MMC_BR_BR_CTRL_SPEED_TRG_VALID_IE_SHIFT)
1002 
1003 /*
1004  * POS_TRG_VALID_IE (RW)
1005  *
1006  * Interrupt Enable for POS_TRG_VALID
1007  */
1008 #define MMC_BR_BR_CTRL_POS_TRG_VALID_IE_MASK (0x20000000UL)
1009 #define MMC_BR_BR_CTRL_POS_TRG_VALID_IE_SHIFT (29U)
1010 #define MMC_BR_BR_CTRL_POS_TRG_VALID_IE_SET(x) (((uint32_t)(x) << MMC_BR_BR_CTRL_POS_TRG_VALID_IE_SHIFT) & MMC_BR_BR_CTRL_POS_TRG_VALID_IE_MASK)
1011 #define MMC_BR_BR_CTRL_POS_TRG_VALID_IE_GET(x) (((uint32_t)(x) & MMC_BR_BR_CTRL_POS_TRG_VALID_IE_MASK) >> MMC_BR_BR_CTRL_POS_TRG_VALID_IE_SHIFT)
1012 
1013 /*
1014  * INI_POS_TRG_TYPE (RW)
1015  *
1016  * 0: Time Stamp in the configuration
1017  * 1: Risedge of In Trg[0]
1018  * 2: Risedge of In Trg[1]
1019  * 3: Risedge of out trg[0]
1020  * 4: Risedge of out trg[1]
1021  * 5: Risedge of self pos trigger
1022  * 6: Risedge of self speed trigger
1023  * Others: no function
1024  */
1025 #define MMC_BR_BR_CTRL_INI_POS_TRG_TYPE_MASK (0x3800000UL)
1026 #define MMC_BR_BR_CTRL_INI_POS_TRG_TYPE_SHIFT (23U)
1027 #define MMC_BR_BR_CTRL_INI_POS_TRG_TYPE_SET(x) (((uint32_t)(x) << MMC_BR_BR_CTRL_INI_POS_TRG_TYPE_SHIFT) & MMC_BR_BR_CTRL_INI_POS_TRG_TYPE_MASK)
1028 #define MMC_BR_BR_CTRL_INI_POS_TRG_TYPE_GET(x) (((uint32_t)(x) & MMC_BR_BR_CTRL_INI_POS_TRG_TYPE_MASK) >> MMC_BR_BR_CTRL_INI_POS_TRG_TYPE_SHIFT)
1029 
1030 /*
1031  * INI_POS_CMD_MSK (RW)
1032  *
1033  * 1: change
1034  * 0: won't change
1035  * bit 3: for accel
1036  * bit 2: for speed
1037  * bit 1: for revolution
1038  * bit 0: for position
1039  */
1040 #define MMC_BR_BR_CTRL_INI_POS_CMD_MSK_MASK (0x3C0000UL)
1041 #define MMC_BR_BR_CTRL_INI_POS_CMD_MSK_SHIFT (18U)
1042 #define MMC_BR_BR_CTRL_INI_POS_CMD_MSK_SET(x) (((uint32_t)(x) << MMC_BR_BR_CTRL_INI_POS_CMD_MSK_SHIFT) & MMC_BR_BR_CTRL_INI_POS_CMD_MSK_MASK)
1043 #define MMC_BR_BR_CTRL_INI_POS_CMD_MSK_GET(x) (((uint32_t)(x) & MMC_BR_BR_CTRL_INI_POS_CMD_MSK_MASK) >> MMC_BR_BR_CTRL_INI_POS_CMD_MSK_SHIFT)
1044 
1045 /*
1046  * INI_DELTA_POS_TRG_TYPE (RW)
1047  *
1048  * 0: Time Stamp in the configuration
1049  * 1: Risedge of In Trg[0]
1050  * 2: Risedge of In Trg[1]
1051  * 3: Risedge of out trg[0]
1052  * 4: Risedge of out trg[1]
1053  * 5: Risedge of self pos trigger
1054  * 6: Risedge of self speed trigger
1055  * Others: no function
1056  */
1057 #define MMC_BR_BR_CTRL_INI_DELTA_POS_TRG_TYPE_MASK (0x1C000UL)
1058 #define MMC_BR_BR_CTRL_INI_DELTA_POS_TRG_TYPE_SHIFT (14U)
1059 #define MMC_BR_BR_CTRL_INI_DELTA_POS_TRG_TYPE_SET(x) (((uint32_t)(x) << MMC_BR_BR_CTRL_INI_DELTA_POS_TRG_TYPE_SHIFT) & MMC_BR_BR_CTRL_INI_DELTA_POS_TRG_TYPE_MASK)
1060 #define MMC_BR_BR_CTRL_INI_DELTA_POS_TRG_TYPE_GET(x) (((uint32_t)(x) & MMC_BR_BR_CTRL_INI_DELTA_POS_TRG_TYPE_MASK) >> MMC_BR_BR_CTRL_INI_DELTA_POS_TRG_TYPE_SHIFT)
1061 
1062 /*
1063  * INI_DELTA_POS_DONE_IE (RW)
1064  *
1065  * Interrupt Enable for INI_DELTA_POS_DONE
1066  */
1067 #define MMC_BR_BR_CTRL_INI_DELTA_POS_DONE_IE_MASK (0x2000U)
1068 #define MMC_BR_BR_CTRL_INI_DELTA_POS_DONE_IE_SHIFT (13U)
1069 #define MMC_BR_BR_CTRL_INI_DELTA_POS_DONE_IE_SET(x) (((uint32_t)(x) << MMC_BR_BR_CTRL_INI_DELTA_POS_DONE_IE_SHIFT) & MMC_BR_BR_CTRL_INI_DELTA_POS_DONE_IE_MASK)
1070 #define MMC_BR_BR_CTRL_INI_DELTA_POS_DONE_IE_GET(x) (((uint32_t)(x) & MMC_BR_BR_CTRL_INI_DELTA_POS_DONE_IE_MASK) >> MMC_BR_BR_CTRL_INI_DELTA_POS_DONE_IE_SHIFT)
1071 
1072 /*
1073  * INI_DELTA_POS_CMD_MSK (RW)
1074  *
1075  * 1: change
1076  * 0: won't change
1077  * bit 3: for delta accel
1078  * bit 2: for delta speed
1079  * bit 1: for delta revolution
1080  * bit 0: for delta position
1081  */
1082 #define MMC_BR_BR_CTRL_INI_DELTA_POS_CMD_MSK_MASK (0x1E00U)
1083 #define MMC_BR_BR_CTRL_INI_DELTA_POS_CMD_MSK_SHIFT (9U)
1084 #define MMC_BR_BR_CTRL_INI_DELTA_POS_CMD_MSK_SET(x) (((uint32_t)(x) << MMC_BR_BR_CTRL_INI_DELTA_POS_CMD_MSK_SHIFT) & MMC_BR_BR_CTRL_INI_DELTA_POS_CMD_MSK_MASK)
1085 #define MMC_BR_BR_CTRL_INI_DELTA_POS_CMD_MSK_GET(x) (((uint32_t)(x) & MMC_BR_BR_CTRL_INI_DELTA_POS_CMD_MSK_MASK) >> MMC_BR_BR_CTRL_INI_DELTA_POS_CMD_MSK_SHIFT)
1086 
1087 /*
1088  * INI_DELTA_POS_REQ (RW)
1089  *
1090  * 1: Command to reload the delta pos. Auto clear
1091  * 0:
1092  */
1093 #define MMC_BR_BR_CTRL_INI_DELTA_POS_REQ_MASK (0x100U)
1094 #define MMC_BR_BR_CTRL_INI_DELTA_POS_REQ_SHIFT (8U)
1095 #define MMC_BR_BR_CTRL_INI_DELTA_POS_REQ_SET(x) (((uint32_t)(x) << MMC_BR_BR_CTRL_INI_DELTA_POS_REQ_SHIFT) & MMC_BR_BR_CTRL_INI_DELTA_POS_REQ_MASK)
1096 #define MMC_BR_BR_CTRL_INI_DELTA_POS_REQ_GET(x) (((uint32_t)(x) & MMC_BR_BR_CTRL_INI_DELTA_POS_REQ_MASK) >> MMC_BR_BR_CTRL_INI_DELTA_POS_REQ_SHIFT)
1097 
1098 /*
1099  * OPEN_LOOP_MODE (RW)
1100  *
1101  * 1: in open loop mode
1102  * 0: not in open loop mode
1103  */
1104 #define MMC_BR_BR_CTRL_OPEN_LOOP_MODE_MASK (0x80U)
1105 #define MMC_BR_BR_CTRL_OPEN_LOOP_MODE_SHIFT (7U)
1106 #define MMC_BR_BR_CTRL_OPEN_LOOP_MODE_SET(x) (((uint32_t)(x) << MMC_BR_BR_CTRL_OPEN_LOOP_MODE_SHIFT) & MMC_BR_BR_CTRL_OPEN_LOOP_MODE_MASK)
1107 #define MMC_BR_BR_CTRL_OPEN_LOOP_MODE_GET(x) (((uint32_t)(x) & MMC_BR_BR_CTRL_OPEN_LOOP_MODE_MASK) >> MMC_BR_BR_CTRL_OPEN_LOOP_MODE_SHIFT)
1108 
1109 /*
1110  * PRED_MODE (RW)
1111  *
1112  * 1:continuously repeat pred,
1113  * 0:cal the pred based on a definite time-stamp offset,
1114  * 2:programed one-shot prediction mode
1115  */
1116 #define MMC_BR_BR_CTRL_PRED_MODE_MASK (0x30U)
1117 #define MMC_BR_BR_CTRL_PRED_MODE_SHIFT (4U)
1118 #define MMC_BR_BR_CTRL_PRED_MODE_SET(x) (((uint32_t)(x) << MMC_BR_BR_CTRL_PRED_MODE_SHIFT) & MMC_BR_BR_CTRL_PRED_MODE_MASK)
1119 #define MMC_BR_BR_CTRL_PRED_MODE_GET(x) (((uint32_t)(x) & MMC_BR_BR_CTRL_PRED_MODE_MASK) >> MMC_BR_BR_CTRL_PRED_MODE_SHIFT)
1120 
1121 /*
1122  * NF_TRG_TYPE (RW)
1123  *
1124  * 1. Each non-first trigger by external trigger pin
1125  * 0. Each non-first trigger by the timer
1126  */
1127 #define MMC_BR_BR_CTRL_NF_TRG_TYPE_MASK (0x4U)
1128 #define MMC_BR_BR_CTRL_NF_TRG_TYPE_SHIFT (2U)
1129 #define MMC_BR_BR_CTRL_NF_TRG_TYPE_SET(x) (((uint32_t)(x) << MMC_BR_BR_CTRL_NF_TRG_TYPE_SHIFT) & MMC_BR_BR_CTRL_NF_TRG_TYPE_MASK)
1130 #define MMC_BR_BR_CTRL_NF_TRG_TYPE_GET(x) (((uint32_t)(x) & MMC_BR_BR_CTRL_NF_TRG_TYPE_MASK) >> MMC_BR_BR_CTRL_NF_TRG_TYPE_SHIFT)
1131 
1132 /*
1133  * F_TRG_TYPE (RW)
1134  *
1135  * 1. First trigger by external trigger pin
1136  * 0. First trigger by the timer
1137  * When in CR[MANUAL_IO]=1 mode, it is the prediction trigger
1138  */
1139 #define MMC_BR_BR_CTRL_F_TRG_TYPE_MASK (0x2U)
1140 #define MMC_BR_BR_CTRL_F_TRG_TYPE_SHIFT (1U)
1141 #define MMC_BR_BR_CTRL_F_TRG_TYPE_SET(x) (((uint32_t)(x) << MMC_BR_BR_CTRL_F_TRG_TYPE_SHIFT) & MMC_BR_BR_CTRL_F_TRG_TYPE_MASK)
1142 #define MMC_BR_BR_CTRL_F_TRG_TYPE_GET(x) (((uint32_t)(x) & MMC_BR_BR_CTRL_F_TRG_TYPE_MASK) >> MMC_BR_BR_CTRL_F_TRG_TYPE_SHIFT)
1143 
1144 /*
1145  * BR_EN (RW)
1146  *
1147  * Branch Enable
1148  */
1149 #define MMC_BR_BR_CTRL_BR_EN_MASK (0x1U)
1150 #define MMC_BR_BR_CTRL_BR_EN_SHIFT (0U)
1151 #define MMC_BR_BR_CTRL_BR_EN_SET(x) (((uint32_t)(x) << MMC_BR_BR_CTRL_BR_EN_SHIFT) & MMC_BR_BR_CTRL_BR_EN_MASK)
1152 #define MMC_BR_BR_CTRL_BR_EN_GET(x) (((uint32_t)(x) & MMC_BR_BR_CTRL_BR_EN_MASK) >> MMC_BR_BR_CTRL_BR_EN_SHIFT)
1153 
1154 /* Bitfield definition for register of struct array BR: BR_TIMEOFF */
1155 /*
1156  * VAL (RW)
1157  *
1158  * ufix<32, 0> time offset incycles from the trigger time
1159  */
1160 #define MMC_BR_BR_TIMEOFF_VAL_MASK (0xFFFFFFFFUL)
1161 #define MMC_BR_BR_TIMEOFF_VAL_SHIFT (0U)
1162 #define MMC_BR_BR_TIMEOFF_VAL_SET(x) (((uint32_t)(x) << MMC_BR_BR_TIMEOFF_VAL_SHIFT) & MMC_BR_BR_TIMEOFF_VAL_MASK)
1163 #define MMC_BR_BR_TIMEOFF_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_TIMEOFF_VAL_MASK) >> MMC_BR_BR_TIMEOFF_VAL_SHIFT)
1164 
1165 /* Bitfield definition for register of struct array BR: BR_TRG_PERIOD */
1166 /*
1167  * VAL (RW)
1168  *
1169  * uifx<32, 0>, time offset incycles between each trigger time
1170  */
1171 #define MMC_BR_BR_TRG_PERIOD_VAL_MASK (0xFFFFFFFFUL)
1172 #define MMC_BR_BR_TRG_PERIOD_VAL_SHIFT (0U)
1173 #define MMC_BR_BR_TRG_PERIOD_VAL_SET(x) (((uint32_t)(x) << MMC_BR_BR_TRG_PERIOD_VAL_SHIFT) & MMC_BR_BR_TRG_PERIOD_VAL_MASK)
1174 #define MMC_BR_BR_TRG_PERIOD_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_TRG_PERIOD_VAL_MASK) >> MMC_BR_BR_TRG_PERIOD_VAL_SHIFT)
1175 
1176 /* Bitfield definition for register of struct array BR: BR_TRG_F_TIME */
1177 /*
1178  * VAL (RW)
1179  *
1180  * uifx<32, 0> the time for the first trigger
1181  */
1182 #define MMC_BR_BR_TRG_F_TIME_VAL_MASK (0xFFFFFFFFUL)
1183 #define MMC_BR_BR_TRG_F_TIME_VAL_SHIFT (0U)
1184 #define MMC_BR_BR_TRG_F_TIME_VAL_SET(x) (((uint32_t)(x) << MMC_BR_BR_TRG_F_TIME_VAL_SHIFT) & MMC_BR_BR_TRG_F_TIME_VAL_MASK)
1185 #define MMC_BR_BR_TRG_F_TIME_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_TRG_F_TIME_VAL_MASK) >> MMC_BR_BR_TRG_F_TIME_VAL_SHIFT)
1186 
1187 /* Bitfield definition for register of struct array BR: BR_ST */
1188 /*
1189  * OPEN_LOOP_ST (RO)
1190  *
1191  * 1:in open loop mode
1192  * 0:in closed loop mode
1193  */
1194 #define MMC_BR_BR_ST_OPEN_LOOP_ST_MASK (0x400U)
1195 #define MMC_BR_BR_ST_OPEN_LOOP_ST_SHIFT (10U)
1196 #define MMC_BR_BR_ST_OPEN_LOOP_ST_GET(x) (((uint32_t)(x) & MMC_BR_BR_ST_OPEN_LOOP_ST_MASK) >> MMC_BR_BR_ST_OPEN_LOOP_ST_SHIFT)
1197 
1198 /*
1199  * SPEED_TRG_VLD (W1C)
1200  *
1201  * 1:self speed trigger event found
1202  * 0:self speed trigger event not found yet
1203  */
1204 #define MMC_BR_BR_ST_SPEED_TRG_VLD_MASK (0x200U)
1205 #define MMC_BR_BR_ST_SPEED_TRG_VLD_SHIFT (9U)
1206 #define MMC_BR_BR_ST_SPEED_TRG_VLD_SET(x) (((uint32_t)(x) << MMC_BR_BR_ST_SPEED_TRG_VLD_SHIFT) & MMC_BR_BR_ST_SPEED_TRG_VLD_MASK)
1207 #define MMC_BR_BR_ST_SPEED_TRG_VLD_GET(x) (((uint32_t)(x) & MMC_BR_BR_ST_SPEED_TRG_VLD_MASK) >> MMC_BR_BR_ST_SPEED_TRG_VLD_SHIFT)
1208 
1209 /*
1210  * POS_TRG_VLD (W1C)
1211  *
1212  * 1:self position trigger event found
1213  * 0:self position trigger event not found yet
1214  */
1215 #define MMC_BR_BR_ST_POS_TRG_VLD_MASK (0x100U)
1216 #define MMC_BR_BR_ST_POS_TRG_VLD_SHIFT (8U)
1217 #define MMC_BR_BR_ST_POS_TRG_VLD_SET(x) (((uint32_t)(x) << MMC_BR_BR_ST_POS_TRG_VLD_SHIFT) & MMC_BR_BR_ST_POS_TRG_VLD_MASK)
1218 #define MMC_BR_BR_ST_POS_TRG_VLD_GET(x) (((uint32_t)(x) & MMC_BR_BR_ST_POS_TRG_VLD_MASK) >> MMC_BR_BR_ST_POS_TRG_VLD_SHIFT)
1219 
1220 /*
1221  * INI_DELTA_POS_DONE (W1C)
1222  *
1223  * 1: the initialization of delta position command is done
1224  * 0: the initialization of delta position command is not done
1225  */
1226 #define MMC_BR_BR_ST_INI_DELTA_POS_DONE_MASK (0x40U)
1227 #define MMC_BR_BR_ST_INI_DELTA_POS_DONE_SHIFT (6U)
1228 #define MMC_BR_BR_ST_INI_DELTA_POS_DONE_SET(x) (((uint32_t)(x) << MMC_BR_BR_ST_INI_DELTA_POS_DONE_SHIFT) & MMC_BR_BR_ST_INI_DELTA_POS_DONE_MASK)
1229 #define MMC_BR_BR_ST_INI_DELTA_POS_DONE_GET(x) (((uint32_t)(x) & MMC_BR_BR_ST_INI_DELTA_POS_DONE_MASK) >> MMC_BR_BR_ST_INI_DELTA_POS_DONE_SHIFT)
1230 
1231 /*
1232  * IDLE (RO)
1233  *
1234  * 1: The prediction module is idle.
1235  * 0: The prediction module is not idle.
1236  */
1237 #define MMC_BR_BR_ST_IDLE_MASK (0x20U)
1238 #define MMC_BR_BR_ST_IDLE_SHIFT (5U)
1239 #define MMC_BR_BR_ST_IDLE_GET(x) (((uint32_t)(x) & MMC_BR_BR_ST_IDLE_MASK) >> MMC_BR_BR_ST_IDLE_SHIFT)
1240 
1241 /*
1242  * ERR_ID (RO)
1243  *
1244  * The module's error ID output
1245  */
1246 #define MMC_BR_BR_ST_ERR_ID_MASK (0xFU)
1247 #define MMC_BR_BR_ST_ERR_ID_SHIFT (0U)
1248 #define MMC_BR_BR_ST_ERR_ID_GET(x) (((uint32_t)(x) & MMC_BR_BR_ST_ERR_ID_MASK) >> MMC_BR_BR_ST_ERR_ID_SHIFT)
1249 
1250 /* Bitfield definition for register of struct array BR: BR_TRG_POS_CFG */
1251 /*
1252  * EDGE (RW)
1253  *
1254  * bit1: 0: (rising edge) pos inc greater than, 1: (falling edge)  pos dec less than
1255  */
1256 #define MMC_BR_BR_TRG_POS_CFG_EDGE_MASK (0x2U)
1257 #define MMC_BR_BR_TRG_POS_CFG_EDGE_SHIFT (1U)
1258 #define MMC_BR_BR_TRG_POS_CFG_EDGE_SET(x) (((uint32_t)(x) << MMC_BR_BR_TRG_POS_CFG_EDGE_SHIFT) & MMC_BR_BR_TRG_POS_CFG_EDGE_MASK)
1259 #define MMC_BR_BR_TRG_POS_CFG_EDGE_GET(x) (((uint32_t)(x) & MMC_BR_BR_TRG_POS_CFG_EDGE_MASK) >> MMC_BR_BR_TRG_POS_CFG_EDGE_SHIFT)
1260 
1261 /*
1262  * EN (RW)
1263  *
1264  * 1-trigger valid; 0-Trigger not valid
1265  */
1266 #define MMC_BR_BR_TRG_POS_CFG_EN_MASK (0x1U)
1267 #define MMC_BR_BR_TRG_POS_CFG_EN_SHIFT (0U)
1268 #define MMC_BR_BR_TRG_POS_CFG_EN_SET(x) (((uint32_t)(x) << MMC_BR_BR_TRG_POS_CFG_EN_SHIFT) & MMC_BR_BR_TRG_POS_CFG_EN_MASK)
1269 #define MMC_BR_BR_TRG_POS_CFG_EN_GET(x) (((uint32_t)(x) & MMC_BR_BR_TRG_POS_CFG_EN_MASK) >> MMC_BR_BR_TRG_POS_CFG_EN_SHIFT)
1270 
1271 /* Bitfield definition for register of struct array BR: BR_TRG_POS_THR */
1272 /*
1273  * VAL (RW)
1274  *
1275  * For pos out trigger (pos).
1276  * ufix<32, 32>
1277  */
1278 #define MMC_BR_BR_TRG_POS_THR_VAL_MASK (0xFFFFFFFFUL)
1279 #define MMC_BR_BR_TRG_POS_THR_VAL_SHIFT (0U)
1280 #define MMC_BR_BR_TRG_POS_THR_VAL_SET(x) (((uint32_t)(x) << MMC_BR_BR_TRG_POS_THR_VAL_SHIFT) & MMC_BR_BR_TRG_POS_THR_VAL_MASK)
1281 #define MMC_BR_BR_TRG_POS_THR_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_TRG_POS_THR_VAL_MASK) >> MMC_BR_BR_TRG_POS_THR_VAL_SHIFT)
1282 
1283 /* Bitfield definition for register of struct array BR: BR_TRG_REV_THR */
1284 /*
1285  * VAL (RW)
1286  *
1287  * For pos out trigger (rev)
1288  * ufix<32, 0>
1289  */
1290 #define MMC_BR_BR_TRG_REV_THR_VAL_MASK (0xFFFFFFFFUL)
1291 #define MMC_BR_BR_TRG_REV_THR_VAL_SHIFT (0U)
1292 #define MMC_BR_BR_TRG_REV_THR_VAL_SET(x) (((uint32_t)(x) << MMC_BR_BR_TRG_REV_THR_VAL_SHIFT) & MMC_BR_BR_TRG_REV_THR_VAL_MASK)
1293 #define MMC_BR_BR_TRG_REV_THR_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_TRG_REV_THR_VAL_MASK) >> MMC_BR_BR_TRG_REV_THR_VAL_SHIFT)
1294 
1295 /* Bitfield definition for register of struct array BR: BR_TRG_SPEED_CFG */
1296 /*
1297  * COMP_TYPE (RW)
1298  *
1299  * Use abs value for comparion. 0: Use the speed with direction info (so not the abs value)
1300  */
1301 #define MMC_BR_BR_TRG_SPEED_CFG_COMP_TYPE_MASK (0x4U)
1302 #define MMC_BR_BR_TRG_SPEED_CFG_COMP_TYPE_SHIFT (2U)
1303 #define MMC_BR_BR_TRG_SPEED_CFG_COMP_TYPE_SET(x) (((uint32_t)(x) << MMC_BR_BR_TRG_SPEED_CFG_COMP_TYPE_SHIFT) & MMC_BR_BR_TRG_SPEED_CFG_COMP_TYPE_MASK)
1304 #define MMC_BR_BR_TRG_SPEED_CFG_COMP_TYPE_GET(x) (((uint32_t)(x) & MMC_BR_BR_TRG_SPEED_CFG_COMP_TYPE_MASK) >> MMC_BR_BR_TRG_SPEED_CFG_COMP_TYPE_SHIFT)
1305 
1306 /*
1307  * EDGE_SEL (RW)
1308  *
1309  * 0: (rising edge) speed inc greater than, 1: (falling edge)  speed dec less than
1310  */
1311 #define MMC_BR_BR_TRG_SPEED_CFG_EDGE_SEL_MASK (0x2U)
1312 #define MMC_BR_BR_TRG_SPEED_CFG_EDGE_SEL_SHIFT (1U)
1313 #define MMC_BR_BR_TRG_SPEED_CFG_EDGE_SEL_SET(x) (((uint32_t)(x) << MMC_BR_BR_TRG_SPEED_CFG_EDGE_SEL_SHIFT) & MMC_BR_BR_TRG_SPEED_CFG_EDGE_SEL_MASK)
1314 #define MMC_BR_BR_TRG_SPEED_CFG_EDGE_SEL_GET(x) (((uint32_t)(x) & MMC_BR_BR_TRG_SPEED_CFG_EDGE_SEL_MASK) >> MMC_BR_BR_TRG_SPEED_CFG_EDGE_SEL_SHIFT)
1315 
1316 /*
1317  * EN (RW)
1318  *
1319  * 1-trigger valid; 0-Trigger not valid
1320  * Normally it means either the max pos speed, or the min negative speed.
1321  */
1322 #define MMC_BR_BR_TRG_SPEED_CFG_EN_MASK (0x1U)
1323 #define MMC_BR_BR_TRG_SPEED_CFG_EN_SHIFT (0U)
1324 #define MMC_BR_BR_TRG_SPEED_CFG_EN_SET(x) (((uint32_t)(x) << MMC_BR_BR_TRG_SPEED_CFG_EN_SHIFT) & MMC_BR_BR_TRG_SPEED_CFG_EN_MASK)
1325 #define MMC_BR_BR_TRG_SPEED_CFG_EN_GET(x) (((uint32_t)(x) & MMC_BR_BR_TRG_SPEED_CFG_EN_MASK) >> MMC_BR_BR_TRG_SPEED_CFG_EN_SHIFT)
1326 
1327 /* Bitfield definition for register of struct array BR: BR_TRG_SPEED_THR */
1328 /*
1329  * VAL (RW)
1330  *
1331  * For speed trigger.
1332  * continuous mode: fix<32, 19>
1333  */
1334 #define MMC_BR_BR_TRG_SPEED_THR_VAL_MASK (0xFFFFFFFFUL)
1335 #define MMC_BR_BR_TRG_SPEED_THR_VAL_SHIFT (0U)
1336 #define MMC_BR_BR_TRG_SPEED_THR_VAL_SET(x) (((uint32_t)(x) << MMC_BR_BR_TRG_SPEED_THR_VAL_SHIFT) & MMC_BR_BR_TRG_SPEED_THR_VAL_MASK)
1337 #define MMC_BR_BR_TRG_SPEED_THR_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_TRG_SPEED_THR_VAL_MASK) >> MMC_BR_BR_TRG_SPEED_THR_VAL_SHIFT)
1338 
1339 /* Bitfield definition for register of struct array BR: BR_INI_POS_TIME */
1340 /*
1341  * VAL (RW)
1342  *
1343  * indicate the time to change the values.
1344  * 0: instant change
1345  */
1346 #define MMC_BR_BR_INI_POS_TIME_VAL_MASK (0xFFFFFFFFUL)
1347 #define MMC_BR_BR_INI_POS_TIME_VAL_SHIFT (0U)
1348 #define MMC_BR_BR_INI_POS_TIME_VAL_SET(x) (((uint32_t)(x) << MMC_BR_BR_INI_POS_TIME_VAL_SHIFT) & MMC_BR_BR_INI_POS_TIME_VAL_MASK)
1349 #define MMC_BR_BR_INI_POS_TIME_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_INI_POS_TIME_VAL_MASK) >> MMC_BR_BR_INI_POS_TIME_VAL_SHIFT)
1350 
1351 /* Bitfield definition for register of struct array BR: BR_INI_POS */
1352 /*
1353  * VAL (RW)
1354  *
1355  * the value
1356  * ufix<32, 32>
1357  */
1358 #define MMC_BR_BR_INI_POS_VAL_MASK (0xFFFFFFFFUL)
1359 #define MMC_BR_BR_INI_POS_VAL_SHIFT (0U)
1360 #define MMC_BR_BR_INI_POS_VAL_SET(x) (((uint32_t)(x) << MMC_BR_BR_INI_POS_VAL_SHIFT) & MMC_BR_BR_INI_POS_VAL_MASK)
1361 #define MMC_BR_BR_INI_POS_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_INI_POS_VAL_MASK) >> MMC_BR_BR_INI_POS_VAL_SHIFT)
1362 
1363 /* Bitfield definition for register of struct array BR: BR_INI_REV */
1364 /*
1365  * VAL (RW)
1366  *
1367  * the value
1368  * ufix<32, 0>
1369  */
1370 #define MMC_BR_BR_INI_REV_VAL_MASK (0xFFFFFFFFUL)
1371 #define MMC_BR_BR_INI_REV_VAL_SHIFT (0U)
1372 #define MMC_BR_BR_INI_REV_VAL_SET(x) (((uint32_t)(x) << MMC_BR_BR_INI_REV_VAL_SHIFT) & MMC_BR_BR_INI_REV_VAL_MASK)
1373 #define MMC_BR_BR_INI_REV_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_INI_REV_VAL_MASK) >> MMC_BR_BR_INI_REV_VAL_SHIFT)
1374 
1375 /* Bitfield definition for register of struct array BR: BR_INI_SPEED */
1376 /*
1377  * VAL (RW)
1378  *
1379  * the value
1380  * fix<32, 19>
1381  */
1382 #define MMC_BR_BR_INI_SPEED_VAL_MASK (0xFFFFFFFFUL)
1383 #define MMC_BR_BR_INI_SPEED_VAL_SHIFT (0U)
1384 #define MMC_BR_BR_INI_SPEED_VAL_SET(x) (((uint32_t)(x) << MMC_BR_BR_INI_SPEED_VAL_SHIFT) & MMC_BR_BR_INI_SPEED_VAL_MASK)
1385 #define MMC_BR_BR_INI_SPEED_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_INI_SPEED_VAL_MASK) >> MMC_BR_BR_INI_SPEED_VAL_SHIFT)
1386 
1387 /* Bitfield definition for register of struct array BR: BR_INI_ACCEL */
1388 /*
1389  * VAL (RW)
1390  *
1391  * the value
1392  * continuous mode: fix<32, 19>
1393  */
1394 #define MMC_BR_BR_INI_ACCEL_VAL_MASK (0xFFFFFFFFUL)
1395 #define MMC_BR_BR_INI_ACCEL_VAL_SHIFT (0U)
1396 #define MMC_BR_BR_INI_ACCEL_VAL_SET(x) (((uint32_t)(x) << MMC_BR_BR_INI_ACCEL_VAL_SHIFT) & MMC_BR_BR_INI_ACCEL_VAL_MASK)
1397 #define MMC_BR_BR_INI_ACCEL_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_INI_ACCEL_VAL_MASK) >> MMC_BR_BR_INI_ACCEL_VAL_SHIFT)
1398 
1399 /* Bitfield definition for register of struct array BR: BR_INI_DELTA_POS_TIME */
1400 /*
1401  * VAL (RW)
1402  *
1403  * indicate the time to change the values.
1404  * 0: instant change
1405  */
1406 #define MMC_BR_BR_INI_DELTA_POS_TIME_VAL_MASK (0xFFFFFFFFUL)
1407 #define MMC_BR_BR_INI_DELTA_POS_TIME_VAL_SHIFT (0U)
1408 #define MMC_BR_BR_INI_DELTA_POS_TIME_VAL_SET(x) (((uint32_t)(x) << MMC_BR_BR_INI_DELTA_POS_TIME_VAL_SHIFT) & MMC_BR_BR_INI_DELTA_POS_TIME_VAL_MASK)
1409 #define MMC_BR_BR_INI_DELTA_POS_TIME_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_INI_DELTA_POS_TIME_VAL_MASK) >> MMC_BR_BR_INI_DELTA_POS_TIME_VAL_SHIFT)
1410 
1411 /* Bitfield definition for register of struct array BR: BR_INI_DELTA_POS */
1412 /*
1413  * VAL (RW)
1414  *
1415  * the value
1416  * continuous mode: ufix<32, 32>
1417  */
1418 #define MMC_BR_BR_INI_DELTA_POS_VAL_MASK (0xFFFFFFFFUL)
1419 #define MMC_BR_BR_INI_DELTA_POS_VAL_SHIFT (0U)
1420 #define MMC_BR_BR_INI_DELTA_POS_VAL_SET(x) (((uint32_t)(x) << MMC_BR_BR_INI_DELTA_POS_VAL_SHIFT) & MMC_BR_BR_INI_DELTA_POS_VAL_MASK)
1421 #define MMC_BR_BR_INI_DELTA_POS_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_INI_DELTA_POS_VAL_MASK) >> MMC_BR_BR_INI_DELTA_POS_VAL_SHIFT)
1422 
1423 /* Bitfield definition for register of struct array BR: BR_INI_DELTA_REV */
1424 /*
1425  * VAL (RW)
1426  *
1427  * the value
1428  * continuous mode: fix<32, 0>
1429  */
1430 #define MMC_BR_BR_INI_DELTA_REV_VAL_MASK (0xFFFFFFFFUL)
1431 #define MMC_BR_BR_INI_DELTA_REV_VAL_SHIFT (0U)
1432 #define MMC_BR_BR_INI_DELTA_REV_VAL_SET(x) (((uint32_t)(x) << MMC_BR_BR_INI_DELTA_REV_VAL_SHIFT) & MMC_BR_BR_INI_DELTA_REV_VAL_MASK)
1433 #define MMC_BR_BR_INI_DELTA_REV_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_INI_DELTA_REV_VAL_MASK) >> MMC_BR_BR_INI_DELTA_REV_VAL_SHIFT)
1434 
1435 /* Bitfield definition for register of struct array BR: BR_INI_DELTA_SPEED */
1436 /*
1437  * VAL (RW)
1438  *
1439  * the value
1440  * continuous mode: fix<32, 19>
1441  */
1442 #define MMC_BR_BR_INI_DELTA_SPEED_VAL_MASK (0xFFFFFFFFUL)
1443 #define MMC_BR_BR_INI_DELTA_SPEED_VAL_SHIFT (0U)
1444 #define MMC_BR_BR_INI_DELTA_SPEED_VAL_SET(x) (((uint32_t)(x) << MMC_BR_BR_INI_DELTA_SPEED_VAL_SHIFT) & MMC_BR_BR_INI_DELTA_SPEED_VAL_MASK)
1445 #define MMC_BR_BR_INI_DELTA_SPEED_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_INI_DELTA_SPEED_VAL_MASK) >> MMC_BR_BR_INI_DELTA_SPEED_VAL_SHIFT)
1446 
1447 /* Bitfield definition for register of struct array BR: BR_INI_DELTA_ACCEL */
1448 /*
1449  * VAL (RW)
1450  *
1451  * the value
1452  * continuous mode: fix<32, 19>
1453  */
1454 #define MMC_BR_BR_INI_DELTA_ACCEL_VAL_MASK (0xFFFFFFFFUL)
1455 #define MMC_BR_BR_INI_DELTA_ACCEL_VAL_SHIFT (0U)
1456 #define MMC_BR_BR_INI_DELTA_ACCEL_VAL_SET(x) (((uint32_t)(x) << MMC_BR_BR_INI_DELTA_ACCEL_VAL_SHIFT) & MMC_BR_BR_INI_DELTA_ACCEL_VAL_MASK)
1457 #define MMC_BR_BR_INI_DELTA_ACCEL_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_INI_DELTA_ACCEL_VAL_MASK) >> MMC_BR_BR_INI_DELTA_ACCEL_VAL_SHIFT)
1458 
1459 /* Bitfield definition for register of struct array BR: BR_CUR_POS_TIME */
1460 /*
1461  * VAL (RO)
1462  *
1463  * the value
1464  */
1465 #define MMC_BR_BR_CUR_POS_TIME_VAL_MASK (0xFFFFFFFFUL)
1466 #define MMC_BR_BR_CUR_POS_TIME_VAL_SHIFT (0U)
1467 #define MMC_BR_BR_CUR_POS_TIME_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_CUR_POS_TIME_VAL_MASK) >> MMC_BR_BR_CUR_POS_TIME_VAL_SHIFT)
1468 
1469 /* Bitfield definition for register of struct array BR: BR_CUR_POS */
1470 /*
1471  * VAL (RO)
1472  *
1473  * the value
1474  */
1475 #define MMC_BR_BR_CUR_POS_VAL_MASK (0xFFFFFFFFUL)
1476 #define MMC_BR_BR_CUR_POS_VAL_SHIFT (0U)
1477 #define MMC_BR_BR_CUR_POS_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_CUR_POS_VAL_MASK) >> MMC_BR_BR_CUR_POS_VAL_SHIFT)
1478 
1479 /* Bitfield definition for register of struct array BR: BR_CUR_REV */
1480 /*
1481  * VAL (RO)
1482  *
1483  * the value
1484  */
1485 #define MMC_BR_BR_CUR_REV_VAL_MASK (0xFFFFFFFFUL)
1486 #define MMC_BR_BR_CUR_REV_VAL_SHIFT (0U)
1487 #define MMC_BR_BR_CUR_REV_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_CUR_REV_VAL_MASK) >> MMC_BR_BR_CUR_REV_VAL_SHIFT)
1488 
1489 /* Bitfield definition for register of struct array BR: BR_CUR_SPEED */
1490 /*
1491  * VAL (RO)
1492  *
1493  * the value
1494  */
1495 #define MMC_BR_BR_CUR_SPEED_VAL_MASK (0xFFFFFFFFUL)
1496 #define MMC_BR_BR_CUR_SPEED_VAL_SHIFT (0U)
1497 #define MMC_BR_BR_CUR_SPEED_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_CUR_SPEED_VAL_MASK) >> MMC_BR_BR_CUR_SPEED_VAL_SHIFT)
1498 
1499 /* Bitfield definition for register of struct array BR: BR_CUR_ACCEL */
1500 /*
1501  * VAL (RO)
1502  *
1503  * the value
1504  */
1505 #define MMC_BR_BR_CUR_ACCEL_VAL_MASK (0xFFFFFFFFUL)
1506 #define MMC_BR_BR_CUR_ACCEL_VAL_SHIFT (0U)
1507 #define MMC_BR_BR_CUR_ACCEL_VAL_GET(x) (((uint32_t)(x) & MMC_BR_BR_CUR_ACCEL_VAL_MASK) >> MMC_BR_BR_CUR_ACCEL_VAL_SHIFT)
1508 
1509 /* Bitfield definition for register: BK0_TIMESTAMP */
1510 /*
1511  * VAL (RO)
1512  *
1513  * the value
1514  */
1515 #define MMC_BK0_TIMESTAMP_VAL_MASK (0xFFFFFFFFUL)
1516 #define MMC_BK0_TIMESTAMP_VAL_SHIFT (0U)
1517 #define MMC_BK0_TIMESTAMP_VAL_GET(x) (((uint32_t)(x) & MMC_BK0_TIMESTAMP_VAL_MASK) >> MMC_BK0_TIMESTAMP_VAL_SHIFT)
1518 
1519 /* Bitfield definition for register: BK0_POSITION */
1520 /*
1521  * VAL (RO)
1522  *
1523  * the value
1524  */
1525 #define MMC_BK0_POSITION_VAL_MASK (0xFFFFFFFFUL)
1526 #define MMC_BK0_POSITION_VAL_SHIFT (0U)
1527 #define MMC_BK0_POSITION_VAL_GET(x) (((uint32_t)(x) & MMC_BK0_POSITION_VAL_MASK) >> MMC_BK0_POSITION_VAL_SHIFT)
1528 
1529 /* Bitfield definition for register: BK0_REVOLUTION */
1530 /*
1531  * VAL (RO)
1532  *
1533  * the value
1534  */
1535 #define MMC_BK0_REVOLUTION_VAL_MASK (0xFFFFFFFFUL)
1536 #define MMC_BK0_REVOLUTION_VAL_SHIFT (0U)
1537 #define MMC_BK0_REVOLUTION_VAL_GET(x) (((uint32_t)(x) & MMC_BK0_REVOLUTION_VAL_MASK) >> MMC_BK0_REVOLUTION_VAL_SHIFT)
1538 
1539 /* Bitfield definition for register: BK0_SPEED */
1540 /*
1541  * VAL (RO)
1542  *
1543  * the value
1544  */
1545 #define MMC_BK0_SPEED_VAL_MASK (0xFFFFFFFFUL)
1546 #define MMC_BK0_SPEED_VAL_SHIFT (0U)
1547 #define MMC_BK0_SPEED_VAL_GET(x) (((uint32_t)(x) & MMC_BK0_SPEED_VAL_MASK) >> MMC_BK0_SPEED_VAL_SHIFT)
1548 
1549 /* Bitfield definition for register: BK0_ACCELERATOR */
1550 /*
1551  * VAL (RO)
1552  *
1553  * the value
1554  */
1555 #define MMC_BK0_ACCELERATOR_VAL_MASK (0xFFFFFFFFUL)
1556 #define MMC_BK0_ACCELERATOR_VAL_SHIFT (0U)
1557 #define MMC_BK0_ACCELERATOR_VAL_GET(x) (((uint32_t)(x) & MMC_BK0_ACCELERATOR_VAL_MASK) >> MMC_BK0_ACCELERATOR_VAL_SHIFT)
1558 
1559 /* Bitfield definition for register: BK1_TIMESTAMP */
1560 /*
1561  * VAL (RO)
1562  *
1563  * the value
1564  */
1565 #define MMC_BK1_TIMESTAMP_VAL_MASK (0xFFFFFFFFUL)
1566 #define MMC_BK1_TIMESTAMP_VAL_SHIFT (0U)
1567 #define MMC_BK1_TIMESTAMP_VAL_GET(x) (((uint32_t)(x) & MMC_BK1_TIMESTAMP_VAL_MASK) >> MMC_BK1_TIMESTAMP_VAL_SHIFT)
1568 
1569 /* Bitfield definition for register: BK1_POSITION */
1570 /*
1571  * VAL (RO)
1572  *
1573  * the value
1574  */
1575 #define MMC_BK1_POSITION_VAL_MASK (0xFFFFFFFFUL)
1576 #define MMC_BK1_POSITION_VAL_SHIFT (0U)
1577 #define MMC_BK1_POSITION_VAL_GET(x) (((uint32_t)(x) & MMC_BK1_POSITION_VAL_MASK) >> MMC_BK1_POSITION_VAL_SHIFT)
1578 
1579 /* Bitfield definition for register: BK1_REVOLUTION */
1580 /*
1581  * VAL (RO)
1582  *
1583  * the value
1584  */
1585 #define MMC_BK1_REVOLUTION_VAL_MASK (0xFFFFFFFFUL)
1586 #define MMC_BK1_REVOLUTION_VAL_SHIFT (0U)
1587 #define MMC_BK1_REVOLUTION_VAL_GET(x) (((uint32_t)(x) & MMC_BK1_REVOLUTION_VAL_MASK) >> MMC_BK1_REVOLUTION_VAL_SHIFT)
1588 
1589 /* Bitfield definition for register: BK1_SPEED */
1590 /*
1591  * VAL (RO)
1592  *
1593  * the value
1594  */
1595 #define MMC_BK1_SPEED_VAL_MASK (0xFFFFFFFFUL)
1596 #define MMC_BK1_SPEED_VAL_SHIFT (0U)
1597 #define MMC_BK1_SPEED_VAL_GET(x) (((uint32_t)(x) & MMC_BK1_SPEED_VAL_MASK) >> MMC_BK1_SPEED_VAL_SHIFT)
1598 
1599 /* Bitfield definition for register: BK1_ACCELERATOR */
1600 /*
1601  * VAL (RO)
1602  *
1603  * the value
1604  */
1605 #define MMC_BK1_ACCELERATOR_VAL_MASK (0xFFFFFFFFUL)
1606 #define MMC_BK1_ACCELERATOR_VAL_SHIFT (0U)
1607 #define MMC_BK1_ACCELERATOR_VAL_GET(x) (((uint32_t)(x) & MMC_BK1_ACCELERATOR_VAL_MASK) >> MMC_BK1_ACCELERATOR_VAL_SHIFT)
1608 
1609 
1610 
1611 /* COEF_TRG_CFG register group index macro definition */
1612 #define MMC_COEF_TRG_CFG_0 (0UL)
1613 #define MMC_COEF_TRG_CFG_1 (1UL)
1614 #define MMC_COEF_TRG_CFG_2 (2UL)
1615 
1616 /* BR register group index macro definition */
1617 #define MMC_BR_0 (0UL)
1618 #define MMC_BR_1 (1UL)
1619 
1620 
1621 #endif /* HPM_MMC_H */
1622