HPM SDK
HPMicro Software Development Kit
hpm_soc_ip.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2021-2025 HPMicro
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 
9 #ifndef HPM_SOC_IP_H
10 #define HPM_SOC_IP_H
11 
12 
13 #include "hpm_common.h"
14 
15 #include "hpm_gpio_regs.h"
16 /* Address of GPIO instances */
17 /* FGPIO base address */
18 #define HPM_FGPIO_BASE (0x300000UL)
19 /* FGPIO base pointer */
20 #define HPM_FGPIO ((GPIO_Type *) HPM_FGPIO_BASE)
21 /* GPIO0 base address */
22 #define HPM_GPIO0_BASE (0xF00D0000UL)
23 /* GPIO0 base pointer */
24 #define HPM_GPIO0 ((GPIO_Type *) HPM_GPIO0_BASE)
25 /* PGPIO base address */
26 #define HPM_PGPIO_BASE (0xF411C000UL)
27 /* PGPIO base pointer */
28 #define HPM_PGPIO ((GPIO_Type *) HPM_PGPIO_BASE)
29 
30 /* Address of TFA instances */
31 /* TFA base address */
32 #define HPM_TFA_BASE (0x400000UL)
33 
34 /* Address of DM instances */
35 /* DM base address */
36 #define HPM_DM_BASE (0x30000000UL)
37 
38 #include "hpm_plic_regs.h"
39 /* Address of PLIC instances */
40 /* PLIC base address */
41 #define HPM_PLIC_BASE (0xE4000000UL)
42 /* PLIC base pointer */
43 #define HPM_PLIC ((PLIC_Type *) HPM_PLIC_BASE)
44 
45 #include "hpm_mchtmr_regs.h"
46 /* Address of MCHTMR instances */
47 /* MCHTMR base address */
48 #define HPM_MCHTMR_BASE (0xE6000000UL)
49 /* MCHTMR base pointer */
50 #define HPM_MCHTMR ((MCHTMR_Type *) HPM_MCHTMR_BASE)
51 
52 #include "hpm_plic_sw_regs.h"
53 /* Address of PLICSW instances */
54 /* PLICSW base address */
55 #define HPM_PLICSW_BASE (0xE6400000UL)
56 /* PLICSW base pointer */
57 #define HPM_PLICSW ((PLIC_SW_Type *) HPM_PLICSW_BASE)
58 
59 #include "hpm_gptmr_regs.h"
60 /* Address of GPTMR instances */
61 /* GPTMR0 base address */
62 #define HPM_GPTMR0_BASE (0xF0000000UL)
63 /* GPTMR0 base pointer */
64 #define HPM_GPTMR0 ((GPTMR_Type *) HPM_GPTMR0_BASE)
65 /* GPTMR1 base address */
66 #define HPM_GPTMR1_BASE (0xF0004000UL)
67 /* GPTMR1 base pointer */
68 #define HPM_GPTMR1 ((GPTMR_Type *) HPM_GPTMR1_BASE)
69 /* GPTMR2 base address */
70 #define HPM_GPTMR2_BASE (0xF0008000UL)
71 /* GPTMR2 base pointer */
72 #define HPM_GPTMR2 ((GPTMR_Type *) HPM_GPTMR2_BASE)
73 /* GPTMR3 base address */
74 #define HPM_GPTMR3_BASE (0xF000C000UL)
75 /* GPTMR3 base pointer */
76 #define HPM_GPTMR3 ((GPTMR_Type *) HPM_GPTMR3_BASE)
77 /* NTMR0 base address */
78 #define HPM_NTMR0_BASE (0xF1410000UL)
79 /* NTMR0 base pointer */
80 #define HPM_NTMR0 ((GPTMR_Type *) HPM_NTMR0_BASE)
81 /* PTMR base address */
82 #define HPM_PTMR_BASE (0xF4120000UL)
83 /* PTMR base pointer */
84 #define HPM_PTMR ((GPTMR_Type *) HPM_PTMR_BASE)
85 
86 #include "hpm_owr_regs.h"
87 /* Address of OWR instances */
88 /* OWR0 base address */
89 #define HPM_OWR0_BASE (0xF0030000UL)
90 /* OWR0 base pointer */
91 #define HPM_OWR0 ((OWR_Type *) HPM_OWR0_BASE)
92 /* OWR1 base address */
93 #define HPM_OWR1_BASE (0xF0034000UL)
94 /* OWR1 base pointer */
95 #define HPM_OWR1 ((OWR_Type *) HPM_OWR1_BASE)
96 
97 #include "hpm_eui_regs.h"
98 /* Address of EUI instances */
99 /* EUI0 base address */
100 #define HPM_EUI0_BASE (0xF0038000UL)
101 /* EUI0 base pointer */
102 #define HPM_EUI0 ((EUI_Type *) HPM_EUI0_BASE)
103 /* EUI1 base address */
104 #define HPM_EUI1_BASE (0xF003C000UL)
105 /* EUI1 base pointer */
106 #define HPM_EUI1 ((EUI_Type *) HPM_EUI1_BASE)
107 
108 #include "hpm_uart_regs.h"
109 /* Address of UART instances */
110 /* UART0 base address */
111 #define HPM_UART0_BASE (0xF0040000UL)
112 /* UART0 base pointer */
113 #define HPM_UART0 ((UART_Type *) HPM_UART0_BASE)
114 /* UART1 base address */
115 #define HPM_UART1_BASE (0xF0044000UL)
116 /* UART1 base pointer */
117 #define HPM_UART1 ((UART_Type *) HPM_UART1_BASE)
118 /* UART2 base address */
119 #define HPM_UART2_BASE (0xF0048000UL)
120 /* UART2 base pointer */
121 #define HPM_UART2 ((UART_Type *) HPM_UART2_BASE)
122 /* UART3 base address */
123 #define HPM_UART3_BASE (0xF004C000UL)
124 /* UART3 base pointer */
125 #define HPM_UART3 ((UART_Type *) HPM_UART3_BASE)
126 /* UART4 base address */
127 #define HPM_UART4_BASE (0xF0050000UL)
128 /* UART4 base pointer */
129 #define HPM_UART4 ((UART_Type *) HPM_UART4_BASE)
130 /* UART5 base address */
131 #define HPM_UART5_BASE (0xF0054000UL)
132 /* UART5 base pointer */
133 #define HPM_UART5 ((UART_Type *) HPM_UART5_BASE)
134 /* UART6 base address */
135 #define HPM_UART6_BASE (0xF0058000UL)
136 /* UART6 base pointer */
137 #define HPM_UART6 ((UART_Type *) HPM_UART6_BASE)
138 /* UART7 base address */
139 #define HPM_UART7_BASE (0xF005C000UL)
140 /* UART7 base pointer */
141 #define HPM_UART7 ((UART_Type *) HPM_UART7_BASE)
142 /* PUART base address */
143 #define HPM_PUART_BASE (0xF4124000UL)
144 /* PUART base pointer */
145 #define HPM_PUART ((UART_Type *) HPM_PUART_BASE)
146 
147 #include "hpm_i2c_regs.h"
148 /* Address of I2C instances */
149 /* I2C0 base address */
150 #define HPM_I2C0_BASE (0xF0060000UL)
151 /* I2C0 base pointer */
152 #define HPM_I2C0 ((I2C_Type *) HPM_I2C0_BASE)
153 /* I2C1 base address */
154 #define HPM_I2C1_BASE (0xF0064000UL)
155 /* I2C1 base pointer */
156 #define HPM_I2C1 ((I2C_Type *) HPM_I2C1_BASE)
157 /* I2C2 base address */
158 #define HPM_I2C2_BASE (0xF0068000UL)
159 /* I2C2 base pointer */
160 #define HPM_I2C2 ((I2C_Type *) HPM_I2C2_BASE)
161 /* I2C3 base address */
162 #define HPM_I2C3_BASE (0xF006C000UL)
163 /* I2C3 base pointer */
164 #define HPM_I2C3 ((I2C_Type *) HPM_I2C3_BASE)
165 
166 #include "hpm_spi_regs.h"
167 /* Address of SPI instances */
168 /* SPI0 base address */
169 #define HPM_SPI0_BASE (0xF0070000UL)
170 /* SPI0 base pointer */
171 #define HPM_SPI0 ((SPI_Type *) HPM_SPI0_BASE)
172 /* SPI1 base address */
173 #define HPM_SPI1_BASE (0xF0074000UL)
174 /* SPI1 base pointer */
175 #define HPM_SPI1 ((SPI_Type *) HPM_SPI1_BASE)
176 /* SPI2 base address */
177 #define HPM_SPI2_BASE (0xF0078000UL)
178 /* SPI2 base pointer */
179 #define HPM_SPI2 ((SPI_Type *) HPM_SPI2_BASE)
180 /* SPI3 base address */
181 #define HPM_SPI3_BASE (0xF007C000UL)
182 /* SPI3 base pointer */
183 #define HPM_SPI3 ((SPI_Type *) HPM_SPI3_BASE)
184 
185 #include "hpm_crc_regs.h"
186 /* Address of CRC instances */
187 /* CRC base address */
188 #define HPM_CRC_BASE (0xF0080000UL)
189 /* CRC base pointer */
190 #define HPM_CRC ((CRC_Type *) HPM_CRC_BASE)
191 
192 #include "hpm_tsns_regs.h"
193 /* Address of TSNS instances */
194 /* TSNS base address */
195 #define HPM_TSNS_BASE (0xF0090000UL)
196 /* TSNS base pointer */
197 #define HPM_TSNS ((TSNS_Type *) HPM_TSNS_BASE)
198 
199 #include "hpm_mbx_regs.h"
200 /* Address of MBX instances */
201 /* MBX0A base address */
202 #define HPM_MBX0A_BASE (0xF00A0000UL)
203 /* MBX0A base pointer */
204 #define HPM_MBX0A ((MBX_Type *) HPM_MBX0A_BASE)
205 /* MBX0B base address */
206 #define HPM_MBX0B_BASE (0xF00A4000UL)
207 /* MBX0B base pointer */
208 #define HPM_MBX0B ((MBX_Type *) HPM_MBX0B_BASE)
209 
210 #include "hpm_ewdg_regs.h"
211 /* Address of EWDG instances */
212 /* EWDG0 base address */
213 #define HPM_EWDG0_BASE (0xF00B0000UL)
214 /* EWDG0 base pointer */
215 #define HPM_EWDG0 ((EWDG_Type *) HPM_EWDG0_BASE)
216 /* EWDG1 base address */
217 #define HPM_EWDG1_BASE (0xF00B4000UL)
218 /* EWDG1 base pointer */
219 #define HPM_EWDG1 ((EWDG_Type *) HPM_EWDG1_BASE)
220 /* PEWDG base address */
221 #define HPM_PEWDG_BASE (0xF4128000UL)
222 /* PEWDG base pointer */
223 #define HPM_PEWDG ((EWDG_Type *) HPM_PEWDG_BASE)
224 
225 #include "hpm_dmamux_regs.h"
226 /* Address of DMAMUX instances */
227 /* DMAMUX base address */
228 #define HPM_DMAMUX_BASE (0xF00C4000UL)
229 /* DMAMUX base pointer */
230 #define HPM_DMAMUX ((DMAMUX_Type *) HPM_DMAMUX_BASE)
231 
232 #include "hpm_dmav2_regs.h"
233 /* Address of DMAV2 instances */
234 /* HDMA base address */
235 #define HPM_HDMA_BASE (0xF00C8000UL)
236 /* HDMA base pointer */
237 #define HPM_HDMA ((DMAV2_Type *) HPM_HDMA_BASE)
238 /* XDMA base address */
239 #define HPM_XDMA_BASE (0xF3100000UL)
240 /* XDMA base pointer */
241 #define HPM_XDMA ((DMAV2_Type *) HPM_XDMA_BASE)
242 
243 #include "hpm_ppi_regs.h"
244 /* Address of PPI instances */
245 /* PPI base address */
246 #define HPM_PPI_BASE (0xF00CC000UL)
247 /* PPI base pointer */
248 #define HPM_PPI ((PPI_Type *) HPM_PPI_BASE)
249 
250 #include "hpm_gpiom_regs.h"
251 /* Address of GPIOM instances */
252 /* GPIOM base address */
253 #define HPM_GPIOM_BASE (0xF00D8000UL)
254 /* GPIOM base pointer */
255 #define HPM_GPIOM ((GPIOM_Type *) HPM_GPIOM_BASE)
256 
257 #include "hpm_lobs_regs.h"
258 /* Address of LOBS instances */
259 /* LOBS base address */
260 #define HPM_LOBS_BASE (0xF00DC000UL)
261 /* LOBS base pointer */
262 #define HPM_LOBS ((LOBS_Type *) HPM_LOBS_BASE)
263 
264 #include "hpm_adc16_regs.h"
265 /* Address of ADC16 instances */
266 /* ADC0 base address */
267 #define HPM_ADC0_BASE (0xF0100000UL)
268 /* ADC0 base pointer */
269 #define HPM_ADC0 ((ADC16_Type *) HPM_ADC0_BASE)
270 /* ADC1 base address */
271 #define HPM_ADC1_BASE (0xF0104000UL)
272 /* ADC1 base pointer */
273 #define HPM_ADC1 ((ADC16_Type *) HPM_ADC1_BASE)
274 
275 #include "hpm_acmp_regs.h"
276 /* Address of ACMP instances */
277 /* ACMP0 base address */
278 #define HPM_ACMP0_BASE (0xF0130000UL)
279 /* ACMP0 base pointer */
280 #define HPM_ACMP0 ((ACMP_Type *) HPM_ACMP0_BASE)
281 
282 #include "hpm_mcan_regs.h"
283 /* Address of MCAN instances */
284 /* MCAN0 base address */
285 #define HPM_MCAN0_BASE (0xF0300000UL)
286 /* MCAN0 base pointer */
287 #define HPM_MCAN0 ((MCAN_Type *) HPM_MCAN0_BASE)
288 /* MCAN1 base address */
289 #define HPM_MCAN1_BASE (0xF0304000UL)
290 /* MCAN1 base pointer */
291 #define HPM_MCAN1 ((MCAN_Type *) HPM_MCAN1_BASE)
292 /* MCAN2 base address */
293 #define HPM_MCAN2_BASE (0xF0308000UL)
294 /* MCAN2 base pointer */
295 #define HPM_MCAN2 ((MCAN_Type *) HPM_MCAN2_BASE)
296 /* MCAN3 base address */
297 #define HPM_MCAN3_BASE (0xF030C000UL)
298 /* MCAN3 base pointer */
299 #define HPM_MCAN3 ((MCAN_Type *) HPM_MCAN3_BASE)
300 
301 #include "hpm_ptpc_regs.h"
302 /* Address of PTPC instances */
303 /* PTPC base address */
304 #define HPM_PTPC_BASE (0xF037C000UL)
305 /* PTPC base pointer */
306 #define HPM_PTPC ((PTPC_Type *) HPM_PTPC_BASE)
307 
308 #include "hpm_qeiv2_regs.h"
309 /* Address of QEIV2 instances */
310 /* QEI0 base address */
311 #define HPM_QEI0_BASE (0xF0400000UL)
312 /* QEI0 base pointer */
313 #define HPM_QEI0 ((QEIV2_Type *) HPM_QEI0_BASE)
314 /* QEI1 base address */
315 #define HPM_QEI1_BASE (0xF0404000UL)
316 /* QEI1 base pointer */
317 #define HPM_QEI1 ((QEIV2_Type *) HPM_QEI1_BASE)
318 
319 #include "hpm_qeov2_regs.h"
320 /* Address of QEOV2 instances */
321 /* QEO0 base address */
322 #define HPM_QEO0_BASE (0xF0410000UL)
323 /* QEO0 base pointer */
324 #define HPM_QEO0 ((QEOV2_Type *) HPM_QEO0_BASE)
325 /* QEO1 base address */
326 #define HPM_QEO1_BASE (0xF0414000UL)
327 /* QEO1 base pointer */
328 #define HPM_QEO1 ((QEOV2_Type *) HPM_QEO1_BASE)
329 
330 #include "hpm_pwmv2_regs.h"
331 /* Address of PWMV2 instances */
332 /* PWM0 base address */
333 #define HPM_PWM0_BASE (0xF0420000UL)
334 /* PWM0 base pointer */
335 #define HPM_PWM0 ((PWMV2_Type *) HPM_PWM0_BASE)
336 /* PWM1 base address */
337 #define HPM_PWM1_BASE (0xF0424000UL)
338 /* PWM1 base pointer */
339 #define HPM_PWM1 ((PWMV2_Type *) HPM_PWM1_BASE)
340 
341 #include "hpm_sdm_regs.h"
342 /* Address of SDM instances */
343 /* SDM0 base address */
344 #define HPM_SDM0_BASE (0xF0450000UL)
345 /* SDM0 base pointer */
346 #define HPM_SDM0 ((SDM_Type *) HPM_SDM0_BASE)
347 
348 #include "hpm_plb_regs.h"
349 /* Address of PLB instances */
350 /* PLB base address */
351 #define HPM_PLB_BASE (0xF0460000UL)
352 /* PLB base pointer */
353 #define HPM_PLB ((PLB_Type *) HPM_PLB_BASE)
354 
355 #include "hpm_synt_regs.h"
356 /* Address of SYNT instances */
357 /* SYNT base address */
358 #define HPM_SYNT_BASE (0xF0464000UL)
359 /* SYNT base pointer */
360 #define HPM_SYNT ((SYNT_Type *) HPM_SYNT_BASE)
361 
362 #include "hpm_trgm_regs.h"
363 /* Address of TRGM instances */
364 /* TRGM0 base address */
365 #define HPM_TRGM0_BASE (0xF047C000UL)
366 /* TRGM0 base pointer */
367 #define HPM_TRGM0 ((TRGM_Type *) HPM_TRGM0_BASE)
368 
369 #include "hpm_enet_regs.h"
370 /* Address of ENET instances */
371 /* ENET0 base address */
372 #define HPM_ENET0_BASE (0xF1400000UL)
373 /* ENET0 base pointer */
374 #define HPM_ENET0 ((ENET_Type *) HPM_ENET0_BASE)
375 
376 #include "hpm_usb_regs.h"
377 /* Address of USB instances */
378 /* USB0 base address */
379 #define HPM_USB0_BASE (0xF1420000UL)
380 /* USB0 base pointer */
381 #define HPM_USB0 ((USB_Type *) HPM_USB0_BASE)
382 
383 #include "hpm_esc_regs.h"
384 /* Address of ESC instances */
385 /* ESC base address */
386 #define HPM_ESC_BASE (0xF1700000UL)
387 /* ESC base pointer */
388 #define HPM_ESC ((ESC_Type *) HPM_ESC_BASE)
389 
390 #include "hpm_otp_regs.h"
391 /* Address of OTP instances */
392 /* OTP base address */
393 #define HPM_OTP_BASE (0xF3158000UL)
394 /* OTP base pointer */
395 #define HPM_OTP ((OTP_Type *) HPM_OTP_BASE)
396 
397 #include "hpm_sysctl_regs.h"
398 /* Address of SYSCTL instances */
399 /* SYSCTL base address */
400 #define HPM_SYSCTL_BASE (0xF4000000UL)
401 /* SYSCTL base pointer */
402 #define HPM_SYSCTL ((SYSCTL_Type *) HPM_SYSCTL_BASE)
403 
404 #include "hpm_ioc_regs.h"
405 /* Address of IOC instances */
406 /* IOC base address */
407 #define HPM_IOC_BASE (0xF4040000UL)
408 /* IOC base pointer */
409 #define HPM_IOC ((IOC_Type *) HPM_IOC_BASE)
410 /* PIOC base address */
411 #define HPM_PIOC_BASE (0xF4118000UL)
412 /* PIOC base pointer */
413 #define HPM_PIOC ((IOC_Type *) HPM_PIOC_BASE)
414 
415 #include "hpm_pllctlv2_regs.h"
416 /* Address of PLLCTLV2 instances */
417 /* PLLCTLV2 base address */
418 #define HPM_PLLCTLV2_BASE (0xF40C0000UL)
419 /* PLLCTLV2 base pointer */
420 #define HPM_PLLCTLV2 ((PLLCTLV2_Type *) HPM_PLLCTLV2_BASE)
421 
422 #include "hpm_ppor_regs.h"
423 /* Address of PPOR instances */
424 /* PPOR base address */
425 #define HPM_PPOR_BASE (0xF4100000UL)
426 /* PPOR base pointer */
427 #define HPM_PPOR ((PPOR_Type *) HPM_PPOR_BASE)
428 
429 #include "hpm_pcfg_regs.h"
430 /* Address of PCFG instances */
431 /* PCFG base address */
432 #define HPM_PCFG_BASE (0xF4104000UL)
433 /* PCFG base pointer */
434 #define HPM_PCFG ((PCFG_Type *) HPM_PCFG_BASE)
435 
436 #include "hpm_pdgo_regs.h"
437 /* Address of PDGO instances */
438 /* PDGO base address */
439 #define HPM_PDGO_BASE (0xF4134000UL)
440 /* PDGO base pointer */
441 #define HPM_PDGO ((PDGO_Type *) HPM_PDGO_BASE)
442 
443 #include "hpm_pgpr_regs.h"
444 /* Address of PGPR instances */
445 /* PGPR0 base address */
446 #define HPM_PGPR0_BASE (0xF4138000UL)
447 /* PGPR0 base pointer */
448 #define HPM_PGPR0 ((PGPR_Type *) HPM_PGPR0_BASE)
449 /* PGPR1 base address */
450 #define HPM_PGPR1_BASE (0xF413C000UL)
451 /* PGPR1 base pointer */
452 #define HPM_PGPR1 ((PGPR_Type *) HPM_PGPR1_BASE)
453 
454 
455 #endif /* HPM_SOC_IP_H */
456