1 /***************************************************************************//**
2 * \file cyip_peri_v2.h
3 *
4 * \brief
5 * PERI IP definitions
6 *
7 ********************************************************************************
8 * \copyright
9 * (c) (2016-2023), Cypress Semiconductor Corporation (an Infineon company) or
10 * an affiliate of Cypress Semiconductor Corporation.
11 *
12 * SPDX-License-Identifier: Apache-2.0
13 *
14 * Licensed under the Apache License, Version 2.0 (the "License");
15 * you may not use this file except in compliance with the License.
16 * You may obtain a copy of the License at
17 *
18 *     http://www.apache.org/licenses/LICENSE-2.0
19 *
20 * Unless required by applicable law or agreed to in writing, software
21 * distributed under the License is distributed on an "AS IS" BASIS,
22 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 * See the License for the specific language governing permissions and
24 * limitations under the License.
25 *******************************************************************************/
26 
27 #ifndef _CYIP_PERI_V2_H_
28 #define _CYIP_PERI_V2_H_
29 
30 #include "cyip_headers.h"
31 
32 /*******************************************************************************
33 *                                     PERI
34 *******************************************************************************/
35 
36 #define PERI_GR_V2_SECTION_SIZE                 0x00000020UL
37 #define PERI_TR_GR_V2_SECTION_SIZE              0x00000400UL
38 #define PERI_TR_1TO1_GR_V2_SECTION_SIZE         0x00000400UL
39 #define PERI_V2_SECTION_SIZE                    0x00010000UL
40 
41 /**
42   * \brief Peripheral group structure (PERI_GR)
43   */
44 typedef struct {
45   __IOM uint32_t CLOCK_CTL;                     /*!< 0x00000000 Clock control */
46    __IM uint32_t RESERVED[3];
47   __IOM uint32_t SL_CTL;                        /*!< 0x00000010 Slave control */
48    __IM uint32_t RESERVED1[3];
49 } PERI_GR_V2_Type;                              /*!< Size = 32 (0x20) */
50 
51 /**
52   * \brief Trigger group (PERI_TR_GR)
53   */
54 typedef struct {
55   __IOM uint32_t TR_CTL[256];                   /*!< 0x00000000 Trigger control register */
56 } PERI_TR_GR_V2_Type;                           /*!< Size = 1024 (0x400) */
57 
58 /**
59   * \brief Trigger 1-to-1 group (PERI_TR_1TO1_GR)
60   */
61 typedef struct {
62   __IOM uint32_t TR_CTL[256];                   /*!< 0x00000000 Trigger control register */
63 } PERI_TR_1TO1_GR_V2_Type;                      /*!< Size = 1024 (0x400) */
64 
65 /**
66   * \brief Peripheral interconnect (PERI)
67   */
68 typedef struct {
69    __IM uint32_t RESERVED[128];
70   __IOM uint32_t TIMEOUT_CTL;                   /*!< 0x00000200 Timeout control */
71    __IM uint32_t RESERVED1[7];
72   __IOM uint32_t TR_CMD;                        /*!< 0x00000220 Trigger command */
73    __IM uint32_t RESERVED2[119];
74   __IOM uint32_t DIV_CMD;                       /*!< 0x00000400 Divider command */
75    __IM uint32_t RESERVED3[511];
76   __IOM uint32_t CLOCK_CTL[256];                /*!< 0x00000C00 Clock control */
77   __IOM uint32_t DIV_8_CTL[256];                /*!< 0x00001000 Divider control (for 8.0 divider) */
78   __IOM uint32_t DIV_16_CTL[256];               /*!< 0x00001400 Divider control (for 16.0 divider) */
79   __IOM uint32_t DIV_16_5_CTL[256];             /*!< 0x00001800 Divider control (for 16.5 divider) */
80   __IOM uint32_t DIV_24_5_CTL[255];             /*!< 0x00001C00 Divider control (for 24.5 divider) */
81    __IM uint32_t RESERVED4;
82   __IOM uint32_t ECC_CTL;                       /*!< 0x00002000 ECC control */
83    __IM uint32_t RESERVED5[2047];
84         PERI_GR_V2_Type GR[16];                 /*!< 0x00004000 Peripheral group structure */
85    __IM uint32_t RESERVED6[3968];
86         PERI_TR_GR_V2_Type TR_GR[16];           /*!< 0x00008000 Trigger group */
87         PERI_TR_1TO1_GR_V2_Type TR_1TO1_GR[16]; /*!< 0x0000C000 Trigger 1-to-1 group */
88 } PERI_V2_Type;                                 /*!< Size = 65536 (0x10000) */
89 
90 
91 /* PERI_GR.CLOCK_CTL */
92 #define PERI_GR_V2_CLOCK_CTL_INT8_DIV_Pos       8UL
93 #define PERI_GR_V2_CLOCK_CTL_INT8_DIV_Msk       0xFF00UL
94 /* PERI_GR.SL_CTL */
95 #define PERI_GR_V2_SL_CTL_ENABLED_0_Pos         0UL
96 #define PERI_GR_V2_SL_CTL_ENABLED_0_Msk         0x1UL
97 #define PERI_GR_V2_SL_CTL_ENABLED_1_Pos         1UL
98 #define PERI_GR_V2_SL_CTL_ENABLED_1_Msk         0x2UL
99 #define PERI_GR_V2_SL_CTL_ENABLED_2_Pos         2UL
100 #define PERI_GR_V2_SL_CTL_ENABLED_2_Msk         0x4UL
101 #define PERI_GR_V2_SL_CTL_ENABLED_3_Pos         3UL
102 #define PERI_GR_V2_SL_CTL_ENABLED_3_Msk         0x8UL
103 #define PERI_GR_V2_SL_CTL_ENABLED_4_Pos         4UL
104 #define PERI_GR_V2_SL_CTL_ENABLED_4_Msk         0x10UL
105 #define PERI_GR_V2_SL_CTL_ENABLED_5_Pos         5UL
106 #define PERI_GR_V2_SL_CTL_ENABLED_5_Msk         0x20UL
107 #define PERI_GR_V2_SL_CTL_ENABLED_6_Pos         6UL
108 #define PERI_GR_V2_SL_CTL_ENABLED_6_Msk         0x40UL
109 #define PERI_GR_V2_SL_CTL_ENABLED_7_Pos         7UL
110 #define PERI_GR_V2_SL_CTL_ENABLED_7_Msk         0x80UL
111 #define PERI_GR_V2_SL_CTL_ENABLED_8_Pos         8UL
112 #define PERI_GR_V2_SL_CTL_ENABLED_8_Msk         0x100UL
113 #define PERI_GR_V2_SL_CTL_ENABLED_9_Pos         9UL
114 #define PERI_GR_V2_SL_CTL_ENABLED_9_Msk         0x200UL
115 #define PERI_GR_V2_SL_CTL_ENABLED_10_Pos        10UL
116 #define PERI_GR_V2_SL_CTL_ENABLED_10_Msk        0x400UL
117 #define PERI_GR_V2_SL_CTL_ENABLED_11_Pos        11UL
118 #define PERI_GR_V2_SL_CTL_ENABLED_11_Msk        0x800UL
119 #define PERI_GR_V2_SL_CTL_ENABLED_12_Pos        12UL
120 #define PERI_GR_V2_SL_CTL_ENABLED_12_Msk        0x1000UL
121 #define PERI_GR_V2_SL_CTL_ENABLED_13_Pos        13UL
122 #define PERI_GR_V2_SL_CTL_ENABLED_13_Msk        0x2000UL
123 #define PERI_GR_V2_SL_CTL_ENABLED_14_Pos        14UL
124 #define PERI_GR_V2_SL_CTL_ENABLED_14_Msk        0x4000UL
125 #define PERI_GR_V2_SL_CTL_ENABLED_15_Pos        15UL
126 #define PERI_GR_V2_SL_CTL_ENABLED_15_Msk        0x8000UL
127 #define PERI_GR_V2_SL_CTL_DISABLED_0_Pos        16UL
128 #define PERI_GR_V2_SL_CTL_DISABLED_0_Msk        0x10000UL
129 #define PERI_GR_V2_SL_CTL_DISABLED_1_Pos        17UL
130 #define PERI_GR_V2_SL_CTL_DISABLED_1_Msk        0x20000UL
131 #define PERI_GR_V2_SL_CTL_DISABLED_2_Pos        18UL
132 #define PERI_GR_V2_SL_CTL_DISABLED_2_Msk        0x40000UL
133 #define PERI_GR_V2_SL_CTL_DISABLED_3_Pos        19UL
134 #define PERI_GR_V2_SL_CTL_DISABLED_3_Msk        0x80000UL
135 #define PERI_GR_V2_SL_CTL_DISABLED_4_Pos        20UL
136 #define PERI_GR_V2_SL_CTL_DISABLED_4_Msk        0x100000UL
137 #define PERI_GR_V2_SL_CTL_DISABLED_5_Pos        21UL
138 #define PERI_GR_V2_SL_CTL_DISABLED_5_Msk        0x200000UL
139 #define PERI_GR_V2_SL_CTL_DISABLED_6_Pos        22UL
140 #define PERI_GR_V2_SL_CTL_DISABLED_6_Msk        0x400000UL
141 #define PERI_GR_V2_SL_CTL_DISABLED_7_Pos        23UL
142 #define PERI_GR_V2_SL_CTL_DISABLED_7_Msk        0x800000UL
143 #define PERI_GR_V2_SL_CTL_DISABLED_8_Pos        24UL
144 #define PERI_GR_V2_SL_CTL_DISABLED_8_Msk        0x1000000UL
145 #define PERI_GR_V2_SL_CTL_DISABLED_9_Pos        25UL
146 #define PERI_GR_V2_SL_CTL_DISABLED_9_Msk        0x2000000UL
147 #define PERI_GR_V2_SL_CTL_DISABLED_10_Pos       26UL
148 #define PERI_GR_V2_SL_CTL_DISABLED_10_Msk       0x4000000UL
149 #define PERI_GR_V2_SL_CTL_DISABLED_11_Pos       27UL
150 #define PERI_GR_V2_SL_CTL_DISABLED_11_Msk       0x8000000UL
151 #define PERI_GR_V2_SL_CTL_DISABLED_12_Pos       28UL
152 #define PERI_GR_V2_SL_CTL_DISABLED_12_Msk       0x10000000UL
153 #define PERI_GR_V2_SL_CTL_DISABLED_13_Pos       29UL
154 #define PERI_GR_V2_SL_CTL_DISABLED_13_Msk       0x20000000UL
155 #define PERI_GR_V2_SL_CTL_DISABLED_14_Pos       30UL
156 #define PERI_GR_V2_SL_CTL_DISABLED_14_Msk       0x40000000UL
157 #define PERI_GR_V2_SL_CTL_DISABLED_15_Pos       31UL
158 #define PERI_GR_V2_SL_CTL_DISABLED_15_Msk       0x80000000UL
159 
160 
161 /* PERI_TR_GR.TR_CTL */
162 #define PERI_TR_GR_V2_TR_CTL_TR_SEL_Pos         0UL
163 #define PERI_TR_GR_V2_TR_CTL_TR_SEL_Msk         0xFFUL
164 #define PERI_TR_GR_V2_TR_CTL_TR_INV_Pos         8UL
165 #define PERI_TR_GR_V2_TR_CTL_TR_INV_Msk         0x100UL
166 #define PERI_TR_GR_V2_TR_CTL_TR_EDGE_Pos        9UL
167 #define PERI_TR_GR_V2_TR_CTL_TR_EDGE_Msk        0x200UL
168 #define PERI_TR_GR_V2_TR_CTL_DBG_FREEZE_EN_Pos  12UL
169 #define PERI_TR_GR_V2_TR_CTL_DBG_FREEZE_EN_Msk  0x1000UL
170 
171 
172 /* PERI_TR_1TO1_GR.TR_CTL */
173 #define PERI_TR_1TO1_GR_V2_TR_CTL_TR_SEL_Pos    0UL
174 #define PERI_TR_1TO1_GR_V2_TR_CTL_TR_SEL_Msk    0x1UL
175 #define PERI_TR_1TO1_GR_V2_TR_CTL_TR_INV_Pos    8UL
176 #define PERI_TR_1TO1_GR_V2_TR_CTL_TR_INV_Msk    0x100UL
177 #define PERI_TR_1TO1_GR_V2_TR_CTL_TR_EDGE_Pos   9UL
178 #define PERI_TR_1TO1_GR_V2_TR_CTL_TR_EDGE_Msk   0x200UL
179 #define PERI_TR_1TO1_GR_V2_TR_CTL_DBG_FREEZE_EN_Pos 12UL
180 #define PERI_TR_1TO1_GR_V2_TR_CTL_DBG_FREEZE_EN_Msk 0x1000UL
181 
182 
183 /* PERI.TIMEOUT_CTL */
184 #define PERI_V2_TIMEOUT_CTL_TIMEOUT_Pos         0UL
185 #define PERI_V2_TIMEOUT_CTL_TIMEOUT_Msk         0xFFFFUL
186 /* PERI.TR_CMD */
187 #define PERI_V2_TR_CMD_TR_SEL_Pos               0UL
188 #define PERI_V2_TR_CMD_TR_SEL_Msk               0xFFUL
189 #define PERI_V2_TR_CMD_GROUP_SEL_Pos            8UL
190 #define PERI_V2_TR_CMD_GROUP_SEL_Msk            0x1F00UL
191 #define PERI_V2_TR_CMD_TR_EDGE_Pos              29UL
192 #define PERI_V2_TR_CMD_TR_EDGE_Msk              0x20000000UL
193 #define PERI_V2_TR_CMD_OUT_SEL_Pos              30UL
194 #define PERI_V2_TR_CMD_OUT_SEL_Msk              0x40000000UL
195 #define PERI_V2_TR_CMD_ACTIVATE_Pos             31UL
196 #define PERI_V2_TR_CMD_ACTIVATE_Msk             0x80000000UL
197 /* PERI.DIV_CMD */
198 #define PERI_V2_DIV_CMD_DIV_SEL_Pos             0UL
199 #define PERI_V2_DIV_CMD_DIV_SEL_Msk             0xFFUL
200 #define PERI_V2_DIV_CMD_TYPE_SEL_Pos            8UL
201 #define PERI_V2_DIV_CMD_TYPE_SEL_Msk            0x300UL
202 #define PERI_V2_DIV_CMD_PA_DIV_SEL_Pos          16UL
203 #define PERI_V2_DIV_CMD_PA_DIV_SEL_Msk          0xFF0000UL
204 #define PERI_V2_DIV_CMD_PA_TYPE_SEL_Pos         24UL
205 #define PERI_V2_DIV_CMD_PA_TYPE_SEL_Msk         0x3000000UL
206 #define PERI_V2_DIV_CMD_DISABLE_Pos             30UL
207 #define PERI_V2_DIV_CMD_DISABLE_Msk             0x40000000UL
208 #define PERI_V2_DIV_CMD_ENABLE_Pos              31UL
209 #define PERI_V2_DIV_CMD_ENABLE_Msk              0x80000000UL
210 /* PERI.CLOCK_CTL */
211 #define PERI_V2_CLOCK_CTL_DIV_SEL_Pos           0UL
212 #define PERI_V2_CLOCK_CTL_DIV_SEL_Msk           0xFFUL
213 #define PERI_V2_CLOCK_CTL_TYPE_SEL_Pos          8UL
214 #define PERI_V2_CLOCK_CTL_TYPE_SEL_Msk          0x300UL
215 /* PERI.DIV_8_CTL */
216 #define PERI_V2_DIV_8_CTL_EN_Pos                0UL
217 #define PERI_V2_DIV_8_CTL_EN_Msk                0x1UL
218 #define PERI_V2_DIV_8_CTL_INT8_DIV_Pos          8UL
219 #define PERI_V2_DIV_8_CTL_INT8_DIV_Msk          0xFF00UL
220 /* PERI.DIV_16_CTL */
221 #define PERI_V2_DIV_16_CTL_EN_Pos               0UL
222 #define PERI_V2_DIV_16_CTL_EN_Msk               0x1UL
223 #define PERI_V2_DIV_16_CTL_INT16_DIV_Pos        8UL
224 #define PERI_V2_DIV_16_CTL_INT16_DIV_Msk        0xFFFF00UL
225 /* PERI.DIV_16_5_CTL */
226 #define PERI_V2_DIV_16_5_CTL_EN_Pos             0UL
227 #define PERI_V2_DIV_16_5_CTL_EN_Msk             0x1UL
228 #define PERI_V2_DIV_16_5_CTL_FRAC5_DIV_Pos      3UL
229 #define PERI_V2_DIV_16_5_CTL_FRAC5_DIV_Msk      0xF8UL
230 #define PERI_V2_DIV_16_5_CTL_INT16_DIV_Pos      8UL
231 #define PERI_V2_DIV_16_5_CTL_INT16_DIV_Msk      0xFFFF00UL
232 /* PERI.DIV_24_5_CTL */
233 #define PERI_V2_DIV_24_5_CTL_EN_Pos             0UL
234 #define PERI_V2_DIV_24_5_CTL_EN_Msk             0x1UL
235 #define PERI_V2_DIV_24_5_CTL_FRAC5_DIV_Pos      3UL
236 #define PERI_V2_DIV_24_5_CTL_FRAC5_DIV_Msk      0xF8UL
237 #define PERI_V2_DIV_24_5_CTL_INT24_DIV_Pos      8UL
238 #define PERI_V2_DIV_24_5_CTL_INT24_DIV_Msk      0xFFFFFF00UL
239 /* PERI.ECC_CTL */
240 #define PERI_V2_ECC_CTL_WORD_ADDR_Pos           0UL
241 #define PERI_V2_ECC_CTL_WORD_ADDR_Msk           0x7FFUL
242 #define PERI_V2_ECC_CTL_ECC_EN_Pos              16UL
243 #define PERI_V2_ECC_CTL_ECC_EN_Msk              0x10000UL
244 #define PERI_V2_ECC_CTL_ECC_INJ_EN_Pos          18UL
245 #define PERI_V2_ECC_CTL_ECC_INJ_EN_Msk          0x40000UL
246 #define PERI_V2_ECC_CTL_PARITY_Pos              24UL
247 #define PERI_V2_ECC_CTL_PARITY_Msk              0xFF000000UL
248 
249 
250 #endif /* _CYIP_PERI_V2_H_ */
251 
252 
253 /* [] END OF FILE */
254