1 /***************************************************************************//**
2 * \file cy_device.c
3 * \version 2.30
4 *
5 * This file provides the definitions for core and peripheral block HW base
6 * addresses, versions, and parameters.
7 *
8 ********************************************************************************
9 * \copyright
10 * Copyright 2018-2019 Cypress Semiconductor Corporation
11 * SPDX-License-Identifier: Apache-2.0
12 *
13 * Licensed under the Apache License, Version 2.0 (the "License");
14 * you may not use this file except in compliance with the License.
15 * You may obtain a copy of the License at
16 *
17 * http://www.apache.org/licenses/LICENSE-2.0
18 *
19 * Unless required by applicable law or agreed to in writing, software
20 * distributed under the License is distributed on an "AS IS" BASIS,
21 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22 * See the License for the specific language governing permissions and
23 * limitations under the License.
24 *******************************************************************************/
25
26 #include "cy_device.h"
27
28 /*******************************************************************************
29 * Global Variables
30 *******************************************************************************/
31
32 /* This is set in Cy_PDL_Init() to the device information relevant
33 * for the current target.
34 */
35 const cy_stc_device_t * cy_device;
36
37 /* Platform and peripheral block configuration */
38
39 /* The header strategy used with TVIIBE does not bring in some legacy defines required
40 * for PSoC6_01 - ignore defining this device family when compiling for TVIIBE. */
41 #if !(defined(CY_DEVICE_TVIIBE))
42 const cy_stc_device_t cy_deviceIpBlockCfgPSoC6_01 =
43 {
44 /* Base HW addresses */
45 /* cpussBase */ 0x40210000UL,
46 /* flashcBase */ 0x40250000UL,
47 /* periBase */ 0x40010000UL,
48 /* udbBase */ 0x40340000UL,
49 /* protBase */ 0x40240000UL,
50 /* hsiomBase */ 0x40310000UL,
51 /* gpioBase */ 0x40320000UL,
52 /* passBase */ 0x411F0000UL,
53 /* ipcBase */ 0x40230000UL,
54 /* cryptoBase */ 0x40110000UL,
55 /* sar0Base */ 0x411D0000UL,
56
57 /* IP block versions [7:4] major, [3:0] minor */
58 /* cpussVersion */ 0x10U,
59 /* cryptoVersion */ 0x10U,
60 /* dwVersion */ 0x10U,
61 /* flashcVersion */ 0x10U,
62 /* gpioVersion */ 0x10U,
63 /* hsiomVersion */ 0x10U,
64 /* ipcVersion */ 0x10U,
65 /* periVersion */ 0x10U,
66 /* protVersion */ 0x10U,
67 /* srssVersion */ 0x10U,
68 /* passVersion */ 0x10U,
69
70 /* Parameters */
71 /* cpussIpcNr */ 16U,
72 /* cpussIpcIrqNr */ 16U,
73 /* cpussDw0ChNr */ 16U,
74 /* cpussDw1ChNr */ 16U,
75 /* cpussFlashPaSize */ 128U,
76 /* cpussIpc0Irq */ 25,
77 /* cpussFmIrq */ 85,
78 /* cpussNotConnectedIrq */ 240,
79 /* srssNumClkpath */ 5U,
80 /* srssNumPll */ 1U,
81 /* srssNumHfroot */ 5U,
82 /* srssIsPiloPresent */ 1U,
83 /* periClockNr */ 59U,
84 /* smifDeviceNr */ 4U,
85 /* passSarChannels */ 16U,
86 /* epMonitorNr */ 28u,
87 /* udbPresent */ 1U,
88 /* sysPmSimoPresent */ 1U,
89 /* protBusMasterMask */ 0xC00FUL,
90 /* cryptoMemSize */ 1024u,
91 /* flashRwwRequired */ 1U,
92 /* flashPipeRequired */ 1U,
93 /* flashWriteDelay */ 1U,
94 /* flashProgramDelay */ 1U,
95 /* flashEraseDelay */ 1U,
96 /* flashCtlMainWs0Freq */ 29U,
97 /* flashCtlMainWs1Freq */ 58U,
98 /* flashCtlMainWs2Freq */ 87U,
99 /* flashCtlMainWs3Freq */ 120U,
100 /* flashCtlMainWs4Freq */ 150U,
101 /* tcpwmCC1Present */ 0U,
102 /* tcpwmAMCPresent */ 0U,
103 /* tcpwmSMCPrecent */ 0U,
104
105 /* Peripheral register offsets */
106
107 /* DW registers */
108 /* dwChOffset */ (uint16_t)offsetof(DW_V1_Type, CH_STRUCT),
109 /* dwChSize */ (uint16_t)sizeof(DW_CH_STRUCT_V1_Type),
110 /* dwChCtlPrioPos */ (uint8_t)DW_CH_STRUCT_CH_CTL_PRIO_Pos,
111 /* dwChCtlPreemptablePos */ (uint8_t)DW_CH_STRUCT_CH_CTL_PREEMPTABLE_Pos,
112 /* dwStatusChIdxPos */ (uint8_t)DW_STATUS_CH_IDX_Pos,
113 /* dwStatusChIdxMsk */ DW_STATUS_CH_IDX_Msk,
114
115 /* PERI registers */
116 /* periTrCmdOffset */ (uint16_t)offsetof(PERI_V1_Type, TR_CMD),
117 /* periTrCmdGrSelMsk */ (uint16_t)PERI_TR_CMD_GROUP_SEL_Msk,
118 /* periTrGrOffset */ (uint16_t)offsetof(PERI_V1_Type, TR_GR),
119 /* periTrGrSize */ (uint16_t)sizeof(PERI_TR_GR_V1_Type),
120
121 /* periDivCmdDivSelMsk */ (uint8_t)PERI_DIV_CMD_DIV_SEL_Msk,
122 /* periDivCmdTypeSelPos */ (uint8_t)PERI_DIV_CMD_TYPE_SEL_Pos,
123 /* periDivCmdPaDivSelPos */ (uint8_t)PERI_DIV_CMD_PA_DIV_SEL_Pos,
124 /* periDivCmdPaTypeSelPos */ (uint8_t)PERI_DIV_CMD_PA_TYPE_SEL_Pos,
125
126 /* periDiv8CtlOffset */ (uint16_t)offsetof(PERI_V1_Type, DIV_8_CTL),
127 /* periDiv16CtlOffset */ (uint16_t)offsetof(PERI_V1_Type, DIV_16_CTL),
128 /* periDiv16_5CtlOffset */ (uint16_t)offsetof(PERI_V1_Type, DIV_16_5_CTL),
129 /* periDiv24_5CtlOffset */ (uint16_t)offsetof(PERI_V1_Type, DIV_24_5_CTL),
130
131 /* GPIO registers */
132 /* gpioPrtIntrCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V1_Type, INTR_CFG),
133 /* gpioPrtCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V1_Type, CFG),
134 /* gpioPrtCfgInOffset */ (uint8_t)offsetof(GPIO_PRT_V1_Type, CFG_IN),
135 /* gpioPrtCfgOutOffset */ (uint8_t)offsetof(GPIO_PRT_V1_Type, CFG_OUT),
136 /* gpioPrtCfgSioOffset */ (uint8_t)offsetof(GPIO_PRT_V1_Type, CFG_SIO),
137
138 /* CPUSS registers */
139 /* cpussCm0ClockCtlOffset */ offsetof(CPUSS_V1_Type, CM0_CLOCK_CTL),
140 /* cpussCm4ClockCtlOffset */ offsetof(CPUSS_V1_Type, CM4_CLOCK_CTL),
141 /* cpussCm4StatusOffset */ offsetof(CPUSS_V1_Type, CM4_STATUS),
142 /* cpussCm0StatusOffset */ offsetof(CPUSS_V1_Type, CM0_STATUS),
143 /* cpussCm4PwrCtlOffset */ offsetof(CPUSS_V1_Type, CM4_PWR_CTL),
144 /* cpussTrimRamCtlOffset */ offsetof(CPUSS_V1_Type, TRIM_RAM_CTL),
145 /* cpussTrimRomCtlOffset */ offsetof(CPUSS_V1_Type, TRIM_ROM_CTL),
146 /* cpussSysTickCtlOffset */ offsetof(CPUSS_V1_Type, SYSTICK_CTL),
147
148 /* cpussCm0NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V1_Type, CM0_NMI_CTL),
149 /* cpussCm4NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V1_Type, CM4_NMI_CTL),
150 /* cpussRomCtl */ (uint16_t)offsetof(CPUSS_V1_Type, ROM_CTL),
151 /* cpussRam0Ctl0 */ (uint16_t)offsetof(CPUSS_V1_Type, RAM0_CTL0),
152 /* cpussRam1Ctl0 */ (uint16_t)offsetof(CPUSS_V1_Type, RAM1_CTL0),
153 /* cpussRam2Ctl0 */ (uint16_t)offsetof(CPUSS_V1_Type, RAM2_CTL0),
154 /* cpussRam0PwrCtl */ (uint16_t)offsetof(CPUSS_V1_Type, RAM0_PWR_MACRO_CTL),
155 /* cpussRam1PwrCtl */ (uint16_t)offsetof(CPUSS_V1_Type, RAM1_PWR_CTL),
156 /* cpussRam2PwrCtl */ (uint16_t)offsetof(CPUSS_V1_Type, RAM2_PWR_CTL),
157
158 /* IPC registers */
159 /* ipcStructSize */ (uint16_t)sizeof(IPC_STRUCT_V1_Type),
160 /* ipcLockStatusOffset */ offsetof(IPC_STRUCT_V1_Type, LOCK_STATUS),
161 };
162 #endif
163
164 const cy_stc_device_t cy_deviceIpBlockCfgPSoC6_02 =
165 {
166 /* Base HW addresses */
167 /* cpussBase */ 0x40200000UL,
168 /* flashcBase */ 0x40240000UL,
169 /* periBase */ 0x40000000UL,
170 /* udbBase */ 0UL,
171 /* protBase */ 0x40230000UL,
172 /* hsiomBase */ 0x40300000UL,
173 /* gpioBase */ 0x40310000UL,
174 /* passBase */ 0x409F0000UL,
175 /* ipcBase */ 0x40220000UL,
176 /* cryptoBase */ 0x40100000UL,
177 /* sar0Base */ 0x409D0000UL,
178
179 /* IP block versions [7:4] major, [3:0] minor */
180 /* cpussVersion */ 0x20U,
181 /* cryptoVersion */ 0x20U,
182 /* dwVersion */ 0x20U,
183 /* flashcVersion */ 0x20U,
184 /* gpioVersion */ 0x20U,
185 /* hsiomVersion */ 0x20U,
186 /* ipcVersion */ 0x20U,
187 /* periVersion */ 0x20U,
188 /* protVersion */ 0x20U,
189 /* srssVersion */ 0x10U,
190 /* passVersion */ 0x10U,
191
192 /* Parameters */
193 /* cpussIpcNr */ 16U,
194 /* cpussIpcIrqNr */ 16U,
195 /* cpussDw0ChNr */ 29U,
196 /* cpussDw1ChNr */ 29U,
197 /* cpussFlashPaSize */ 128U,
198 /* cpussIpc0Irq */ 23,
199 /* cpussFmIrq */ 117,
200 /* cpussNotConnectedIrq */ 1023,
201 /* srssNumClkpath */ 6U,
202 /* srssNumPll */ 2U,
203 /* srssNumHfroot */ 6U,
204 /* srssIsPiloPresent */ 0U,
205 /* periClockNr */ 54U,
206 /* smifDeviceNr */ 4U,
207 /* passSarChannels */ 16U,
208 /* epMonitorNr */ 32u,
209 /* udbPresent */ 0U,
210 /* sysPmSimoPresent */ 0U,
211 /* protBusMasterMask */ 0xC07FUL,
212 /* cryptoMemSize */ 1024u,
213 /* flashRwwRequired */ 0U,
214 /* flashPipeRequired */ 0U,
215 /* flashWriteDelay */ 0U,
216 /* flashProgramDelay */ 0U,
217 /* flashEraseDelay */ 0U,
218 /* flashCtlMainWs0Freq */ 25U,
219 /* flashCtlMainWs1Freq */ 50U,
220 /* flashCtlMainWs2Freq */ 75U,
221 /* flashCtlMainWs3Freq */ 100U,
222 /* flashCtlMainWs4Freq */ 125U,
223 /* tcpwmCC1Present */ 0U,
224 /* tcpwmAMCPresent */ 0U,
225 /* tcpwmSMCPrecent */ 0U,
226
227 /* Peripheral register offsets */
228
229 /* DW registers */
230 /* dwChOffset */ (uint16_t)offsetof(DW_V2_Type, CH_STRUCT),
231 /* dwChSize */ (uint16_t)sizeof(DW_CH_STRUCT_V2_Type),
232 /* dwChCtlPrioPos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PRIO_Pos,
233 /* dwChCtlPreemptablePos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PREEMPTABLE_Pos,
234 /* dwStatusChIdxPos */ (uint8_t)DW_V2_STATUS_CH_IDX_Pos,
235 /* dwStatusChIdxMsk */ DW_V2_STATUS_CH_IDX_Msk,
236
237 /* PERI registers */
238 /* periTrCmdOffset */ (uint16_t)offsetof(PERI_V2_Type, TR_CMD),
239 /* periTrCmdGrSelMsk */ (uint16_t)PERI_V2_TR_CMD_GROUP_SEL_Msk,
240 /* periTrGrOffset */ (uint16_t)offsetof(PERI_V2_Type, TR_GR),
241 /* periTrGrSize */ (uint16_t)sizeof(PERI_TR_GR_V2_Type),
242
243 /* periDivCmdDivSelMsk */ (uint8_t)PERI_V2_DIV_CMD_DIV_SEL_Msk,
244 /* periDivCmdTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_TYPE_SEL_Pos,
245 /* periDivCmdPaDivSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_DIV_SEL_Pos,
246 /* periDivCmdPaTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_TYPE_SEL_Pos,
247
248 /* periDiv8CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_8_CTL),
249 /* periDiv16CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_16_CTL),
250 /* periDiv16_5CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_16_5_CTL),
251 /* periDiv24_5CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_24_5_CTL),
252
253 /* GPIO registers */
254 /* gpioPrtIntrCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, INTR_CFG),
255 /* gpioPrtCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG),
256 /* gpioPrtCfgInOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_IN),
257 /* gpioPrtCfgOutOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_OUT),
258 /* gpioPrtCfgSioOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_SIO),
259
260 /* CPUSS registers */
261 /* cpussCm0ClockCtlOffset */ offsetof(CPUSS_V2_Type, CM0_CLOCK_CTL),
262 /* cpussCm4ClockCtlOffset */ offsetof(CPUSS_V2_Type, CM4_CLOCK_CTL),
263 /* cpussCm4StatusOffset */ offsetof(CPUSS_V2_Type, CM4_STATUS),
264 /* cpussCm0StatusOffset */ offsetof(CPUSS_V2_Type, CM0_STATUS),
265 /* cpussCm4PwrCtlOffset */ offsetof(CPUSS_V2_Type, CM4_PWR_CTL),
266 /* cpussTrimRamCtlOffset */ offsetof(CPUSS_V2_Type, TRIM_RAM_CTL),
267 /* cpussTrimRomCtlOffset */ offsetof(CPUSS_V2_Type, TRIM_ROM_CTL),
268 /* cpussSysTickCtlOffset */ offsetof(CPUSS_V2_Type, SYSTICK_CTL),
269 /* cpussCm0NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V2_Type, CM0_NMI_CTL),
270 /* cpussCm4NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V2_Type, CM4_NMI_CTL),
271 /* cpussRomCtl */ (uint16_t)offsetof(CPUSS_V2_Type, ROM_CTL),
272 /* cpussRam0Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM0_CTL0),
273 /* cpussRam1Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM1_CTL0),
274 /* cpussRam2Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM2_CTL0),
275 /* cpussRam0PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM0_PWR_MACRO_CTL),
276 /* cpussRam1PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM1_PWR_CTL),
277 /* cpussRam2PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM2_PWR_CTL),
278
279 /* IPC registers */
280 /* ipcStructSize */ (uint16_t)sizeof(IPC_STRUCT_V2_Type),
281 /* ipcLockStatusOffset */ offsetof(IPC_STRUCT_V2_Type, LOCK_STATUS),
282 };
283
284 const cy_stc_device_t cy_deviceIpBlockCfgPSoC6_03 =
285 {
286 /* Base HW addresses */
287 /* cpussBase */ 0x40200000UL,
288 /* flashcBase */ 0x40240000UL,
289 /* periBase */ 0x40000000UL,
290 /* udbBase */ 0UL,
291 /* protBase */ 0x40230000UL,
292 /* hsiomBase */ 0x40300000UL,
293 /* gpioBase */ 0x40310000UL,
294 /* passBase */ 0x409F0000UL,
295 /* ipcBase */ 0x40220000UL,
296 /* cryptoBase */ 0x40100000UL,
297 /* sar0Base */ 0x409D0000UL,
298
299 /* IP block versions [7:4] major, [3:0] minor */
300 /* cpussVersion */ 0x20U,
301 /* cryptoVersion */ 0x20U,
302 /* dwVersion */ 0x20U,
303 /* flashcVersion */ 0x20U,
304 /* gpioVersion */ 0x20U,
305 /* hsiomVersion */ 0x20U,
306 /* ipcVersion */ 0x20U,
307 /* periVersion */ 0x20U,
308 /* protVersion */ 0x20U,
309 /* srssVersion */ 0x13U,
310 /* passVersion */ 0x10U,
311
312 /* Parameters */
313 /* cpussIpcNr */ 16U,
314 /* cpussIpcIrqNr */ 16U,
315 /* cpussDw0ChNr */ 29U,
316 /* cpussDw1ChNr */ 32U,
317 /* cpussFlashPaSize */ 128U,
318 /* cpussIpc0Irq */ 23,
319 /* cpussFmIrq */ 117,
320 /* cpussNotConnectedIrq */ 1023,
321 /* srssNumClkpath */ 5U,
322 /* srssNumPll */ 1U,
323 /* srssNumHfroot */ 5U,
324 /* srssIsPiloPresent */ 0U,
325 /* periClockNr */ 28U,
326 /* smifDeviceNr */ 3U,
327 /* passSarChannels */ 16U,
328 /* epMonitorNr */ 0u,
329 /* udbPresent */ 0U,
330 /* sysPmSimoPresent */ 0U,
331 /* protBusMasterMask */ 0xC03FUL,
332 /* cryptoMemSize */ 1024u,
333 /* flashRwwRequired */ 0U,
334 /* flashPipeRequired */ 0U,
335 /* flashWriteDelay */ 0U,
336 /* flashProgramDelay */ 0U,
337 /* flashEraseDelay */ 0U,
338 /* flashCtlMainWs0Freq */ 25U,
339 /* flashCtlMainWs1Freq */ 50U,
340 /* flashCtlMainWs2Freq */ 75U,
341 /* flashCtlMainWs3Freq */ 100U,
342 /* flashCtlMainWs4Freq */ 125U,
343 /* tcpwmCC1Present */ 0U,
344 /* tcpwmAMCPresent */ 0U,
345 /* tcpwmSMCPrecent */ 0U,
346
347 /* Peripheral register offsets */
348
349 /* DW registers */
350 /* dwChOffset */ (uint16_t)offsetof(DW_V2_Type, CH_STRUCT),
351 /* dwChSize */ (uint16_t)sizeof(DW_CH_STRUCT_V2_Type),
352 /* dwChCtlPrioPos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PRIO_Pos,
353 /* dwChCtlPreemptablePos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PREEMPTABLE_Pos,
354 /* dwStatusChIdxPos */ (uint8_t)DW_V2_STATUS_CH_IDX_Pos,
355 /* dwStatusChIdxMsk */ DW_V2_STATUS_CH_IDX_Msk,
356
357 /* PERI registers */
358 /* periTrCmdOffset */ (uint16_t)offsetof(PERI_V2_Type, TR_CMD),
359 /* periTrCmdGrSelMsk */ (uint16_t)PERI_V2_TR_CMD_GROUP_SEL_Msk,
360 /* periTrGrOffset */ (uint16_t)offsetof(PERI_V2_Type, TR_GR),
361 /* periTrGrSize */ (uint16_t)sizeof(PERI_TR_GR_V2_Type),
362
363 /* periDivCmdDivSelMsk */ (uint8_t)PERI_V2_DIV_CMD_DIV_SEL_Msk,
364 /* periDivCmdTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_TYPE_SEL_Pos,
365 /* periDivCmdPaDivSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_DIV_SEL_Pos,
366 /* periDivCmdPaTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_TYPE_SEL_Pos,
367
368 /* periDiv8CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_8_CTL),
369 /* periDiv16CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_16_CTL),
370 /* periDiv16_5CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_16_5_CTL),
371 /* periDiv24_5CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_24_5_CTL),
372
373 /* GPIO registers */
374 /* gpioPrtIntrCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, INTR_CFG),
375 /* gpioPrtCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG),
376 /* gpioPrtCfgInOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_IN),
377 /* gpioPrtCfgOutOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_OUT),
378 /* gpioPrtCfgSioOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_SIO),
379
380 /* CPUSS registers */
381 /* cpussCm0ClockCtlOffset */ offsetof(CPUSS_V2_Type, CM0_CLOCK_CTL),
382 /* cpussCm4ClockCtlOffset */ offsetof(CPUSS_V2_Type, CM4_CLOCK_CTL),
383 /* cpussCm4StatusOffset */ offsetof(CPUSS_V2_Type, CM4_STATUS),
384 /* cpussCm0StatusOffset */ offsetof(CPUSS_V2_Type, CM0_STATUS),
385 /* cpussCm4PwrCtlOffset */ offsetof(CPUSS_V2_Type, CM4_PWR_CTL),
386 /* cpussTrimRamCtlOffset */ offsetof(CPUSS_V2_Type, TRIM_RAM_CTL),
387 /* cpussTrimRomCtlOffset */ offsetof(CPUSS_V2_Type, TRIM_ROM_CTL),
388 /* cpussSysTickCtlOffset */ offsetof(CPUSS_V2_Type, SYSTICK_CTL),
389 /* cpussCm0NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V2_Type, CM0_NMI_CTL),
390 /* cpussCm4NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V2_Type, CM4_NMI_CTL),
391 /* cpussRomCtl */ (uint16_t)offsetof(CPUSS_V2_Type, ROM_CTL),
392 /* cpussRam0Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM0_CTL0),
393 /* cpussRam1Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM1_CTL0),
394 /* cpussRam2Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM2_CTL0),
395 /* cpussRam0PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM0_PWR_MACRO_CTL),
396 /* cpussRam1PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM1_PWR_CTL),
397 /* cpussRam2PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM2_PWR_CTL),
398
399 /* IPC registers */
400 /* ipcStructSize */ (uint16_t)sizeof(IPC_STRUCT_V2_Type),
401 /* ipcLockStatusOffset */ offsetof(IPC_STRUCT_V2_Type, LOCK_STATUS),
402 };
403
404 const cy_stc_device_t cy_deviceIpBlockCfgPSoC6_04 =
405 {
406 /* Base HW addresses */
407 /* cpussBase */ 0x40200000UL,
408 /* flashcBase */ 0x40240000UL,
409 /* periBase */ 0x40000000UL,
410 /* udbBase */ 0UL,
411 /* protBase */ 0x40230000UL,
412 /* hsiomBase */ 0x40300000UL,
413 /* gpioBase */ 0x40310000UL,
414 /* passBase */ 0x409F0000UL,
415 /* ipcBase */ 0x40220000UL,
416 /* cryptoBase */ 0x40100000UL,
417 /* sar0Base */ 0x409B0000UL,
418
419 /* IP block versions [7:4] major, [3:0] minor */
420 /* cpussVersion */ 0x20U,
421 /* cryptoVersion */ 0x20U,
422 /* dwVersion */ 0x20U,
423 /* flashcVersion */ 0x20U,
424 /* gpioVersion */ 0x20U,
425 /* hsiomVersion */ 0x20U,
426 /* ipcVersion */ 0x20U,
427 /* periVersion */ 0x20U,
428 /* protVersion */ 0x20U,
429 /* srssVersion */ 0x13U,
430 /* passVersion */ 0x20U,
431
432 /* Parameters */
433 /* cpussIpcNr */ 16U,
434 /* cpussIpcIrqNr */ 16U,
435 /* cpussDw0ChNr */ 30U,
436 /* cpussDw1ChNr */ 32U,
437 /* cpussFlashPaSize */ 128U,
438 /* cpussIpc0Irq */ 23,
439 /* cpussFmIrq */ 117,
440 /* cpussNotConnectedIrq */ 1023,
441 /* srssNumClkpath */ 5U,
442 /* srssNumPll */ 1U,
443 /* srssNumHfroot */ 4U,
444 /* srssIsPiloPresent */ 0U,
445 /* periClockNr */ 28U,
446 /* smifDeviceNr */ 3U,
447 /* passSarChannels */ 16U,
448 /* epMonitorNr */ 0u,
449 /* udbPresent */ 0U,
450 /* sysPmSimoPresent */ 0U,
451 /* protBusMasterMask */ 0xC01FUL,
452 /* cryptoMemSize */ 1024u,
453 /* flashRwwRequired */ 0U,
454 /* flashPipeRequired */ 0U,
455 /* flashWriteDelay */ 0U,
456 /* flashProgramDelay */ 0U,
457 /* flashEraseDelay */ 0U,
458 /* flashCtlMainWs0Freq */ 25U,
459 /* flashCtlMainWs1Freq */ 50U,
460 /* flashCtlMainWs2Freq */ 75U,
461 /* flashCtlMainWs3Freq */ 100U,
462 /* flashCtlMainWs4Freq */ 125U,
463 /* tcpwmCC1Present */ 0x02U,
464 /* tcpwmAMCPresent */ 0x02U,
465 /* tcpwmSMCPrecent */ 0x00U,
466
467 /* Peripheral register offsets */
468
469 /* DW registers */
470 /* dwChOffset */ (uint16_t)offsetof(DW_V2_Type, CH_STRUCT),
471 /* dwChSize */ (uint16_t)sizeof(DW_CH_STRUCT_V2_Type),
472 /* dwChCtlPrioPos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PRIO_Pos,
473 /* dwChCtlPreemptablePos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PREEMPTABLE_Pos,
474 /* dwStatusChIdxPos */ (uint8_t)DW_V2_STATUS_CH_IDX_Pos,
475 /* dwStatusChIdxMsk */ DW_V2_STATUS_CH_IDX_Msk,
476
477 /* PERI registers */
478 /* periTrCmdOffset */ (uint16_t)offsetof(PERI_V2_Type, TR_CMD),
479 /* periTrCmdGrSelMsk */ (uint16_t)PERI_V2_TR_CMD_GROUP_SEL_Msk,
480 /* periTrGrOffset */ (uint16_t)offsetof(PERI_V2_Type, TR_GR),
481 /* periTrGrSize */ (uint16_t)sizeof(PERI_TR_GR_V2_Type),
482
483 /* periDivCmdDivSelMsk */ (uint8_t)PERI_V2_DIV_CMD_DIV_SEL_Msk,
484 /* periDivCmdTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_TYPE_SEL_Pos,
485 /* periDivCmdPaDivSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_DIV_SEL_Pos,
486 /* periDivCmdPaTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_TYPE_SEL_Pos,
487
488 /* periDiv8CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_8_CTL),
489 /* periDiv16CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_16_CTL),
490 /* periDiv16_5CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_16_5_CTL),
491 /* periDiv24_5CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_24_5_CTL),
492
493 /* GPIO registers */
494 /* gpioPrtIntrCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, INTR_CFG),
495 /* gpioPrtCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG),
496 /* gpioPrtCfgInOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_IN),
497 /* gpioPrtCfgOutOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_OUT),
498 /* gpioPrtCfgSioOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_SIO),
499
500 /* CPUSS registers */
501 /* cpussCm0ClockCtlOffset */ offsetof(CPUSS_V2_Type, CM0_CLOCK_CTL),
502 /* cpussCm4ClockCtlOffset */ offsetof(CPUSS_V2_Type, CM4_CLOCK_CTL),
503 /* cpussCm4StatusOffset */ offsetof(CPUSS_V2_Type, CM4_STATUS),
504 /* cpussCm0StatusOffset */ offsetof(CPUSS_V2_Type, CM0_STATUS),
505 /* cpussCm4PwrCtlOffset */ offsetof(CPUSS_V2_Type, CM4_PWR_CTL),
506 /* cpussTrimRamCtlOffset */ offsetof(CPUSS_V2_Type, TRIM_RAM_CTL),
507 /* cpussTrimRomCtlOffset */ offsetof(CPUSS_V2_Type, TRIM_ROM_CTL),
508 /* cpussSysTickCtlOffset */ offsetof(CPUSS_V2_Type, SYSTICK_CTL),
509 /* cpussCm0NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V2_Type, CM0_NMI_CTL),
510 /* cpussCm4NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V2_Type, CM4_NMI_CTL),
511 /* cpussRomCtl */ (uint16_t)offsetof(CPUSS_V2_Type, ROM_CTL),
512 /* cpussRam0Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM0_CTL0),
513 /* cpussRam1Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM1_CTL0),
514 /* cpussRam2Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM2_CTL0),
515 /* cpussRam0PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM0_PWR_MACRO_CTL),
516 /* cpussRam1PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM1_PWR_CTL),
517 /* cpussRam2PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM2_PWR_CTL),
518
519 /* IPC registers */
520 /* ipcStructSize */ (uint16_t)sizeof(IPC_STRUCT_V2_Type),
521 /* ipcLockStatusOffset */ offsetof(IPC_STRUCT_V2_Type, LOCK_STATUS),
522 };
523
524 const cy_stc_device_t cy_deviceIpBlockCfgTVIIBE4M =
525 {
526 /* Base HW addresses */
527 /* cpussBase */ 0x40200000UL,
528 /* flashcBase */ 0x40240000UL,
529 /* periBase */ 0x40000000UL,
530 /* udbBase */ 0UL,
531 /* protBase */ 0x40230000UL,
532 /* hsiomBase */ 0x40300000UL,
533 /* gpioBase */ 0x40310000UL,
534 /* passBase */ 0x40900000UL,
535 /* ipcBase */ 0x40220000UL,
536 /* cryptoBase */ 0x40100000UL,
537 /* sar0Base */ 0x40900000UL,
538
539 /* IP block versions [7:4] major, [3:0] minor */
540 /* cpussVersion */ 0x20U,
541 /* cryptoVersion */ 0x20U,
542 /* dwVersion */ 0x20U,
543 /* flashcVersion */ 0x20U,
544 /* gpioVersion */ 0x20U,
545 /* hsiomVersion */ 0x20U,
546 /* ipcVersion */ 0x20U,
547 /* periVersion */ 0x20U,
548 /* protVersion */ 0x20U,
549 /* srssVersion */ 0x30U,
550 /* passVersion */ 0x20U,
551
552 /* Parameters */
553 /* cpussIpcNr */ 8U,
554 /* cpussIpcIrqNr */ 8U,
555 /* cpussDw0ChNr */ 92U,
556 /* cpussDw1ChNr */ 44U,
557 /* cpussFlashPaSize */ 128U,
558 /* cpussIpc0Irq */ 0,
559 /* cpussFmIrq */ 46,
560 /* cpussNotConnectedIrq */ 1023,
561 /* srssNumClkpath */ 4U,
562 /* srssNumPll */ 1U,
563 /* srssNumHfroot */ 3U,
564 /* srssIsPiloPresent */ 0U,
565 /* periClockNr */ 124U,
566 /* smifDeviceNr */ 0U,
567 /* passSarChannels */ 64U,
568 /* epMonitorNr */ 0u,
569 /* udbPresent */ 0U,
570 /* sysPmSimoPresent */ 0U,
571 /* protBusMasterMask */ 0xFE7FUL,
572 /* cryptoMemSize */ 1024u,
573 /* flashRwwRequired */ 0U,
574 /* flashPipeRequired */ 0U,
575 /* flashWriteDelay */ 0U,
576 /* flashProgramDelay */ 0U,
577 /* flashEraseDelay */ 0U,
578 /* flashCtlMainWs0Freq */ 25U,
579 /* flashCtlMainWs1Freq */ 50U,
580 /* flashCtlMainWs2Freq */ 75U,
581 /* flashCtlMainWs3Freq */ 100U,
582 /* flashCtlMainWs4Freq */ 125U,
583
584 /* tcpwmCC1Present */ 0x07U,
585 /* tcpwmAMCPresent */ 0x02U,
586 /* tcpwmSMCPrecent */ 0x02U,
587
588 /* Peripheral register offsets */
589
590 /* DW registers */
591 /* dwChOffset */ (uint16_t)offsetof(DW_V2_Type, CH_STRUCT),
592 /* dwChSize */ (uint16_t)sizeof(DW_CH_STRUCT_V2_Type),
593 /* dwChCtlPrioPos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PRIO_Pos,
594 /* dwChCtlPreemptablePos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PREEMPTABLE_Pos,
595 /* dwStatusChIdxPos */ (uint8_t)DW_V2_STATUS_CH_IDX_Pos,
596 /* dwStatusChIdxMsk */ DW_V2_STATUS_CH_IDX_Msk,
597
598 /* PERI registers */
599 /* periTrCmdOffset */ (uint16_t)offsetof(PERI_V2_Type, TR_CMD),
600 /* periTrCmdGrSelMsk */ (uint16_t)PERI_V2_TR_CMD_GROUP_SEL_Msk,
601 /* periTrGrOffset */ (uint16_t)offsetof(PERI_V2_Type, TR_GR),
602 /* periTrGrSize */ (uint16_t)sizeof(PERI_TR_GR_V2_Type),
603
604 /* periDivCmdDivSelMsk */ (uint8_t)PERI_V2_DIV_CMD_DIV_SEL_Msk,
605 /* periDivCmdTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_TYPE_SEL_Pos,
606 /* periDivCmdPaDivSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_DIV_SEL_Pos,
607 /* periDivCmdPaTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_TYPE_SEL_Pos,
608
609 /* periDiv8CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_8_CTL),
610 /* periDiv16CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_16_CTL),
611 /* periDiv16_5CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_16_5_CTL),
612 /* periDiv24_5CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_24_5_CTL),
613
614 /* GPIO registers */
615 /* gpioPrtIntrCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, INTR_CFG),
616 /* gpioPrtCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG),
617 /* gpioPrtCfgInOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_IN),
618 /* gpioPrtCfgOutOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_OUT),
619 /* gpioPrtCfgSioOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_SIO),
620
621 /* CPUSS registers */
622 /* cpussCm0ClockCtlOffset */ offsetof(CPUSS_V2_Type, CM0_CLOCK_CTL),
623 /* cpussCm4ClockCtlOffset */ offsetof(CPUSS_V2_Type, CM4_CLOCK_CTL),
624 /* cpussCm4StatusOffset */ offsetof(CPUSS_V2_Type, CM4_STATUS),
625 /* cpussCm0StatusOffset */ offsetof(CPUSS_V2_Type, CM0_STATUS),
626 /* cpussCm4PwrCtlOffset */ offsetof(CPUSS_V2_Type, CM4_PWR_CTL),
627 /* cpussTrimRamCtlOffset */ offsetof(CPUSS_V2_Type, TRIM_RAM_CTL),
628 /* cpussTrimRomCtlOffset */ offsetof(CPUSS_V2_Type, TRIM_ROM_CTL),
629 /* cpussSysTickCtlOffset */ offsetof(CPUSS_V2_Type, SYSTICK_CTL),
630 /* cpussCm0NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V2_Type, CM0_NMI_CTL),
631 /* cpussCm4NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V2_Type, CM4_NMI_CTL),
632 /* cpussRomCtl */ (uint16_t)offsetof(CPUSS_V2_Type, ROM_CTL),
633 /* cpussRam0Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM0_CTL0),
634 /* cpussRam1Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM1_CTL0),
635 /* cpussRam2Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM2_CTL0),
636 /* cpussRam0PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM0_PWR_MACRO_CTL),
637 /* cpussRam1PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM1_PWR_CTL),
638 /* cpussRam2PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM2_PWR_CTL),
639
640 /* IPC registers */
641 /* ipcStructSize */ (uint16_t)sizeof(IPC_STRUCT_V2_Type),
642 /* ipcLockStatusOffset */ offsetof(IPC_STRUCT_V2_Type, LOCK_STATUS),
643 };
644
645 const cy_stc_device_t cy_deviceIpBlockCfgTVIIBE2M =
646 {
647 /* Base HW addresses */
648 /* cpussBase */ 0x40200000UL,
649 /* flashcBase */ 0x40240000UL,
650 /* periBase */ 0x40000000UL,
651 /* udbBase */ 0UL,
652 /* protBase */ 0x40230000UL,
653 /* hsiomBase */ 0x40300000UL,
654 /* gpioBase */ 0x40310000UL,
655 /* passBase */ 0x40900000UL,
656 /* ipcBase */ 0x40220000UL,
657 /* cryptoBase */ 0x40100000UL,
658 /* sar0Base */ 0x40900000UL,
659
660 /* IP block versions [7:4] major, [3:0] minor */
661 /* cpussVersion */ 0x20U,
662 /* cryptoVersion */ 0x20U,
663 /* dwVersion */ 0x20U,
664 /* flashcVersion */ 0x20U,
665 /* gpioVersion */ 0x20U,
666 /* hsiomVersion */ 0x20U,
667 /* ipcVersion */ 0x20U,
668 /* periVersion */ 0x20U,
669 /* protVersion */ 0x20U,
670 /* srssVersion */ 0x20U,
671 /* passVersion */ 0x20U,
672
673 /* Parameters */
674 /* cpussIpcNr */ 8U,
675 /* cpussIpcIrqNr */ 8U,
676 /* cpussDw0ChNr */ 92U,
677 /* cpussDw1ChNr */ 44U,
678 /* cpussFlashPaSize */ 128U,
679 /* cpussIpc0Irq */ 0,
680 /* cpussFmIrq */ 46,
681 /* cpussNotConnectedIrq */ 1023,
682 /* srssNumClkpath */ 4U,
683 /* srssNumPll */ 1U,
684 /* srssNumHfroot */ 3U,
685 /* srssIsPiloPresent */ 0U,
686 /* periClockNr */ 124U,
687 /* smifDeviceNr */ 0U,
688 /* passSarChannels */ 64U,
689 /* epMonitorNr */ 0u,
690 /* udbPresent */ 0U,
691 /* sysPmSimoPresent */ 0U,
692 /* protBusMasterMask */ 0xFE7FUL,
693 /* cryptoMemSize */ 1024u,
694 /* flashRwwRequired */ 0U,
695 /* flashPipeRequired */ 0U,
696 /* flashWriteDelay */ 0U,
697 /* flashProgramDelay */ 0U,
698 /* flashEraseDelay */ 0U,
699 /* flashCtlMainWs0Freq */ 25U,
700 /* flashCtlMainWs1Freq */ 50U,
701 /* flashCtlMainWs2Freq */ 75U,
702 /* flashCtlMainWs3Freq */ 100U,
703 /* flashCtlMainWs4Freq */ 125U,
704
705 /* tcpwmCC1Present */ 0x07U,
706 /* tcpwmAMCPresent */ 0x02U,
707 /* tcpwmSMCPrecent */ 0x02U,
708
709 /* Peripheral register offsets */
710
711 /* DW registers */
712 /* dwChOffset */ (uint16_t)offsetof(DW_V2_Type, CH_STRUCT),
713 /* dwChSize */ (uint16_t)sizeof(DW_CH_STRUCT_V2_Type),
714 /* dwChCtlPrioPos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PRIO_Pos,
715 /* dwChCtlPreemptablePos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PREEMPTABLE_Pos,
716 /* dwStatusChIdxPos */ (uint8_t)DW_V2_STATUS_CH_IDX_Pos,
717 /* dwStatusChIdxMsk */ DW_V2_STATUS_CH_IDX_Msk,
718
719 /* PERI registers */
720 /* periTrCmdOffset */ (uint16_t)offsetof(PERI_V2_Type, TR_CMD),
721 /* periTrCmdGrSelMsk */ (uint16_t)PERI_V2_TR_CMD_GROUP_SEL_Msk,
722 /* periTrGrOffset */ (uint16_t)offsetof(PERI_V2_Type, TR_GR),
723 /* periTrGrSize */ (uint16_t)sizeof(PERI_TR_GR_V2_Type),
724
725 /* periDivCmdDivSelMsk */ (uint8_t)PERI_V2_DIV_CMD_DIV_SEL_Msk,
726 /* periDivCmdTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_TYPE_SEL_Pos,
727 /* periDivCmdPaDivSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_DIV_SEL_Pos,
728 /* periDivCmdPaTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_TYPE_SEL_Pos,
729
730 /* periDiv8CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_8_CTL),
731 /* periDiv16CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_16_CTL),
732 /* periDiv16_5CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_16_5_CTL),
733 /* periDiv24_5CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_24_5_CTL),
734
735 /* GPIO registers */
736 /* gpioPrtIntrCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, INTR_CFG),
737 /* gpioPrtCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG),
738 /* gpioPrtCfgInOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_IN),
739 /* gpioPrtCfgOutOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_OUT),
740 /* gpioPrtCfgSioOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_SIO),
741
742 /* CPUSS registers */
743 /* cpussCm0ClockCtlOffset */ offsetof(CPUSS_V2_Type, CM0_CLOCK_CTL),
744 /* cpussCm4ClockCtlOffset */ offsetof(CPUSS_V2_Type, CM4_CLOCK_CTL),
745 /* cpussCm4StatusOffset */ offsetof(CPUSS_V2_Type, CM4_STATUS),
746 /* cpussCm0StatusOffset */ offsetof(CPUSS_V2_Type, CM0_STATUS),
747 /* cpussCm4PwrCtlOffset */ offsetof(CPUSS_V2_Type, CM4_PWR_CTL),
748 /* cpussTrimRamCtlOffset */ offsetof(CPUSS_V2_Type, TRIM_RAM_CTL),
749 /* cpussTrimRomCtlOffset */ offsetof(CPUSS_V2_Type, TRIM_ROM_CTL),
750 /* cpussSysTickCtlOffset */ offsetof(CPUSS_V2_Type, SYSTICK_CTL),
751 /* cpussCm0NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V2_Type, CM0_NMI_CTL),
752 /* cpussCm4NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V2_Type, CM4_NMI_CTL),
753 /* cpussRomCtl */ (uint16_t)offsetof(CPUSS_V2_Type, ROM_CTL),
754 /* cpussRam0Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM0_CTL0),
755 /* cpussRam1Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM1_CTL0),
756 /* cpussRam2Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM2_CTL0),
757 /* cpussRam0PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM0_PWR_MACRO_CTL),
758 /* cpussRam1PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM1_PWR_CTL),
759 /* cpussRam2PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM2_PWR_CTL),
760
761 /* IPC registers */
762 /* ipcStructSize */ (uint16_t)sizeof(IPC_STRUCT_V2_Type),
763 /* ipcLockStatusOffset */ offsetof(IPC_STRUCT_V2_Type, LOCK_STATUS),
764 };
765
766 const cy_stc_device_t cy_deviceIpBlockCfgTVIIBE1M =
767 {
768 /* Base HW addresses */
769 /* cpussBase */ 0x40200000UL,
770 /* flashcBase */ 0x40240000UL,
771 /* periBase */ 0x40000000UL,
772 /* udbBase */ 0UL,
773 /* protBase */ 0x40230000UL,
774 /* hsiomBase */ 0x40300000UL,
775 /* gpioBase */ 0x40310000UL,
776 /* passBase */ 0x40900000UL,
777 /* ipcBase */ 0x40220000UL,
778 /* cryptoBase */ 0x40100000UL,
779 /* sar0Base */ 0x40900000UL,
780
781 /* IP block versions [7:4] major, [3:0] minor */
782 /* cpussVersion */ 0x20U,
783 /* cryptoVersion */ 0x20U,
784 /* dwVersion */ 0x20U,
785 /* flashcVersion */ 0x20U,
786 /* gpioVersion */ 0x20U,
787 /* hsiomVersion */ 0x20U,
788 /* ipcVersion */ 0x20U,
789 /* periVersion */ 0x20U,
790 /* protVersion */ 0x20U,
791 /* srssVersion */ 0x20U,
792 /* passVersion */ 0x20U,
793
794 /* Parameters */
795 /* cpussIpcNr */ 8U,
796 /* cpussIpcIrqNr */ 8U,
797 #if !defined (CY_DEVICE_SERIES_CYT2B6)
798 /* cpussDw0ChNr */ 89U,
799 /* cpussDw1ChNr */ 33U,
800 #else
801 /* Traveo II BE 512K devices have fewer datawire channels than the 1M devices. */
802 /* cpussDw0ChNr */ 54U,
803 /* cpussDw1ChNr */ 26U,
804 #endif
805 /* cpussFlashPaSize */ 128U,
806 /* cpussIpc0Irq */ 0,
807 /* cpussFmIrq */ 46,
808 /* cpussNotConnectedIrq */ 1023,
809 /* srssNumClkpath */ 4U,
810 /* srssNumPll */ 1U,
811 /* srssNumHfroot */ 3U,
812 /* srssIsPiloPresent */ 0U,
813 /* periClockNr */ 110U,
814 /* smifDeviceNr */ 0U,
815 /* passSarChannels */ 64U,
816 /* epMonitorNr */ 0u,
817 /* udbPresent */ 0U,
818 /* sysPmSimoPresent */ 0U,
819 /* protBusMasterMask */ 0xFE7FUL,
820 /* cryptoMemSize */ 1024u,
821 /* flashRwwRequired */ 0U,
822 /* flashPipeRequired */ 0U,
823 /* flashWriteDelay */ 0U,
824 /* flashProgramDelay */ 0U,
825 /* flashEraseDelay */ 0U,
826 /* flashCtlMainWs0Freq */ 25U,
827 /* flashCtlMainWs1Freq */ 50U,
828 /* flashCtlMainWs2Freq */ 75U,
829 /* flashCtlMainWs3Freq */ 100U,
830 /* flashCtlMainWs4Freq */ 125U,
831
832 /* tcpwmCC1Present */ 0x07U,
833 /* tcpwmAMCPresent */ 0x02U,
834 /* tcpwmSMCPrecent */ 0x02U,
835
836 /* Peripheral register offsets */
837
838 /* DW registers */
839 /* dwChOffset */ (uint16_t)offsetof(DW_V2_Type, CH_STRUCT),
840 /* dwChSize */ (uint16_t)sizeof(DW_CH_STRUCT_V2_Type),
841 /* dwChCtlPrioPos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PRIO_Pos,
842 /* dwChCtlPreemptablePos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PREEMPTABLE_Pos,
843 /* dwStatusChIdxPos */ (uint8_t)DW_V2_STATUS_CH_IDX_Pos,
844 /* dwStatusChIdxMsk */ DW_V2_STATUS_CH_IDX_Msk,
845
846 /* PERI registers */
847 /* periTrCmdOffset */ (uint16_t)offsetof(PERI_V2_Type, TR_CMD),
848 /* periTrCmdGrSelMsk */ (uint16_t)PERI_V2_TR_CMD_GROUP_SEL_Msk,
849 /* periTrGrOffset */ (uint16_t)offsetof(PERI_V2_Type, TR_GR),
850 /* periTrGrSize */ (uint16_t)sizeof(PERI_TR_GR_V2_Type),
851
852 /* periDivCmdDivSelMsk */ (uint8_t)PERI_V2_DIV_CMD_DIV_SEL_Msk,
853 /* periDivCmdTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_TYPE_SEL_Pos,
854 /* periDivCmdPaDivSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_DIV_SEL_Pos,
855 /* periDivCmdPaTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_TYPE_SEL_Pos,
856
857 /* periDiv8CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_8_CTL),
858 /* periDiv16CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_16_CTL),
859 /* periDiv16_5CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_16_5_CTL),
860 /* periDiv24_5CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_24_5_CTL),
861
862 /* GPIO registers */
863 /* gpioPrtIntrCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, INTR_CFG),
864 /* gpioPrtCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG),
865 /* gpioPrtCfgInOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_IN),
866 /* gpioPrtCfgOutOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_OUT),
867 /* gpioPrtCfgSioOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_SIO),
868
869 /* CPUSS registers */
870 /* cpussCm0ClockCtlOffset */ offsetof(CPUSS_V2_Type, CM0_CLOCK_CTL),
871 /* cpussCm4ClockCtlOffset */ offsetof(CPUSS_V2_Type, CM4_CLOCK_CTL),
872 /* cpussCm4StatusOffset */ offsetof(CPUSS_V2_Type, CM4_STATUS),
873 /* cpussCm0StatusOffset */ offsetof(CPUSS_V2_Type, CM0_STATUS),
874 /* cpussCm4PwrCtlOffset */ offsetof(CPUSS_V2_Type, CM4_PWR_CTL),
875 /* cpussTrimRamCtlOffset */ offsetof(CPUSS_V2_Type, TRIM_RAM_CTL),
876 /* cpussTrimRomCtlOffset */ offsetof(CPUSS_V2_Type, TRIM_ROM_CTL),
877 /* cpussSysTickCtlOffset */ offsetof(CPUSS_V2_Type, SYSTICK_CTL),
878 /* cpussCm0NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V2_Type, CM0_NMI_CTL),
879 /* cpussCm4NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V2_Type, CM4_NMI_CTL),
880 /* cpussRomCtl */ (uint16_t)offsetof(CPUSS_V2_Type, ROM_CTL),
881 /* cpussRam0Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM0_CTL0),
882 /* cpussRam1Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM1_CTL0),
883 /* cpussRam2Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM2_CTL0),
884 /* cpussRam0PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM0_PWR_MACRO_CTL),
885 /* cpussRam1PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM1_PWR_CTL),
886 /* cpussRam2PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM2_PWR_CTL),
887
888 /* IPC registers */
889 /* ipcStructSize */ (uint16_t)sizeof(IPC_STRUCT_V2_Type),
890 /* ipcLockStatusOffset */ offsetof(IPC_STRUCT_V2_Type, LOCK_STATUS),
891 };
892
893 const cy_stc_device_t cy_deviceIpBlockCfgFX3G2 =
894 {
895 /* Base HW addresses */
896 /* cpussBase */ 0x40200000UL,
897 /* flashcBase */ 0x40240000UL,
898 /* periBase */ 0x40000000UL,
899 /* udbBase */ 0UL,
900 /* protBase */ 0x40230000UL,
901 /* hsiomBase */ 0x40300000UL,
902 /* gpioBase */ 0x40310000UL,
903 /* passBase */ 0UL,
904 /* ipcBase */ 0x40220000UL,
905 /* cryptoBase */ 0x40100000UL,
906 /* sar0Base */ 0UL,
907
908 /* IP block versions [7:4] major, [3:0] minor */
909 /* cpussVersion */ 0x20U,
910 /* cryptoVersion */ 0x20U,
911 /* dwVersion */ 0x20U,
912 /* flashcVersion */ 0x20U,
913 /* gpioVersion */ 0x50U,
914 /* hsiomVersion */ 0x50U,
915 /* ipcVersion */ 0x20U,
916 /* periVersion */ 0x20U,
917 /* protVersion */ 0x20U,
918 /* srssVersion */ 0x13U,
919 /* passVersion */ 0x00U,
920
921 /* Parameters */
922 /* cpussIpcNr */ 16U,
923 /* cpussIpcIrqNr */ 16U,
924 /* cpussDw0ChNr */ 24U,
925 /* cpussDw1ChNr */ 24U,
926 /* cpussFlashPaSize */ 128U,
927 /* cpussIpc0Irq */ 19,
928 /* cpussFmIrq */ 109,
929 /* cpussNotConnectedIrq */ 1023,
930 /* srssNumClkpath */ 5U,
931 /* srssNumPll */ 2U,
932 /* srssNumHfroot */ 6U,
933 /* srssIsPiloPresent */ 0U,
934 /* periClockNr */ 19U,
935 /* smifDeviceNr */ 3U,
936 /* passSarChannels */ 0U,
937 /* epMonitorNr */ 0U,
938 /* udbPresent */ 0U,
939 /* sysPmSimoPresent */ 0U,
940 /* protBusMasterMask */ 0xC01FUL,
941 /* cryptoMemSize */ 1024u,
942 /* flashRwwRequired */ 0U,
943 /* flashPipeRequired */ 0U,
944 /* flashWriteDelay */ 0U,
945 /* flashProgramDelay */ 0U,
946 /* flashEraseDelay */ 0U,
947 /* flashCtlMainWs0Freq */ 25U,
948 /* flashCtlMainWs1Freq */ 50U,
949 /* flashCtlMainWs2Freq */ 75U,
950 /* flashCtlMainWs3Freq */ 100U,
951 /* flashCtlMainWs4Freq */ 125U,
952 /* tcpwmCC1Present */ 0U,
953 /* tcpwmAMCPresent */ 0U,
954 /* tcpwmSMCPrecent */ 0U,
955
956 /* Peripheral register offsets */
957
958 /* DW registers */
959 /* dwChOffset */ (uint16_t)offsetof(DW_Type, CH_STRUCT),
960 /* dwChSize */ (uint16_t)sizeof(DW_CH_STRUCT_Type),
961 /* dwChCtlPrioPos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PRIO_Pos,
962 /* dwChCtlPreemptablePos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PREEMPTABLE_Pos,
963 /* dwStatusChIdxPos */ (uint8_t)DW_V2_STATUS_CH_IDX_Pos,
964 /* dwStatusChIdxMsk */ DW_V2_STATUS_CH_IDX_Msk,
965
966 /* PERI registers */
967 /* periTrCmdOffset */ (uint16_t)offsetof(PERI_Type, TR_CMD),
968 /* periTrCmdGrSelMsk */ (uint16_t)PERI_V2_TR_CMD_GROUP_SEL_Msk,
969 /* periTrGrOffset */ (uint16_t)offsetof(PERI_Type, TR_GR),
970 /* periTrGrSize */ (uint16_t)sizeof(PERI_TR_GR_Type),
971
972 /* periDivCmdDivSelMsk */ (uint8_t)PERI_V2_DIV_CMD_DIV_SEL_Msk,
973 /* periDivCmdTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_TYPE_SEL_Pos,
974 /* periDivCmdPaDivSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_DIV_SEL_Pos,
975 /* periDivCmdPaTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_TYPE_SEL_Pos,
976
977 /* periDiv8CtlOffset */ (uint16_t)offsetof(PERI_Type, DIV_8_CTL),
978 /* periDiv16CtlOffset */ (uint16_t)offsetof(PERI_Type, DIV_16_CTL),
979 /* periDiv16_5CtlOffset */ (uint16_t)offsetof(PERI_Type, DIV_16_5_CTL),
980 /* periDiv24_5CtlOffset */ (uint16_t)offsetof(PERI_Type, DIV_24_5_CTL),
981
982 /* GPIO registers */
983 /* gpioPrtIntrCfgOffset */ (uint8_t)offsetof(GPIO_PRT_Type, INTR_CFG),
984 /* gpioPrtCfgOffset */ (uint8_t)offsetof(GPIO_PRT_Type, CFG),
985 /* gpioPrtCfgInOffset */ (uint8_t)offsetof(GPIO_PRT_Type, CFG_IN),
986 /* gpioPrtCfgOutOffset */ (uint8_t)offsetof(GPIO_PRT_Type, CFG_OUT),
987 /* gpioPrtCfgSioOffset */ (uint8_t)offsetof(GPIO_PRT_Type, CFG_SIO),
988
989 /* CPUSS registers */
990 /* cpussCm0ClockCtlOffset */ offsetof(CPUSS_Type, CM0_CLOCK_CTL),
991 /* cpussCm4ClockCtlOffset */ offsetof(CPUSS_Type, CM4_CLOCK_CTL),
992 /* cpussCm4StatusOffset */ offsetof(CPUSS_Type, CM4_STATUS),
993 /* cpussCm0StatusOffset */ offsetof(CPUSS_Type, CM0_STATUS),
994 /* cpussCm4PwrCtlOffset */ offsetof(CPUSS_Type, CM4_PWR_CTL),
995 /* cpussTrimRamCtlOffset */ offsetof(CPUSS_Type, TRIM_RAM_CTL),
996 /* cpussTrimRomCtlOffset */ offsetof(CPUSS_Type, TRIM_ROM_CTL),
997 /* cpussSysTickCtlOffset */ offsetof(CPUSS_Type, SYSTICK_CTL),
998 /* cpussCm0NmiCtlOffset */ (uint16_t)offsetof(CPUSS_Type, CM0_NMI_CTL),
999 /* cpussCm4NmiCtlOffset */ (uint16_t)offsetof(CPUSS_Type, CM4_NMI_CTL),
1000 /* cpussRomCtl */ (uint16_t)offsetof(CPUSS_Type, ROM_CTL),
1001 /* cpussRam0Ctl0 */ (uint16_t)offsetof(CPUSS_Type, RAM0_CTL0),
1002 /* cpussRam1Ctl0 */ (uint16_t)offsetof(CPUSS_Type, RAM1_CTL0),
1003 /* cpussRam2Ctl0 */ (uint16_t)offsetof(CPUSS_Type, RAM2_CTL0),
1004 /* cpussRam0PwrCtl */ (uint16_t)offsetof(CPUSS_Type, RAM0_PWR_MACRO_CTL),
1005 /* cpussRam1PwrCtl */ (uint16_t)offsetof(CPUSS_Type, RAM1_PWR_CTL),
1006 /* cpussRam2PwrCtl */ (uint16_t)offsetof(CPUSS_Type, RAM2_PWR_CTL),
1007
1008 /* IPC registers */
1009 /* ipcStructSize */ (uint16_t)sizeof(IPC_STRUCT_Type),
1010 /* ipcLockStatusOffset */ offsetof(IPC_STRUCT_Type, LOCK_STATUS),
1011 };
1012
1013 /******************************************************************************
1014 * Function Name: Cy_PDL_Init
1015 ****************************************************************************//**
1016 *
1017 * \brief Initializes the platform and peripheral block configuration for the
1018 * given target device.
1019 *
1020 * \param device
1021 * Pointer to the platform and peripheral block configuration
1022 *
1023 * \note
1024 * This function must be called prior calling any function in PDL.
1025 *
1026 *******************************************************************************/
Cy_PDL_Init(const cy_stc_device_t * device)1027 void Cy_PDL_Init(const cy_stc_device_t * device)
1028 {
1029 cy_device = device;
1030 }
1031
1032
1033 /* [] END OF FILE */
1034