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
/* GPIO1 base address */
27
#define HPM_GPIO1_BASE (0xF00D4000UL)
28
/* GPIO1 base pointer */
29
#define HPM_GPIO1 ((GPIO_Type *) HPM_GPIO1_BASE)
30
/* PGPIO base address */
31
#define HPM_PGPIO_BASE (0xF411C000UL)
32
/* PGPIO base pointer */
33
#define HPM_PGPIO ((GPIO_Type *) HPM_PGPIO_BASE)
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_uart_regs.h"
88
/* Address of UART instances */
89
/* UART0 base address */
90
#define HPM_UART0_BASE (0xF0040000UL)
91
/* UART0 base pointer */
92
#define HPM_UART0 ((UART_Type *) HPM_UART0_BASE)
93
/* UART1 base address */
94
#define HPM_UART1_BASE (0xF0044000UL)
95
/* UART1 base pointer */
96
#define HPM_UART1 ((UART_Type *) HPM_UART1_BASE)
97
/* UART2 base address */
98
#define HPM_UART2_BASE (0xF0048000UL)
99
/* UART2 base pointer */
100
#define HPM_UART2 ((UART_Type *) HPM_UART2_BASE)
101
/* UART3 base address */
102
#define HPM_UART3_BASE (0xF004C000UL)
103
/* UART3 base pointer */
104
#define HPM_UART3 ((UART_Type *) HPM_UART3_BASE)
105
/* PUART base address */
106
#define HPM_PUART_BASE (0xF4124000UL)
107
/* PUART base pointer */
108
#define HPM_PUART ((UART_Type *) HPM_PUART_BASE)
109
110
#include "hpm_i2c_regs.h"
111
/* Address of I2C instances */
112
/* I2C0 base address */
113
#define HPM_I2C0_BASE (0xF0060000UL)
114
/* I2C0 base pointer */
115
#define HPM_I2C0 ((I2C_Type *) HPM_I2C0_BASE)
116
/* I2C1 base address */
117
#define HPM_I2C1_BASE (0xF0064000UL)
118
/* I2C1 base pointer */
119
#define HPM_I2C1 ((I2C_Type *) HPM_I2C1_BASE)
120
/* I2C2 base address */
121
#define HPM_I2C2_BASE (0xF0068000UL)
122
/* I2C2 base pointer */
123
#define HPM_I2C2 ((I2C_Type *) HPM_I2C2_BASE)
124
125
#include "hpm_spi_regs.h"
126
/* Address of SPI instances */
127
/* SPI0 base address */
128
#define HPM_SPI0_BASE (0xF0070000UL)
129
/* SPI0 base pointer */
130
#define HPM_SPI0 ((SPI_Type *) HPM_SPI0_BASE)
131
/* SPI1 base address */
132
#define HPM_SPI1_BASE (0xF0074000UL)
133
/* SPI1 base pointer */
134
#define HPM_SPI1 ((SPI_Type *) HPM_SPI1_BASE)
135
/* SPI2 base address */
136
#define HPM_SPI2_BASE (0xF0078000UL)
137
/* SPI2 base pointer */
138
#define HPM_SPI2 ((SPI_Type *) HPM_SPI2_BASE)
139
140
#include "hpm_crc_regs.h"
141
/* Address of CRC instances */
142
/* CRC base address */
143
#define HPM_CRC_BASE (0xF0080000UL)
144
/* CRC base pointer */
145
#define HPM_CRC ((CRC_Type *) HPM_CRC_BASE)
146
147
#include "hpm_tsns_regs.h"
148
/* Address of TSNS instances */
149
/* TSNS base address */
150
#define HPM_TSNS_BASE (0xF0090000UL)
151
/* TSNS base pointer */
152
#define HPM_TSNS ((TSNS_Type *) HPM_TSNS_BASE)
153
154
#include "hpm_mbx_regs.h"
155
/* Address of MBX instances */
156
/* MBX0A base address */
157
#define HPM_MBX0A_BASE (0xF00A0000UL)
158
/* MBX0A base pointer */
159
#define HPM_MBX0A ((MBX_Type *) HPM_MBX0A_BASE)
160
/* MBX0B base address */
161
#define HPM_MBX0B_BASE (0xF00A4000UL)
162
/* MBX0B base pointer */
163
#define HPM_MBX0B ((MBX_Type *) HPM_MBX0B_BASE)
164
/* MBX1A base address */
165
#define HPM_MBX1A_BASE (0xF00A8000UL)
166
/* MBX1A base pointer */
167
#define HPM_MBX1A ((MBX_Type *) HPM_MBX1A_BASE)
168
/* MBX1B base address */
169
#define HPM_MBX1B_BASE (0xF00AC000UL)
170
/* MBX1B base pointer */
171
#define HPM_MBX1B ((MBX_Type *) HPM_MBX1B_BASE)
172
173
#include "hpm_ewdg_regs.h"
174
/* Address of EWDG instances */
175
/* EWDG0 base address */
176
#define HPM_EWDG0_BASE (0xF00B0000UL)
177
/* EWDG0 base pointer */
178
#define HPM_EWDG0 ((EWDG_Type *) HPM_EWDG0_BASE)
179
/* EWDG1 base address */
180
#define HPM_EWDG1_BASE (0xF00B4000UL)
181
/* EWDG1 base pointer */
182
#define HPM_EWDG1 ((EWDG_Type *) HPM_EWDG1_BASE)
183
/* PEWDG base address */
184
#define HPM_PEWDG_BASE (0xF4128000UL)
185
/* PEWDG base pointer */
186
#define HPM_PEWDG ((EWDG_Type *) HPM_PEWDG_BASE)
187
188
#include "hpm_dmamux_regs.h"
189
/* Address of DMAMUX instances */
190
/* DMAMUX base address */
191
#define HPM_DMAMUX_BASE (0xF00C4000UL)
192
/* DMAMUX base pointer */
193
#define HPM_DMAMUX ((DMAMUX_Type *) HPM_DMAMUX_BASE)
194
195
#include "hpm_dmav2_regs.h"
196
/* Address of DMAV2 instances */
197
/* HDMA base address */
198
#define HPM_HDMA_BASE (0xF00C8000UL)
199
/* HDMA base pointer */
200
#define HPM_HDMA ((DMAV2_Type *) HPM_HDMA_BASE)
201
/* XDMA base address */
202
#define HPM_XDMA_BASE (0xF3100000UL)
203
/* XDMA base pointer */
204
#define HPM_XDMA ((DMAV2_Type *) HPM_XDMA_BASE)
205
206
#include "hpm_gpiom_regs.h"
207
/* Address of GPIOM instances */
208
/* GPIOM base address */
209
#define HPM_GPIOM_BASE (0xF00D8000UL)
210
/* GPIOM base pointer */
211
#define HPM_GPIOM ((GPIOM_Type *) HPM_GPIOM_BASE)
212
213
#include "hpm_lobs_regs.h"
214
/* Address of LOBS instances */
215
/* LOBS base address */
216
#define HPM_LOBS_BASE (0xF00DC000UL)
217
/* LOBS base pointer */
218
#define HPM_LOBS ((LOBS_Type *) HPM_LOBS_BASE)
219
220
#include "hpm_adc16_regs.h"
221
/* Address of ADC16 instances */
222
/* ADC0 base address */
223
#define HPM_ADC0_BASE (0xF0100000UL)
224
/* ADC0 base pointer */
225
#define HPM_ADC0 ((ADC16_Type *) HPM_ADC0_BASE)
226
/* ADC1 base address */
227
#define HPM_ADC1_BASE (0xF0104000UL)
228
/* ADC1 base pointer */
229
#define HPM_ADC1 ((ADC16_Type *) HPM_ADC1_BASE)
230
/* ADC2 base address */
231
#define HPM_ADC2_BASE (0xF0108000UL)
232
/* ADC2 base pointer */
233
#define HPM_ADC2 ((ADC16_Type *) HPM_ADC2_BASE)
234
235
#include "hpm_dac_regs.h"
236
/* Address of DAC instances */
237
/* DAC0 base address */
238
#define HPM_DAC0_BASE (0xF0120000UL)
239
/* DAC0 base pointer */
240
#define HPM_DAC0 ((DAC_Type *) HPM_DAC0_BASE)
241
/* DAC1 base address */
242
#define HPM_DAC1_BASE (0xF0124000UL)
243
/* DAC1 base pointer */
244
#define HPM_DAC1 ((DAC_Type *) HPM_DAC1_BASE)
245
246
#include "hpm_acmp_regs.h"
247
/* Address of ACMP instances */
248
/* ACMP0 base address */
249
#define HPM_ACMP0_BASE (0xF0130000UL)
250
/* ACMP0 base pointer */
251
#define HPM_ACMP0 ((ACMP_Type *) HPM_ACMP0_BASE)
252
/* ACMP1 base address */
253
#define HPM_ACMP1_BASE (0xF0134000UL)
254
/* ACMP1 base pointer */
255
#define HPM_ACMP1 ((ACMP_Type *) HPM_ACMP1_BASE)
256
/* ACMP2 base address */
257
#define HPM_ACMP2_BASE (0xF0138000UL)
258
/* ACMP2 base pointer */
259
#define HPM_ACMP2 ((ACMP_Type *) HPM_ACMP2_BASE)
260
/* ACMP3 base address */
261
#define HPM_ACMP3_BASE (0xF013C000UL)
262
/* ACMP3 base pointer */
263
#define HPM_ACMP3 ((ACMP_Type *) HPM_ACMP3_BASE)
264
265
#include "hpm_mcan_regs.h"
266
/* Address of MCAN instances */
267
/* MCAN0 base address */
268
#define HPM_MCAN0_BASE (0xF0300000UL)
269
/* MCAN0 base pointer */
270
#define HPM_MCAN0 ((MCAN_Type *) HPM_MCAN0_BASE)
271
/* MCAN1 base address */
272
#define HPM_MCAN1_BASE (0xF0304000UL)
273
/* MCAN1 base pointer */
274
#define HPM_MCAN1 ((MCAN_Type *) HPM_MCAN1_BASE)
275
276
#include "hpm_ptpc_regs.h"
277
/* Address of PTPC instances */
278
/* PTPC base address */
279
#define HPM_PTPC_BASE (0xF037C000UL)
280
/* PTPC base pointer */
281
#define HPM_PTPC ((PTPC_Type *) HPM_PTPC_BASE)
282
283
#include "hpm_qeiv2_regs.h"
284
/* Address of QEIV2 instances */
285
/* QEI0 base address */
286
#define HPM_QEI0_BASE (0xF0400000UL)
287
/* QEI0 base pointer */
288
#define HPM_QEI0 ((QEIV2_Type *) HPM_QEI0_BASE)
289
/* QEI1 base address */
290
#define HPM_QEI1_BASE (0xF0404000UL)
291
/* QEI1 base pointer */
292
#define HPM_QEI1 ((QEIV2_Type *) HPM_QEI1_BASE)
293
294
#include "hpm_qeov2_regs.h"
295
/* Address of QEOV2 instances */
296
/* QEO0 base address */
297
#define HPM_QEO0_BASE (0xF0410000UL)
298
/* QEO0 base pointer */
299
#define HPM_QEO0 ((QEOV2_Type *) HPM_QEO0_BASE)
300
/* QEO1 base address */
301
#define HPM_QEO1_BASE (0xF0414000UL)
302
/* QEO1 base pointer */
303
#define HPM_QEO1 ((QEOV2_Type *) HPM_QEO1_BASE)
304
305
#include "hpm_pwmv2_regs.h"
306
/* Address of PWMV2 instances */
307
/* PWM0 base address */
308
#define HPM_PWM0_BASE (0xF0420000UL)
309
/* PWM0 base pointer */
310
#define HPM_PWM0 ((PWMV2_Type *) HPM_PWM0_BASE)
311
/* PWM1 base address */
312
#define HPM_PWM1_BASE (0xF0424000UL)
313
/* PWM1 base pointer */
314
#define HPM_PWM1 ((PWMV2_Type *) HPM_PWM1_BASE)
315
/* PWM2 base address */
316
#define HPM_PWM2_BASE (0xF0428000UL)
317
/* PWM2 base pointer */
318
#define HPM_PWM2 ((PWMV2_Type *) HPM_PWM2_BASE)
319
320
#include "hpm_rdc_regs.h"
321
/* Address of RDC instances */
322
/* RDC0 base address */
323
#define HPM_RDC0_BASE (0xF0440000UL)
324
/* RDC0 base pointer */
325
#define HPM_RDC0 ((RDC_Type *) HPM_RDC0_BASE)
326
327
#include "hpm_sdm_regs.h"
328
/* Address of SDM instances */
329
/* SDM0 base address */
330
#define HPM_SDM0_BASE (0xF0450000UL)
331
/* SDM0 base pointer */
332
#define HPM_SDM0 ((SDM_Type *) HPM_SDM0_BASE)
333
334
#include "hpm_plb_regs.h"
335
/* Address of PLB instances */
336
/* PLB base address */
337
#define HPM_PLB_BASE (0xF0460000UL)
338
/* PLB base pointer */
339
#define HPM_PLB ((PLB_Type *) HPM_PLB_BASE)
340
341
#include "hpm_synt_regs.h"
342
/* Address of SYNT instances */
343
/* SYNT base address */
344
#define HPM_SYNT_BASE (0xF0464000UL)
345
/* SYNT base pointer */
346
#define HPM_SYNT ((SYNT_Type *) HPM_SYNT_BASE)
347
348
#include "hpm_sei_regs.h"
349
/* Address of SEI instances */
350
/* SEI base address */
351
#define HPM_SEI_BASE (0xF0470000UL)
352
/* SEI base pointer */
353
#define HPM_SEI ((SEI_Type *) HPM_SEI_BASE)
354
355
#include "hpm_trgm_regs.h"
356
/* Address of TRGM instances */
357
/* TRGM0 base address */
358
#define HPM_TRGM0_BASE (0xF047C000UL)
359
/* TRGM0 base pointer */
360
#define HPM_TRGM0 ((TRGM_Type *) HPM_TRGM0_BASE)
361
362
#include "
hpm_mtgv2_regs.h
"
363
/* Address of MTGV2 instances */
364
/* MTG0 base address */
365
#define HPM_MTG0_BASE (0xF0490000UL)
366
/* MTG0 base pointer */
367
#define HPM_MTG0 ((MTGV2_Type *) HPM_MTG0_BASE)
368
369
#include "hpm_vsc_regs.h"
370
/* Address of VSC instances */
371
/* VSC0 base address */
372
#define HPM_VSC0_BASE (0xF04A0000UL)
373
/* VSC0 base pointer */
374
#define HPM_VSC0 ((VSC_Type *) HPM_VSC0_BASE)
375
376
#include "hpm_clc_regs.h"
377
/* Address of CLC instances */
378
/* CLC0 base address */
379
#define HPM_CLC0_BASE (0xF04B0000UL)
380
/* CLC0 base pointer */
381
#define HPM_CLC0 ((CLC_Type *) HPM_CLC0_BASE)
382
383
#include "hpm_usb_regs.h"
384
/* Address of USB instances */
385
/* USB0 base address */
386
#define HPM_USB0_BASE (0xF1420000UL)
387
/* USB0 base pointer */
388
#define HPM_USB0 ((USB_Type *) HPM_USB0_BASE)
389
390
#include "hpm_sdp_regs.h"
391
/* Address of SDP instances */
392
/* SDP base address */
393
#define HPM_SDP_BASE (0xF3140000UL)
394
/* SDP base pointer */
395
#define HPM_SDP ((SDP_Type *) HPM_SDP_BASE)
396
397
#include "hpm_psec_regs.h"
398
/* Address of PSEC instances */
399
/* PSEC base address */
400
#define HPM_PSEC_BASE (0xF3144000UL)
401
/* PSEC base pointer */
402
#define HPM_PSEC ((PSEC_Type *) HPM_PSEC_BASE)
403
404
#include "hpm_pmon_regs.h"
405
/* Address of PMON instances */
406
/* PMON base address */
407
#define HPM_PMON_BASE (0xF3148000UL)
408
/* PMON base pointer */
409
#define HPM_PMON ((PMON_Type *) HPM_PMON_BASE)
410
411
#include "hpm_rng_regs.h"
412
/* Address of RNG instances */
413
/* RNG base address */
414
#define HPM_RNG_BASE (0xF314C000UL)
415
/* RNG base pointer */
416
#define HPM_RNG ((RNG_Type *) HPM_RNG_BASE)
417
418
#include "hpm_keym_regs.h"
419
/* Address of KEYM instances */
420
/* KEYM base address */
421
#define HPM_KEYM_BASE (0xF3154000UL)
422
/* KEYM base pointer */
423
#define HPM_KEYM ((KEYM_Type *) HPM_KEYM_BASE)
424
425
#include "hpm_otp_regs.h"
426
/* Address of OTP instances */
427
/* OTP base address */
428
#define HPM_OTP_BASE (0xF3158000UL)
429
/* OTP base pointer */
430
#define HPM_OTP ((OTP_Type *) HPM_OTP_BASE)
431
432
#include "hpm_sysctl_regs.h"
433
/* Address of SYSCTL instances */
434
/* SYSCTL base address */
435
#define HPM_SYSCTL_BASE (0xF4000000UL)
436
/* SYSCTL base pointer */
437
#define HPM_SYSCTL ((SYSCTL_Type *) HPM_SYSCTL_BASE)
438
439
#include "hpm_ioc_regs.h"
440
/* Address of IOC instances */
441
/* IOC base address */
442
#define HPM_IOC_BASE (0xF4040000UL)
443
/* IOC base pointer */
444
#define HPM_IOC ((IOC_Type *) HPM_IOC_BASE)
445
/* PIOC base address */
446
#define HPM_PIOC_BASE (0xF4118000UL)
447
/* PIOC base pointer */
448
#define HPM_PIOC ((IOC_Type *) HPM_PIOC_BASE)
449
450
#include "hpm_pllctlv2_regs.h"
451
/* Address of PLLCTLV2 instances */
452
/* PLLCTLV2 base address */
453
#define HPM_PLLCTLV2_BASE (0xF40C0000UL)
454
/* PLLCTLV2 base pointer */
455
#define HPM_PLLCTLV2 ((PLLCTLV2_Type *) HPM_PLLCTLV2_BASE)
456
457
#include "hpm_ppor_regs.h"
458
/* Address of PPOR instances */
459
/* PPOR base address */
460
#define HPM_PPOR_BASE (0xF4100000UL)
461
/* PPOR base pointer */
462
#define HPM_PPOR ((PPOR_Type *) HPM_PPOR_BASE)
463
464
#include "hpm_pcfg_regs.h"
465
/* Address of PCFG instances */
466
/* PCFG base address */
467
#define HPM_PCFG_BASE (0xF4104000UL)
468
/* PCFG base pointer */
469
#define HPM_PCFG ((PCFG_Type *) HPM_PCFG_BASE)
470
471
#include "hpm_pdgo_regs.h"
472
/* Address of PDGO instances */
473
/* PDGO base address */
474
#define HPM_PDGO_BASE (0xF4134000UL)
475
/* PDGO base pointer */
476
#define HPM_PDGO ((PDGO_Type *) HPM_PDGO_BASE)
477
478
#include "hpm_pgpr_regs.h"
479
/* Address of PGPR instances */
480
/* PGPR0 base address */
481
#define HPM_PGPR0_BASE (0xF4138000UL)
482
/* PGPR0 base pointer */
483
#define HPM_PGPR0 ((PGPR_Type *) HPM_PGPR0_BASE)
484
/* PGPR1 base address */
485
#define HPM_PGPR1_BASE (0xF413C000UL)
486
/* PGPR1 base pointer */
487
#define HPM_PGPR1 ((PGPR_Type *) HPM_PGPR1_BASE)
488
489
490
#include "
riscv/riscv_core.h
"
491
#include "
hpm_csr_regs.h
"
492
#include "hpm_interrupt.h"
493
#include "hpm_misc.h"
494
#include "
hpm_otp_table.h
"
495
#include "
hpm_dmamux_src.h
"
496
#include "
hpm_trgmmux_src.h
"
497
#include "
hpm_iomux.h
"
498
#include "
hpm_pmic_iomux.h
"
499
#endif
/* HPM_SOC_H */
hpm_csr_regs.h
hpm_dmamux_src.h
hpm_iomux.h
hpm_otp_table.h
hpm_pmic_iomux.h
hpm_soc_irq.h
hpm_trgmmux_src.h
hpm_common.h
hpm_mtgv2_regs.h
riscv_core.h
soc
HPM6P00
HPM6P41
hpm_soc.h
Generated on Tue Apr 1 2025 05:30:26 for HPM SDK by
1.9.1