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