1 /**
2  * @file    pt_regs.h
3  * @brief   Registers, Bit Masks and Bit Positions for the PT Peripheral Module.
4  */
5 
6 /******************************************************************************
7  *
8  * Copyright (C) 2022-2023 Maxim Integrated Products, Inc. (now owned by
9  * Analog Devices, Inc.),
10  * Copyright (C) 2023-2024 Analog Devices, Inc.
11  *
12  * Licensed under the Apache License, Version 2.0 (the "License");
13  * you may not use this file except in compliance with the License.
14  * You may obtain a copy of the License at
15  *
16  *     http://www.apache.org/licenses/LICENSE-2.0
17  *
18  * Unless required by applicable law or agreed to in writing, software
19  * distributed under the License is distributed on an "AS IS" BASIS,
20  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  * See the License for the specific language governing permissions and
22  * limitations under the License.
23  *
24  ******************************************************************************/
25 
26 #ifndef _PT_REVA_REGS_H_
27 #define _PT_REVA_REGS_H_
28 
29 /* **** Includes **** */
30 #include <stdint.h>
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 #if defined (__ICCARM__)
37   #pragma system_include
38 #endif
39 
40 #if defined (__CC_ARM)
41   #pragma anon_unions
42 #endif
43 /// @cond
44 /*
45     If types are not defined elsewhere (CMSIS) define them here
46 */
47 #ifndef __IO
48 #define __IO volatile
49 #endif
50 #ifndef __I
51 #define __I  volatile const
52 #endif
53 #ifndef __O
54 #define __O  volatile
55 #endif
56 #ifndef __R
57 #define __R  volatile const
58 #endif
59 /// @endcond
60 
61 /* **** Definitions **** */
62 
63 /**
64  * @ingroup     pt
65  * @defgroup    pt_registers PT_Registers
66  * @brief       Registers, Bit Masks and Bit Positions for the PT Peripheral Module.
67  * @details Pulse Train
68  */
69 
70 /**
71  * @ingroup pt_registers
72  * Structure type to access the PT Registers.
73  */
74 typedef struct {
75     __IO uint32_t rate_length;          /**< <tt>\b 0x0000:</tt> PT RATE_LENGTH Register */
76     __IO uint32_t train;                /**< <tt>\b 0x0004:</tt> PT TRAIN Register */
77     __IO uint32_t loop;                 /**< <tt>\b 0x0008:</tt> PT LOOP Register */
78     __IO uint32_t restart;              /**< <tt>\b 0x000C:</tt> PT RESTART Register */
79 } mxc_pt_reva_regs_t;
80 
81 /* Register offsets for module PT */
82 /**
83  * @ingroup    pt_registers
84  * @defgroup   PT_Register_Offsets Register Offsets
85  * @brief      PT Peripheral Register Offsets from the PT Base Peripheral Address.
86  * @{
87  */
88  #define MXC_R_PT_REVA_RATE_LENGTH               ((uint32_t)0x00000000UL) /**< Offset from PT Base Address: <tt> 0x0000</tt> */
89  #define MXC_R_PT_REVA_TRAIN                     ((uint32_t)0x00000004UL) /**< Offset from PT Base Address: <tt> 0x0004</tt> */
90  #define MXC_R_PT_REVA_LOOP                      ((uint32_t)0x00000008UL) /**< Offset from PT Base Address: <tt> 0x0008</tt> */
91  #define MXC_R_PT_REVA_RESTART                   ((uint32_t)0x0000000CUL) /**< Offset from PT Base Address: <tt> 0x000C</tt> */
92 /**@} end of group pt_registers */
93 
94 /**
95  * @ingroup  pt_registers
96  * @defgroup PT_RATE_LENGTH PT_RATE_LENGTH
97  * @brief    Pulse Train Configuration
98  * @{
99  */
100  #define MXC_F_PT_REVA_RATE_LENGTH_RATE_CONTROL_POS          0 /**< RATE_LENGTH_RATE_CONTROL Position */
101  #define MXC_F_PT_REVA_RATE_LENGTH_RATE_CONTROL              ((uint32_t)(0x7FFFFFFUL << MXC_F_PT_REVA_RATE_LENGTH_RATE_CONTROL_POS)) /**< RATE_LENGTH_RATE_CONTROL Mask */
102 
103  #define MXC_F_PT_REVA_RATE_LENGTH_MODE_POS                  27 /**< RATE_LENGTH_MODE Position */
104  #define MXC_F_PT_REVA_RATE_LENGTH_MODE                      ((uint32_t)(0x1FUL << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS)) /**< RATE_LENGTH_MODE Mask */
105  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_32_BIT               ((uint32_t)0x0UL) /**< RATE_LENGTH_MODE_32_BIT Value */
106  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_32_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_32_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_32_BIT Setting */
107  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_SQUARE_WAVE          ((uint32_t)0x1UL) /**< RATE_LENGTH_MODE_SQUARE_WAVE Value */
108  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_SQUARE_WAVE          (MXC_V_PT_REVA_RATE_LENGTH_MODE_SQUARE_WAVE << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_SQUARE_WAVE Setting */
109  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_2_BIT                ((uint32_t)0x2UL) /**< RATE_LENGTH_MODE_2_BIT Value */
110  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_2_BIT                (MXC_V_PT_REVA_RATE_LENGTH_MODE_2_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_2_BIT Setting */
111  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_3_BIT                ((uint32_t)0x3UL) /**< RATE_LENGTH_MODE_3_BIT Value */
112  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_3_BIT                (MXC_V_PT_REVA_RATE_LENGTH_MODE_3_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_3_BIT Setting */
113  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_4_BIT                ((uint32_t)0x4UL) /**< RATE_LENGTH_MODE_4_BIT Value */
114  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_4_BIT                (MXC_V_PT_REVA_RATE_LENGTH_MODE_4_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_4_BIT Setting */
115  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_5_BIT                ((uint32_t)0x5UL) /**< RATE_LENGTH_MODE_5_BIT Value */
116  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_5_BIT                (MXC_V_PT_REVA_RATE_LENGTH_MODE_5_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_5_BIT Setting */
117  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_6_BIT                ((uint32_t)0x6UL) /**< RATE_LENGTH_MODE_6_BIT Value */
118  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_6_BIT                (MXC_V_PT_REVA_RATE_LENGTH_MODE_6_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_6_BIT Setting */
119  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_7_BIT                ((uint32_t)0x7UL) /**< RATE_LENGTH_MODE_7_BIT Value */
120  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_7_BIT                (MXC_V_PT_REVA_RATE_LENGTH_MODE_7_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_7_BIT Setting */
121  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_8_BIT                ((uint32_t)0x8UL) /**< RATE_LENGTH_MODE_8_BIT Value */
122  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_8_BIT                (MXC_V_PT_REVA_RATE_LENGTH_MODE_8_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_8_BIT Setting */
123  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_9_BIT                ((uint32_t)0x9UL) /**< RATE_LENGTH_MODE_9_BIT Value */
124  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_9_BIT                (MXC_V_PT_REVA_RATE_LENGTH_MODE_9_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_9_BIT Setting */
125  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_10_BIT               ((uint32_t)0xAUL) /**< RATE_LENGTH_MODE_10_BIT Value */
126  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_10_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_10_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_10_BIT Setting */
127  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_11_BIT               ((uint32_t)0xBUL) /**< RATE_LENGTH_MODE_11_BIT Value */
128  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_11_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_11_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_11_BIT Setting */
129  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_12_BIT               ((uint32_t)0xCUL) /**< RATE_LENGTH_MODE_12_BIT Value */
130  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_12_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_12_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_12_BIT Setting */
131  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_13_BIT               ((uint32_t)0xDUL) /**< RATE_LENGTH_MODE_13_BIT Value */
132  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_13_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_13_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_13_BIT Setting */
133  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_14_BIT               ((uint32_t)0xEUL) /**< RATE_LENGTH_MODE_14_BIT Value */
134  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_14_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_14_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_14_BIT Setting */
135  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_15_BIT               ((uint32_t)0xFUL) /**< RATE_LENGTH_MODE_15_BIT Value */
136  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_15_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_15_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_15_BIT Setting */
137  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_16_BIT               ((uint32_t)0x10UL) /**< RATE_LENGTH_MODE_16_BIT Value */
138  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_16_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_16_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_16_BIT Setting */
139  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_17_BIT               ((uint32_t)0x11UL) /**< RATE_LENGTH_MODE_17_BIT Value */
140  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_17_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_17_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_17_BIT Setting */
141  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_18_BIT               ((uint32_t)0x12UL) /**< RATE_LENGTH_MODE_18_BIT Value */
142  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_18_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_18_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_18_BIT Setting */
143  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_19_BIT               ((uint32_t)0x13UL) /**< RATE_LENGTH_MODE_19_BIT Value */
144  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_19_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_19_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_19_BIT Setting */
145  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_20_BIT               ((uint32_t)0x14UL) /**< RATE_LENGTH_MODE_20_BIT Value */
146  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_20_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_20_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_20_BIT Setting */
147  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_21_BIT               ((uint32_t)0x15UL) /**< RATE_LENGTH_MODE_21_BIT Value */
148  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_21_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_21_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_21_BIT Setting */
149  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_22_BIT               ((uint32_t)0x16UL) /**< RATE_LENGTH_MODE_22_BIT Value */
150  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_22_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_22_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_22_BIT Setting */
151  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_23_BIT               ((uint32_t)0x17UL) /**< RATE_LENGTH_MODE_23_BIT Value */
152  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_23_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_23_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_23_BIT Setting */
153  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_24_BIT               ((uint32_t)0x18UL) /**< RATE_LENGTH_MODE_24_BIT Value */
154  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_24_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_24_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_24_BIT Setting */
155  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_25_BIT               ((uint32_t)0x19UL) /**< RATE_LENGTH_MODE_25_BIT Value */
156  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_25_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_25_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_25_BIT Setting */
157  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_26_BIT               ((uint32_t)0x1AUL) /**< RATE_LENGTH_MODE_26_BIT Value */
158  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_26_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_26_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_26_BIT Setting */
159  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_27_BIT               ((uint32_t)0x1BUL) /**< RATE_LENGTH_MODE_27_BIT Value */
160  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_27_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_27_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_27_BIT Setting */
161  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_28_BIT               ((uint32_t)0x1CUL) /**< RATE_LENGTH_MODE_28_BIT Value */
162  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_28_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_28_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_28_BIT Setting */
163  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_29_BIT               ((uint32_t)0x1DUL) /**< RATE_LENGTH_MODE_29_BIT Value */
164  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_29_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_29_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_29_BIT Setting */
165  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_30_BIT               ((uint32_t)0x1EUL) /**< RATE_LENGTH_MODE_30_BIT Value */
166  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_30_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_30_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_30_BIT Setting */
167  #define MXC_V_PT_REVA_RATE_LENGTH_MODE_31_BIT               ((uint32_t)0x1FUL) /**< RATE_LENGTH_MODE_31_BIT Value */
168  #define MXC_S_PT_REVA_RATE_LENGTH_MODE_31_BIT               (MXC_V_PT_REVA_RATE_LENGTH_MODE_31_BIT << MXC_F_PT_REVA_RATE_LENGTH_MODE_POS) /**< RATE_LENGTH_MODE_31_BIT Setting */
169 
170 /**@} end of group PT_RATE_LENGTH_Register */
171 
172 /**
173  * @ingroup  pt_registers
174  * @defgroup PT_LOOP PT_LOOP
175  * @brief    Pulse Train Loop Count
176  * @{
177  */
178  #define MXC_F_PT_REVA_LOOP_COUNT_POS                        0 /**< LOOP_COUNT Position */
179  #define MXC_F_PT_REVA_LOOP_COUNT                            ((uint32_t)(0xFFFFUL << MXC_F_PT_REVA_LOOP_COUNT_POS)) /**< LOOP_COUNT Mask */
180 
181  #define MXC_F_PT_REVA_LOOP_DELAY_POS                        16 /**< LOOP_DELAY Position */
182  #define MXC_F_PT_REVA_LOOP_DELAY                            ((uint32_t)(0xFFFUL << MXC_F_PT_REVA_LOOP_DELAY_POS)) /**< LOOP_DELAY Mask */
183 
184 /**@} end of group PT_LOOP_Register */
185 
186 /**
187  * @ingroup  pt_registers
188  * @defgroup PT_RESTART PT_RESTART
189  * @brief     Pulse Train Auto-Restart Configuration.
190  * @{
191  */
192  #define MXC_F_PT_REVA_RESTART_PT_X_SELECT_POS               0 /**< RESTART_PT_REVA_X_SELECT Position */
193  #define MXC_F_PT_REVA_RESTART_PT_X_SELECT                   ((uint32_t)(0x1FUL << MXC_F_PT_REVA_RESTART_PT_X_SELECT_POS)) /**< RESTART_PT_REVA_X_SELECT Mask */
194 
195  #define MXC_F_PT_REVA_RESTART_ON_PT_X_LOOP_EXIT_POS         7 /**< RESTART_ON_PT_REVA_X_LOOP_EXIT Position */
196  #define MXC_F_PT_REVA_RESTART_ON_PT_X_LOOP_EXIT             ((uint32_t)(0x1UL << MXC_F_PT_REVA_RESTART_ON_PT_X_LOOP_EXIT_POS)) /**< RESTART_ON_PT_REVA_X_LOOP_EXIT Mask */
197 
198  #define MXC_F_PT_REVA_RESTART_PT_Y_SELECT_POS               8 /**< RESTART_PT_REVA_Y_SELECT Position */
199  #define MXC_F_PT_REVA_RESTART_PT_Y_SELECT                   ((uint32_t)(0x1FUL << MXC_F_PT_REVA_RESTART_PT_Y_SELECT_POS)) /**< RESTART_PT_REVA_Y_SELECT Mask */
200 
201  #define MXC_F_PT_REVA_RESTART_ON_PT_Y_LOOP_EXIT_POS         15 /**< RESTART_ON_PT_REVA_Y_LOOP_EXIT Position */
202  #define MXC_F_PT_REVA_RESTART_ON_PT_Y_LOOP_EXIT             ((uint32_t)(0x1UL << MXC_F_PT_REVA_RESTART_ON_PT_Y_LOOP_EXIT_POS)) /**< RESTART_ON_PT_REVA_Y_LOOP_EXIT Mask */
203 
204 /**@} end of group PT_RESTART_Register */
205 
206 #ifdef __cplusplus
207 }
208 #endif
209 
210 #endif /* _PT_REVA_REGS_H_ */
211