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 const cy_stc_device_t cy_deviceIpBlockCfgPSoC6_01 =
39 {
40 /* Base HW addresses */
41 /* cpussBase */ 0x40210000UL,
42 /* flashcBase */ 0x40250000UL,
43 /* periBase */ 0x40010000UL,
44 /* udbBase */ 0x40340000UL,
45 /* protBase */ 0x40240000UL,
46 /* hsiomBase */ 0x40310000UL,
47 /* gpioBase */ 0x40320000UL,
48 /* passBase */ 0x411F0000UL,
49 /* ipcBase */ 0x40230000UL,
50 /* cryptoBase */ 0x40110000UL,
51 /* sar0Base */ 0x411D0000UL,
52
53 /* IP block versions [7:4] major, [3:0] minor */
54 /* cpussVersion */ 0x10U,
55 /* cryptoVersion */ 0x10U,
56 /* dwVersion */ 0x10U,
57 /* ipcVersion */ 0x10U,
58 /* periVersion */ 0x10U,
59 /* srssVersion */ 0x10U,
60 /* passVersion */ 0x10U,
61
62 /* Parameters */
63 /* cpussIpcNr */ 16U,
64 /* cpussIpcIrqNr */ 16U,
65 /* cpussDw0ChNr */ 16U,
66 /* cpussDw1ChNr */ 16U,
67 /* cpussFlashPaSize */ 128U,
68 /* cpussIpc0Irq */ 25,
69 /* cpussFmIrq */ 85,
70 /* cpussNotConnectedIrq */ 240,
71 /* srssNumClkpath */ 5U,
72 /* srssNumPll */ 1U,
73 /* srssNumHfroot */ 5U,
74 /* srssIsPiloPresent */ 1U,
75 /* periClockNr */ 59U,
76 /* smifDeviceNr */ 4U,
77 /* passSarChannels */ 16U,
78 /* epMonitorNr */ 28u,
79 /* udbPresent */ 1U,
80 /* sysPmSimoPresent */ 1U,
81 /* protBusMasterMask */ 0xC00FUL,
82 /* cryptoMemSize */ 1024u,
83 /* flashRwwRequired */ 1U,
84 /* flashPipeRequired */ 1U,
85 /* flashWriteDelay */ 1U,
86 /* flashProgramDelay */ 1U,
87 /* flashEraseDelay */ 1U,
88 /* flashCtlMainWs0Freq */ 29U,
89 /* flashCtlMainWs1Freq */ 58U,
90 /* flashCtlMainWs2Freq */ 87U,
91 /* flashCtlMainWs3Freq */ 120U,
92 /* flashCtlMainWs4Freq */ 150U,
93 /* tcpwmCC1Present */ 0U,
94 /* tcpwmAMCPresent */ 0U,
95 /* tcpwmSMCPrecent */ 0U,
96
97 /* Peripheral register offsets */
98
99 /* DW registers */
100 /* dwChOffset */ (uint16_t)offsetof(DW_V1_Type, CH_STRUCT),
101 /* dwChSize */ (uint16_t)sizeof(DW_CH_STRUCT_V1_Type),
102 /* dwChCtlPrioPos */ (uint8_t)DW_CH_STRUCT_CH_CTL_PRIO_Pos,
103 /* dwChCtlPreemptablePos */ (uint8_t)DW_CH_STRUCT_CH_CTL_PREEMPTABLE_Pos,
104 /* dwStatusChIdxPos */ (uint8_t)DW_STATUS_CH_IDX_Pos,
105 /* dwStatusChIdxMsk */ DW_STATUS_CH_IDX_Msk,
106
107 /* PERI registers */
108 /* periTrCmdOffset */ (uint16_t)offsetof(PERI_V1_Type, TR_CMD),
109 /* periTrCmdGrSelMsk */ (uint16_t)PERI_TR_CMD_GROUP_SEL_Msk,
110 /* periTrGrOffset */ (uint16_t)offsetof(PERI_V1_Type, TR_GR),
111 /* periTrGrSize */ (uint16_t)sizeof(PERI_TR_GR_V1_Type),
112
113 /* periDivCmdDivSelMsk */ (uint8_t)PERI_DIV_CMD_DIV_SEL_Msk,
114 /* periDivCmdTypeSelPos */ (uint8_t)PERI_DIV_CMD_TYPE_SEL_Pos,
115 /* periDivCmdPaDivSelPos */ (uint8_t)PERI_DIV_CMD_PA_DIV_SEL_Pos,
116 /* periDivCmdPaTypeSelPos */ (uint8_t)PERI_DIV_CMD_PA_TYPE_SEL_Pos,
117
118 /* periDiv8CtlOffset */ (uint16_t)offsetof(PERI_V1_Type, DIV_8_CTL),
119 /* periDiv16CtlOffset */ (uint16_t)offsetof(PERI_V1_Type, DIV_16_CTL),
120 /* periDiv16_5CtlOffset */ (uint16_t)offsetof(PERI_V1_Type, DIV_16_5_CTL),
121 /* periDiv24_5CtlOffset */ (uint16_t)offsetof(PERI_V1_Type, DIV_24_5_CTL),
122
123 /* GPIO registers */
124 /* gpioPrtIntrCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V1_Type, INTR_CFG),
125 /* gpioPrtCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V1_Type, CFG),
126 /* gpioPrtCfgInOffset */ (uint8_t)offsetof(GPIO_PRT_V1_Type, CFG_IN),
127 /* gpioPrtCfgOutOffset */ (uint8_t)offsetof(GPIO_PRT_V1_Type, CFG_OUT),
128 /* gpioPrtCfgSioOffset */ (uint8_t)offsetof(GPIO_PRT_V1_Type, CFG_SIO),
129
130 /* CPUSS registers */
131 /* cpussCm0ClockCtlOffset */ offsetof(CPUSS_V1_Type, CM0_CLOCK_CTL),
132 /* cpussCm4ClockCtlOffset */ offsetof(CPUSS_V1_Type, CM4_CLOCK_CTL),
133 /* cpussCm4StatusOffset */ offsetof(CPUSS_V1_Type, CM4_STATUS),
134 /* cpussCm0StatusOffset */ offsetof(CPUSS_V1_Type, CM0_STATUS),
135 /* cpussCm4PwrCtlOffset */ offsetof(CPUSS_V1_Type, CM4_PWR_CTL),
136 /* cpussTrimRamCtlOffset */ offsetof(CPUSS_V1_Type, TRIM_RAM_CTL),
137 /* cpussTrimRomCtlOffset */ offsetof(CPUSS_V1_Type, TRIM_ROM_CTL),
138 /* cpussSysTickCtlOffset */ offsetof(CPUSS_V1_Type, SYSTICK_CTL),
139
140 /* cpussCm0NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V1_Type, CM0_NMI_CTL),
141 /* cpussCm4NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V1_Type, CM4_NMI_CTL),
142 /* cpussRomCtl */ (uint16_t)offsetof(CPUSS_V1_Type, ROM_CTL),
143 /* cpussRam0Ctl0 */ (uint16_t)offsetof(CPUSS_V1_Type, RAM0_CTL0),
144 /* cpussRam1Ctl0 */ (uint16_t)offsetof(CPUSS_V1_Type, RAM1_CTL0),
145 /* cpussRam2Ctl0 */ (uint16_t)offsetof(CPUSS_V1_Type, RAM2_CTL0),
146 /* cpussRam0PwrCtl */ (uint16_t)offsetof(CPUSS_V1_Type, RAM0_PWR_MACRO_CTL),
147 /* cpussRam1PwrCtl */ (uint16_t)offsetof(CPUSS_V1_Type, RAM1_PWR_CTL),
148 /* cpussRam2PwrCtl */ (uint16_t)offsetof(CPUSS_V1_Type, RAM2_PWR_CTL),
149
150 /* IPC registers */
151 /* ipcStructSize */ (uint16_t)sizeof(IPC_STRUCT_V1_Type),
152 /* ipcLockStatusOffset */ offsetof(IPC_STRUCT_V1_Type, LOCK_STATUS),
153 };
154
155 const cy_stc_device_t cy_deviceIpBlockCfgPSoC6_02 =
156 {
157 /* Base HW addresses */
158 /* cpussBase */ 0x40200000UL,
159 /* flashcBase */ 0x40240000UL,
160 /* periBase */ 0x40000000UL,
161 /* udbBase */ 0UL,
162 /* protBase */ 0x40230000UL,
163 /* hsiomBase */ 0x40300000UL,
164 /* gpioBase */ 0x40310000UL,
165 /* passBase */ 0x409F0000UL,
166 /* ipcBase */ 0x40220000UL,
167 /* cryptoBase */ 0x40100000UL,
168 /* sar0Base */ 0x409D0000UL,
169
170 /* IP block versions [7:4] major, [3:0] minor */
171 /* cpussVersion */ 0x20U,
172 /* cryptoVersion */ 0x20U,
173 /* dwVersion */ 0x20U,
174 /* ipcVersion */ 0x20U,
175 /* periVersion */ 0x20U,
176 /* srssVersion */ 0x10U,
177 /* passVersion */ 0x10U,
178
179 /* Parameters */
180 /* cpussIpcNr */ 16U,
181 /* cpussIpcIrqNr */ 16U,
182 /* cpussDw0ChNr */ 29U,
183 /* cpussDw1ChNr */ 29U,
184 /* cpussFlashPaSize */ 128U,
185 /* cpussIpc0Irq */ 23,
186 /* cpussFmIrq */ 117,
187 /* cpussNotConnectedIrq */ 1023,
188 /* srssNumClkpath */ 6U,
189 /* srssNumPll */ 2U,
190 /* srssNumHfroot */ 6U,
191 /* srssIsPiloPresent */ 0U,
192 /* periClockNr */ 54U,
193 /* smifDeviceNr */ 4U,
194 /* passSarChannels */ 16U,
195 /* epMonitorNr */ 32u,
196 /* udbPresent */ 0U,
197 /* sysPmSimoPresent */ 0U,
198 /* protBusMasterMask */ 0xC07FUL,
199 /* cryptoMemSize */ 1024u,
200 /* flashRwwRequired */ 0U,
201 /* flashPipeRequired */ 0U,
202 /* flashWriteDelay */ 0U,
203 /* flashProgramDelay */ 0U,
204 /* flashEraseDelay */ 0U,
205 /* flashCtlMainWs0Freq */ 25U,
206 /* flashCtlMainWs1Freq */ 50U,
207 /* flashCtlMainWs2Freq */ 75U,
208 /* flashCtlMainWs3Freq */ 100U,
209 /* flashCtlMainWs4Freq */ 125U,
210 /* tcpwmCC1Present */ 0U,
211 /* tcpwmAMCPresent */ 0U,
212 /* tcpwmSMCPrecent */ 0U,
213
214 /* Peripheral register offsets */
215
216 /* DW registers */
217 /* dwChOffset */ (uint16_t)offsetof(DW_V2_Type, CH_STRUCT),
218 /* dwChSize */ (uint16_t)sizeof(DW_CH_STRUCT_V2_Type),
219 /* dwChCtlPrioPos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PRIO_Pos,
220 /* dwChCtlPreemptablePos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PREEMPTABLE_Pos,
221 /* dwStatusChIdxPos */ (uint8_t)DW_V2_STATUS_CH_IDX_Pos,
222 /* dwStatusChIdxMsk */ DW_V2_STATUS_CH_IDX_Msk,
223
224 /* PERI registers */
225 /* periTrCmdOffset */ (uint16_t)offsetof(PERI_V2_Type, TR_CMD),
226 /* periTrCmdGrSelMsk */ (uint16_t)PERI_V2_TR_CMD_GROUP_SEL_Msk,
227 /* periTrGrOffset */ (uint16_t)offsetof(PERI_V2_Type, TR_GR),
228 /* periTrGrSize */ (uint16_t)sizeof(PERI_TR_GR_V2_Type),
229
230 /* periDivCmdDivSelMsk */ (uint8_t)PERI_V2_DIV_CMD_DIV_SEL_Msk,
231 /* periDivCmdTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_TYPE_SEL_Pos,
232 /* periDivCmdPaDivSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_DIV_SEL_Pos,
233 /* periDivCmdPaTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_TYPE_SEL_Pos,
234
235 /* periDiv8CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_8_CTL),
236 /* periDiv16CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_16_CTL),
237 /* periDiv16_5CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_16_5_CTL),
238 /* periDiv24_5CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_24_5_CTL),
239
240 /* GPIO registers */
241 /* gpioPrtIntrCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, INTR_CFG),
242 /* gpioPrtCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG),
243 /* gpioPrtCfgInOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_IN),
244 /* gpioPrtCfgOutOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_OUT),
245 /* gpioPrtCfgSioOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_SIO),
246
247 /* CPUSS registers */
248 /* cpussCm0ClockCtlOffset */ offsetof(CPUSS_V2_Type, CM0_CLOCK_CTL),
249 /* cpussCm4ClockCtlOffset */ offsetof(CPUSS_V2_Type, CM4_CLOCK_CTL),
250 /* cpussCm4StatusOffset */ offsetof(CPUSS_V2_Type, CM4_STATUS),
251 /* cpussCm0StatusOffset */ offsetof(CPUSS_V2_Type, CM0_STATUS),
252 /* cpussCm4PwrCtlOffset */ offsetof(CPUSS_V2_Type, CM4_PWR_CTL),
253 /* cpussTrimRamCtlOffset */ offsetof(CPUSS_V2_Type, TRIM_RAM_CTL),
254 /* cpussTrimRomCtlOffset */ offsetof(CPUSS_V2_Type, TRIM_ROM_CTL),
255 /* cpussSysTickCtlOffset */ offsetof(CPUSS_V2_Type, SYSTICK_CTL),
256 /* cpussCm0NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V2_Type, CM0_NMI_CTL),
257 /* cpussCm4NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V2_Type, CM4_NMI_CTL),
258 /* cpussRomCtl */ (uint16_t)offsetof(CPUSS_V2_Type, ROM_CTL),
259 /* cpussRam0Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM0_CTL0),
260 /* cpussRam1Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM1_CTL0),
261 /* cpussRam2Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM2_CTL0),
262 /* cpussRam0PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM0_PWR_MACRO_CTL),
263 /* cpussRam1PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM1_PWR_CTL),
264 /* cpussRam2PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM2_PWR_CTL),
265
266 /* IPC registers */
267 /* ipcStructSize */ (uint16_t)sizeof(IPC_STRUCT_V2_Type),
268 /* ipcLockStatusOffset */ offsetof(IPC_STRUCT_V2_Type, LOCK_STATUS),
269 };
270
271 const cy_stc_device_t cy_deviceIpBlockCfgPSoC6_03 =
272 {
273 /* Base HW addresses */
274 /* cpussBase */ 0x40200000UL,
275 /* flashcBase */ 0x40240000UL,
276 /* periBase */ 0x40000000UL,
277 /* udbBase */ 0UL,
278 /* protBase */ 0x40230000UL,
279 /* hsiomBase */ 0x40300000UL,
280 /* gpioBase */ 0x40310000UL,
281 /* passBase */ 0x409F0000UL,
282 /* ipcBase */ 0x40220000UL,
283 /* cryptoBase */ 0x40100000UL,
284 /* sar0Base */ 0x409D0000UL,
285
286 /* IP block versions [7:4] major, [3:0] minor */
287 /* cpussVersion */ 0x20U,
288 /* cryptoVersion */ 0x20U,
289 /* dwVersion */ 0x20U,
290 /* ipcVersion */ 0x20U,
291 /* periVersion */ 0x20U,
292 /* srssVersion */ 0x13U,
293 /* passVersion */ 0x10U,
294
295 /* Parameters */
296 /* cpussIpcNr */ 16U,
297 /* cpussIpcIrqNr */ 16U,
298 /* cpussDw0ChNr */ 29U,
299 /* cpussDw1ChNr */ 32U,
300 /* cpussFlashPaSize */ 128U,
301 /* cpussIpc0Irq */ 23,
302 /* cpussFmIrq */ 117,
303 /* cpussNotConnectedIrq */ 1023,
304 /* srssNumClkpath */ 5U,
305 /* srssNumPll */ 1U,
306 /* srssNumHfroot */ 5U,
307 /* srssIsPiloPresent */ 0U,
308 /* periClockNr */ 28U,
309 /* smifDeviceNr */ 3U,
310 /* passSarChannels */ 16U,
311 /* epMonitorNr */ 0u,
312 /* udbPresent */ 0U,
313 /* sysPmSimoPresent */ 0U,
314 /* protBusMasterMask */ 0xC03FUL,
315 /* cryptoMemSize */ 1024u,
316 /* flashRwwRequired */ 0U,
317 /* flashPipeRequired */ 0U,
318 /* flashWriteDelay */ 0U,
319 /* flashProgramDelay */ 0U,
320 /* flashEraseDelay */ 0U,
321 /* flashCtlMainWs0Freq */ 25U,
322 /* flashCtlMainWs1Freq */ 50U,
323 /* flashCtlMainWs2Freq */ 75U,
324 /* flashCtlMainWs3Freq */ 100U,
325 /* flashCtlMainWs4Freq */ 125U,
326 /* tcpwmCC1Present */ 0U,
327 /* tcpwmAMCPresent */ 0U,
328 /* tcpwmSMCPrecent */ 0U,
329
330 /* Peripheral register offsets */
331
332 /* DW registers */
333 /* dwChOffset */ (uint16_t)offsetof(DW_V2_Type, CH_STRUCT),
334 /* dwChSize */ (uint16_t)sizeof(DW_CH_STRUCT_V2_Type),
335 /* dwChCtlPrioPos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PRIO_Pos,
336 /* dwChCtlPreemptablePos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PREEMPTABLE_Pos,
337 /* dwStatusChIdxPos */ (uint8_t)DW_V2_STATUS_CH_IDX_Pos,
338 /* dwStatusChIdxMsk */ DW_V2_STATUS_CH_IDX_Msk,
339
340 /* PERI registers */
341 /* periTrCmdOffset */ (uint16_t)offsetof(PERI_V2_Type, TR_CMD),
342 /* periTrCmdGrSelMsk */ (uint16_t)PERI_V2_TR_CMD_GROUP_SEL_Msk,
343 /* periTrGrOffset */ (uint16_t)offsetof(PERI_V2_Type, TR_GR),
344 /* periTrGrSize */ (uint16_t)sizeof(PERI_TR_GR_V2_Type),
345
346 /* periDivCmdDivSelMsk */ (uint8_t)PERI_V2_DIV_CMD_DIV_SEL_Msk,
347 /* periDivCmdTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_TYPE_SEL_Pos,
348 /* periDivCmdPaDivSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_DIV_SEL_Pos,
349 /* periDivCmdPaTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_TYPE_SEL_Pos,
350
351 /* periDiv8CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_8_CTL),
352 /* periDiv16CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_16_CTL),
353 /* periDiv16_5CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_16_5_CTL),
354 /* periDiv24_5CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_24_5_CTL),
355
356 /* GPIO registers */
357 /* gpioPrtIntrCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, INTR_CFG),
358 /* gpioPrtCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG),
359 /* gpioPrtCfgInOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_IN),
360 /* gpioPrtCfgOutOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_OUT),
361 /* gpioPrtCfgSioOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_SIO),
362
363 /* CPUSS registers */
364 /* cpussCm0ClockCtlOffset */ offsetof(CPUSS_V2_Type, CM0_CLOCK_CTL),
365 /* cpussCm4ClockCtlOffset */ offsetof(CPUSS_V2_Type, CM4_CLOCK_CTL),
366 /* cpussCm4StatusOffset */ offsetof(CPUSS_V2_Type, CM4_STATUS),
367 /* cpussCm0StatusOffset */ offsetof(CPUSS_V2_Type, CM0_STATUS),
368 /* cpussCm4PwrCtlOffset */ offsetof(CPUSS_V2_Type, CM4_PWR_CTL),
369 /* cpussTrimRamCtlOffset */ offsetof(CPUSS_V2_Type, TRIM_RAM_CTL),
370 /* cpussTrimRomCtlOffset */ offsetof(CPUSS_V2_Type, TRIM_ROM_CTL),
371 /* cpussSysTickCtlOffset */ offsetof(CPUSS_V2_Type, SYSTICK_CTL),
372 /* cpussCm0NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V2_Type, CM0_NMI_CTL),
373 /* cpussCm4NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V2_Type, CM4_NMI_CTL),
374 /* cpussRomCtl */ (uint16_t)offsetof(CPUSS_V2_Type, ROM_CTL),
375 /* cpussRam0Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM0_CTL0),
376 /* cpussRam1Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM1_CTL0),
377 /* cpussRam2Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM2_CTL0),
378 /* cpussRam0PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM0_PWR_MACRO_CTL),
379 /* cpussRam1PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM1_PWR_CTL),
380 /* cpussRam2PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM2_PWR_CTL),
381
382 /* IPC registers */
383 /* ipcStructSize */ (uint16_t)sizeof(IPC_STRUCT_V2_Type),
384 /* ipcLockStatusOffset */ offsetof(IPC_STRUCT_V2_Type, LOCK_STATUS),
385 };
386
387 const cy_stc_device_t cy_deviceIpBlockCfgPSoC6_04 =
388 {
389 /* Base HW addresses */
390 /* cpussBase */ 0x40200000UL,
391 /* flashcBase */ 0x40240000UL,
392 /* periBase */ 0x40000000UL,
393 /* udbBase */ 0UL,
394 /* protBase */ 0x40230000UL,
395 /* hsiomBase */ 0x40300000UL,
396 /* gpioBase */ 0x40310000UL,
397 /* passBase */ 0x409F0000UL,
398 /* ipcBase */ 0x40220000UL,
399 /* cryptoBase */ 0x40100000UL,
400 /* sar0Base */ 0x409B0000UL,
401
402 /* IP block versions [7:4] major, [3:0] minor */
403 /* cpussVersion */ 0x20U,
404 /* cryptoVersion */ 0x20U,
405 /* dwVersion */ 0x20U,
406 /* ipcVersion */ 0x20U,
407 /* periVersion */ 0x20U,
408 /* srssVersion */ 0x13U,
409 /* passVersion */ 0x20U,
410
411 /* Parameters */
412 /* cpussIpcNr */ 16U,
413 /* cpussIpcIrqNr */ 16U,
414 /* cpussDw0ChNr */ 30U,
415 /* cpussDw1ChNr */ 32U,
416 /* cpussFlashPaSize */ 128U,
417 /* cpussIpc0Irq */ 23,
418 /* cpussFmIrq */ 117,
419 /* cpussNotConnectedIrq */ 1023,
420 /* srssNumClkpath */ 5U,
421 /* srssNumPll */ 1U,
422 /* srssNumHfroot */ 4U,
423 /* srssIsPiloPresent */ 0U,
424 /* periClockNr */ 28U,
425 /* smifDeviceNr */ 3U,
426 /* passSarChannels */ 16U,
427 /* epMonitorNr */ 0u,
428 /* udbPresent */ 0U,
429 /* sysPmSimoPresent */ 0U,
430 /* protBusMasterMask */ 0xC01FUL,
431 /* cryptoMemSize */ 1024u,
432 /* flashRwwRequired */ 0U,
433 /* flashPipeRequired */ 0U,
434 /* flashWriteDelay */ 0U,
435 /* flashProgramDelay */ 0U,
436 /* flashEraseDelay */ 0U,
437 /* flashCtlMainWs0Freq */ 25U,
438 /* flashCtlMainWs1Freq */ 50U,
439 /* flashCtlMainWs2Freq */ 75U,
440 /* flashCtlMainWs3Freq */ 100U,
441 /* flashCtlMainWs4Freq */ 125U,
442 /* tcpwmCC1Present */ 0x02U,
443 /* tcpwmAMCPresent */ 0x02U,
444 /* tcpwmSMCPrecent */ 0x00U,
445
446 /* Peripheral register offsets */
447
448 /* DW registers */
449 /* dwChOffset */ (uint16_t)offsetof(DW_V2_Type, CH_STRUCT),
450 /* dwChSize */ (uint16_t)sizeof(DW_CH_STRUCT_V2_Type),
451 /* dwChCtlPrioPos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PRIO_Pos,
452 /* dwChCtlPreemptablePos */ (uint8_t)DW_CH_STRUCT_V2_CH_CTL_PREEMPTABLE_Pos,
453 /* dwStatusChIdxPos */ (uint8_t)DW_V2_STATUS_CH_IDX_Pos,
454 /* dwStatusChIdxMsk */ DW_V2_STATUS_CH_IDX_Msk,
455
456 /* PERI registers */
457 /* periTrCmdOffset */ (uint16_t)offsetof(PERI_V2_Type, TR_CMD),
458 /* periTrCmdGrSelMsk */ (uint16_t)PERI_V2_TR_CMD_GROUP_SEL_Msk,
459 /* periTrGrOffset */ (uint16_t)offsetof(PERI_V2_Type, TR_GR),
460 /* periTrGrSize */ (uint16_t)sizeof(PERI_TR_GR_V2_Type),
461
462 /* periDivCmdDivSelMsk */ (uint8_t)PERI_V2_DIV_CMD_DIV_SEL_Msk,
463 /* periDivCmdTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_TYPE_SEL_Pos,
464 /* periDivCmdPaDivSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_DIV_SEL_Pos,
465 /* periDivCmdPaTypeSelPos */ (uint8_t)PERI_V2_DIV_CMD_PA_TYPE_SEL_Pos,
466
467 /* periDiv8CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_8_CTL),
468 /* periDiv16CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_16_CTL),
469 /* periDiv16_5CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_16_5_CTL),
470 /* periDiv24_5CtlOffset */ (uint16_t)offsetof(PERI_V2_Type, DIV_24_5_CTL),
471
472 /* GPIO registers */
473 /* gpioPrtIntrCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, INTR_CFG),
474 /* gpioPrtCfgOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG),
475 /* gpioPrtCfgInOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_IN),
476 /* gpioPrtCfgOutOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_OUT),
477 /* gpioPrtCfgSioOffset */ (uint8_t)offsetof(GPIO_PRT_V2_Type, CFG_SIO),
478
479 /* CPUSS registers */
480 /* cpussCm0ClockCtlOffset */ offsetof(CPUSS_V2_Type, CM0_CLOCK_CTL),
481 /* cpussCm4ClockCtlOffset */ offsetof(CPUSS_V2_Type, CM4_CLOCK_CTL),
482 /* cpussCm4StatusOffset */ offsetof(CPUSS_V2_Type, CM4_STATUS),
483 /* cpussCm0StatusOffset */ offsetof(CPUSS_V2_Type, CM0_STATUS),
484 /* cpussCm4PwrCtlOffset */ offsetof(CPUSS_V2_Type, CM4_PWR_CTL),
485 /* cpussTrimRamCtlOffset */ offsetof(CPUSS_V2_Type, TRIM_RAM_CTL),
486 /* cpussTrimRomCtlOffset */ offsetof(CPUSS_V2_Type, TRIM_ROM_CTL),
487 /* cpussSysTickCtlOffset */ offsetof(CPUSS_V2_Type, SYSTICK_CTL),
488 /* cpussCm0NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V2_Type, CM0_NMI_CTL),
489 /* cpussCm4NmiCtlOffset */ (uint16_t)offsetof(CPUSS_V2_Type, CM4_NMI_CTL),
490 /* cpussRomCtl */ (uint16_t)offsetof(CPUSS_V2_Type, ROM_CTL),
491 /* cpussRam0Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM0_CTL0),
492 /* cpussRam1Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM1_CTL0),
493 /* cpussRam2Ctl0 */ (uint16_t)offsetof(CPUSS_V2_Type, RAM2_CTL0),
494 /* cpussRam0PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM0_PWR_MACRO_CTL),
495 /* cpussRam1PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM1_PWR_CTL),
496 /* cpussRam2PwrCtl */ (uint16_t)offsetof(CPUSS_V2_Type, RAM2_PWR_CTL),
497
498 /* IPC registers */
499 /* ipcStructSize */ (uint16_t)sizeof(IPC_STRUCT_V2_Type),
500 /* ipcLockStatusOffset */ offsetof(IPC_STRUCT_V2_Type, LOCK_STATUS),
501 };
502
503
504 /******************************************************************************
505 * Function Name: Cy_PDL_Init
506 ****************************************************************************//**
507 *
508 * \brief Initializes the platform and peripheral block configuration for the
509 * given target device.
510 *
511 * \param device
512 * Pointer to the platform and peripheral block configuration
513 *
514 * \note
515 * This function must be called prior calling any function in PDL.
516 *
517 *******************************************************************************/
Cy_PDL_Init(const cy_stc_device_t * device)518 void Cy_PDL_Init(const cy_stc_device_t * device)
519 {
520 cy_device = device;
521 }
522
523
524 /* [] END OF FILE */
525