HPM SDK
HPMicro Software Development Kit
hpm_soc.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2021-2024 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
/* List of external IRQs */
14
#define IRQn_GPIO0_A 1
/* GPIO0_A IRQ */
15
#define IRQn_GPIO0_B 2
/* GPIO0_B IRQ */
16
#define IRQn_GPIO0_X 3
/* GPIO0_X IRQ */
17
#define IRQn_GPIO0_Y 4
/* GPIO0_Y IRQ */
18
#define IRQn_GPTMR0 5
/* GPTMR0 IRQ */
19
#define IRQn_GPTMR1 6
/* GPTMR1 IRQ */
20
#define IRQn_UART0 13
/* UART0 IRQ */
21
#define IRQn_UART1 14
/* UART1 IRQ */
22
#define IRQn_UART2 15
/* UART2 IRQ */
23
#define IRQn_UART3 16
/* UART3 IRQ */
24
#define IRQn_I2C0 21
/* I2C0 IRQ */
25
#define IRQn_I2C1 22
/* I2C1 IRQ */
26
#define IRQn_I2C2 23
/* I2C2 IRQ */
27
#define IRQn_I2C3 24
/* I2C3 IRQ */
28
#define IRQn_SPI0 25
/* SPI0 IRQ */
29
#define IRQn_SPI1 26
/* SPI1 IRQ */
30
#define IRQn_SPI2 27
/* SPI2 IRQ */
31
#define IRQn_SPI3 28
/* SPI3 IRQ */
32
#define IRQn_TSNS 29
/* TSNS IRQ */
33
#define IRQn_MBX0A 30
/* MBX0A IRQ */
34
#define IRQn_MBX0B 31
/* MBX0B IRQ */
35
#define IRQn_EWDG0 32
/* EWDG0 IRQ */
36
#define IRQn_EWDG1 33
/* EWDG1 IRQ */
37
#define IRQn_HDMA 34
/* HDMA IRQ */
38
#define IRQn_USB0 51
/* USB0 IRQ */
39
#define IRQn_XPI0 52
/* XPI0 IRQ */
40
#define IRQn_PSEC 54
/* PSEC IRQ */
41
#define IRQn_SECMON 55
/* SECMON IRQ */
42
#define IRQn_FUSE 57
/* FUSE IRQ */
43
#define IRQn_ADC0 58
/* ADC0 IRQ */
44
#define IRQn_ACMP_0 62
/* ACMP_0 IRQ */
45
#define IRQn_ACMP_1 63
/* ACMP_1 IRQ */
46
#define IRQn_SYSCTL 64
/* SYSCTL IRQ */
47
#define IRQn_PGPIO 65
/* PGPIO IRQ */
48
#define IRQn_PTMR 66
/* PTMR IRQ */
49
#define IRQn_PUART 67
/* PUART IRQ */
50
#define IRQn_PEWDG 68
/* PEWDG IRQ */
51
#define IRQn_BROWNOUT 69
/* BROWNOUT IRQ */
52
#define IRQn_PAD_WAKEUP 70
/* PAD_WAKEUP IRQ */
53
#define IRQn_DEBUG0 71
/* DEBUG0 IRQ */
54
#define IRQn_DEBUG1 72
/* DEBUG1 IRQ */
55
56
#include "
hpm_common.h
"
57
58
#include "hpm_gpio_regs.h"
59
/* Address of GPIO instances */
60
/* FGPIO base address */
61
#define HPM_FGPIO_BASE (0xC0000UL)
62
/* FGPIO base pointer */
63
#define HPM_FGPIO ((GPIO_Type *) HPM_FGPIO_BASE)
64
/* GPIO0 base address */
65
#define HPM_GPIO0_BASE (0xF00D0000UL)
66
/* GPIO0 base pointer */
67
#define HPM_GPIO0 ((GPIO_Type *) HPM_GPIO0_BASE)
68
/* PGPIO base address */
69
#define HPM_PGPIO_BASE (0xF411C000UL)
70
/* PGPIO base pointer */
71
#define HPM_PGPIO ((GPIO_Type *) HPM_PGPIO_BASE)
72
73
/* Address of DM instances */
74
/* DM base address */
75
#define HPM_DM_BASE (0x30000000UL)
76
77
#include "hpm_plic_regs.h"
78
/* Address of PLIC instances */
79
/* PLIC base address */
80
#define HPM_PLIC_BASE (0xE4000000UL)
81
/* PLIC base pointer */
82
#define HPM_PLIC ((PLIC_Type *) HPM_PLIC_BASE)
83
84
#include "hpm_mchtmr_regs.h"
85
/* Address of MCHTMR instances */
86
/* MCHTMR base address */
87
#define HPM_MCHTMR_BASE (0xE6000000UL)
88
/* MCHTMR base pointer */
89
#define HPM_MCHTMR ((MCHTMR_Type *) HPM_MCHTMR_BASE)
90
91
#include "hpm_plic_sw_regs.h"
92
/* Address of PLICSW instances */
93
/* PLICSW base address */
94
#define HPM_PLICSW_BASE (0xE6400000UL)
95
/* PLICSW base pointer */
96
#define HPM_PLICSW ((PLIC_SW_Type *) HPM_PLICSW_BASE)
97
98
#include "hpm_gptmr_regs.h"
99
/* Address of GPTMR instances */
100
/* GPTMR0 base address */
101
#define HPM_GPTMR0_BASE (0xF0000000UL)
102
/* GPTMR0 base pointer */
103
#define HPM_GPTMR0 ((GPTMR_Type *) HPM_GPTMR0_BASE)
104
/* GPTMR1 base address */
105
#define HPM_GPTMR1_BASE (0xF0004000UL)
106
/* GPTMR1 base pointer */
107
#define HPM_GPTMR1 ((GPTMR_Type *) HPM_GPTMR1_BASE)
108
/* PTMR base address */
109
#define HPM_PTMR_BASE (0xF4120000UL)
110
/* PTMR base pointer */
111
#define HPM_PTMR ((GPTMR_Type *) HPM_PTMR_BASE)
112
113
#include "hpm_uart_regs.h"
114
/* Address of UART instances */
115
/* UART0 base address */
116
#define HPM_UART0_BASE (0xF0040000UL)
117
/* UART0 base pointer */
118
#define HPM_UART0 ((UART_Type *) HPM_UART0_BASE)
119
/* UART1 base address */
120
#define HPM_UART1_BASE (0xF0044000UL)
121
/* UART1 base pointer */
122
#define HPM_UART1 ((UART_Type *) HPM_UART1_BASE)
123
/* UART2 base address */
124
#define HPM_UART2_BASE (0xF0048000UL)
125
/* UART2 base pointer */
126
#define HPM_UART2 ((UART_Type *) HPM_UART2_BASE)
127
/* UART3 base address */
128
#define HPM_UART3_BASE (0xF004C000UL)
129
/* UART3 base pointer */
130
#define HPM_UART3 ((UART_Type *) HPM_UART3_BASE)
131
/* PUART base address */
132
#define HPM_PUART_BASE (0xF4124000UL)
133
/* PUART base pointer */
134
#define HPM_PUART ((UART_Type *) HPM_PUART_BASE)
135
136
#include "hpm_i2c_regs.h"
137
/* Address of I2C instances */
138
/* I2C0 base address */
139
#define HPM_I2C0_BASE (0xF0060000UL)
140
/* I2C0 base pointer */
141
#define HPM_I2C0 ((I2C_Type *) HPM_I2C0_BASE)
142
/* I2C1 base address */
143
#define HPM_I2C1_BASE (0xF0064000UL)
144
/* I2C1 base pointer */
145
#define HPM_I2C1 ((I2C_Type *) HPM_I2C1_BASE)
146
/* I2C2 base address */
147
#define HPM_I2C2_BASE (0xF0068000UL)
148
/* I2C2 base pointer */
149
#define HPM_I2C2 ((I2C_Type *) HPM_I2C2_BASE)
150
/* I2C3 base address */
151
#define HPM_I2C3_BASE (0xF006C000UL)
152
/* I2C3 base pointer */
153
#define HPM_I2C3 ((I2C_Type *) HPM_I2C3_BASE)
154
155
#include "hpm_spi_regs.h"
156
/* Address of SPI instances */
157
/* SPI0 base address */
158
#define HPM_SPI0_BASE (0xF0070000UL)
159
/* SPI0 base pointer */
160
#define HPM_SPI0 ((SPI_Type *) HPM_SPI0_BASE)
161
/* SPI1 base address */
162
#define HPM_SPI1_BASE (0xF0074000UL)
163
/* SPI1 base pointer */
164
#define HPM_SPI1 ((SPI_Type *) HPM_SPI1_BASE)
165
/* SPI2 base address */
166
#define HPM_SPI2_BASE (0xF0078000UL)
167
/* SPI2 base pointer */
168
#define HPM_SPI2 ((SPI_Type *) HPM_SPI2_BASE)
169
/* SPI3 base address */
170
#define HPM_SPI3_BASE (0xF007C000UL)
171
/* SPI3 base pointer */
172
#define HPM_SPI3 ((SPI_Type *) HPM_SPI3_BASE)
173
174
#include "hpm_crc_regs.h"
175
/* Address of CRC instances */
176
/* CRC base address */
177
#define HPM_CRC_BASE (0xF0080000UL)
178
/* CRC base pointer */
179
#define HPM_CRC ((CRC_Type *) HPM_CRC_BASE)
180
181
#include "hpm_tsns_regs.h"
182
/* Address of TSNS instances */
183
/* TSNS base address */
184
#define HPM_TSNS_BASE (0xF0090000UL)
185
/* TSNS base pointer */
186
#define HPM_TSNS ((TSNS_Type *) HPM_TSNS_BASE)
187
188
#include "hpm_mbx_regs.h"
189
/* Address of MBX instances */
190
/* MBX0A base address */
191
#define HPM_MBX0A_BASE (0xF00A0000UL)
192
/* MBX0A base pointer */
193
#define HPM_MBX0A ((MBX_Type *) HPM_MBX0A_BASE)
194
/* MBX0B base address */
195
#define HPM_MBX0B_BASE (0xF00A4000UL)
196
/* MBX0B base pointer */
197
#define HPM_MBX0B ((MBX_Type *) HPM_MBX0B_BASE)
198
199
#include "hpm_ewdg_regs.h"
200
/* Address of EWDG instances */
201
/* EWDG0 base address */
202
#define HPM_EWDG0_BASE (0xF00B0000UL)
203
/* EWDG0 base pointer */
204
#define HPM_EWDG0 ((EWDG_Type *) HPM_EWDG0_BASE)
205
/* EWDG1 base address */
206
#define HPM_EWDG1_BASE (0xF00B4000UL)
207
/* EWDG1 base pointer */
208
#define HPM_EWDG1 ((EWDG_Type *) HPM_EWDG1_BASE)
209
/* PEWDG base address */
210
#define HPM_PEWDG_BASE (0xF4128000UL)
211
/* PEWDG base pointer */
212
#define HPM_PEWDG ((EWDG_Type *) HPM_PEWDG_BASE)
213
214
#include "hpm_dmamux_regs.h"
215
/* Address of DMAMUX instances */
216
/* DMAMUX base address */
217
#define HPM_DMAMUX_BASE (0xF00C4000UL)
218
/* DMAMUX base pointer */
219
#define HPM_DMAMUX ((DMAMUX_Type *) HPM_DMAMUX_BASE)
220
221
#include "hpm_dmav2_regs.h"
222
/* Address of DMAV2 instances */
223
/* HDMA base address */
224
#define HPM_HDMA_BASE (0xF00C8000UL)
225
/* HDMA base pointer */
226
#define HPM_HDMA ((DMAV2_Type *) HPM_HDMA_BASE)
227
228
#include "hpm_gpiom_regs.h"
229
/* Address of GPIOM instances */
230
/* GPIOM base address */
231
#define HPM_GPIOM_BASE (0xF00D8000UL)
232
/* GPIOM base pointer */
233
#define HPM_GPIOM ((GPIOM_Type *) HPM_GPIOM_BASE)
234
235
#include "hpm_usb_regs.h"
236
/* Address of USB instances */
237
/* USB0 base address */
238
#define HPM_USB0_BASE (0xF300C000UL)
239
/* USB0 base pointer */
240
#define HPM_USB0 ((USB_Type *) HPM_USB0_BASE)
241
242
/* Address of ROMC instances */
243
/* ROMC base address */
244
#define HPM_ROMC_BASE (0xF3014000UL)
245
246
#include "hpm_sec_regs.h"
247
/* Address of SEC instances */
248
/* SEC base address */
249
#define HPM_SEC_BASE (0xF3044000UL)
250
/* SEC base pointer */
251
#define HPM_SEC ((SEC_Type *) HPM_SEC_BASE)
252
253
#include "hpm_mon_regs.h"
254
/* Address of MON instances */
255
/* MON base address */
256
#define HPM_MON_BASE (0xF3048000UL)
257
/* MON base pointer */
258
#define HPM_MON ((MON_Type *) HPM_MON_BASE)
259
260
#include "hpm_otp_regs.h"
261
/* Address of OTP instances */
262
/* OTP base address */
263
#define HPM_OTP_BASE (0xF3050000UL)
264
/* OTP base pointer */
265
#define HPM_OTP ((OTP_Type *) HPM_OTP_BASE)
266
267
#include "hpm_keym_regs.h"
268
/* Address of KEYM instances */
269
/* KEYM base address */
270
#define HPM_KEYM_BASE (0xF3054000UL)
271
/* KEYM base pointer */
272
#define HPM_KEYM ((KEYM_Type *) HPM_KEYM_BASE)
273
274
#include "hpm_adc16_regs.h"
275
/* Address of ADC16 instances */
276
/* ADC0 base address */
277
#define HPM_ADC0_BASE (0xF3080000UL)
278
/* ADC0 base pointer */
279
#define HPM_ADC0 ((ADC16_Type *) HPM_ADC0_BASE)
280
281
#include "hpm_acmp_regs.h"
282
/* Address of ACMP instances */
283
/* ACMP base address */
284
#define HPM_ACMP_BASE (0xF30B0000UL)
285
/* ACMP base pointer */
286
#define HPM_ACMP ((ACMP_Type *) HPM_ACMP_BASE)
287
288
#include "hpm_sysctl_regs.h"
289
/* Address of SYSCTL instances */
290
/* SYSCTL base address */
291
#define HPM_SYSCTL_BASE (0xF4000000UL)
292
/* SYSCTL base pointer */
293
#define HPM_SYSCTL ((SYSCTL_Type *) HPM_SYSCTL_BASE)
294
295
#include "hpm_ioc_regs.h"
296
/* Address of IOC instances */
297
/* IOC base address */
298
#define HPM_IOC_BASE (0xF4040000UL)
299
/* IOC base pointer */
300
#define HPM_IOC ((IOC_Type *) HPM_IOC_BASE)
301
/* PIOC base address */
302
#define HPM_PIOC_BASE (0xF4118000UL)
303
/* PIOC base pointer */
304
#define HPM_PIOC ((IOC_Type *) HPM_PIOC_BASE)
305
306
#include "hpm_pllctlv2_regs.h"
307
/* Address of PLLCTLV2 instances */
308
/* PLLCTLV2 base address */
309
#define HPM_PLLCTLV2_BASE (0xF40C0000UL)
310
/* PLLCTLV2 base pointer */
311
#define HPM_PLLCTLV2 ((PLLCTLV2_Type *) HPM_PLLCTLV2_BASE)
312
313
#include "hpm_ppor_regs.h"
314
/* Address of PPOR instances */
315
/* PPOR base address */
316
#define HPM_PPOR_BASE (0xF4100000UL)
317
/* PPOR base pointer */
318
#define HPM_PPOR ((PPOR_Type *) HPM_PPOR_BASE)
319
320
#include "hpm_pcfg_regs.h"
321
/* Address of PCFG instances */
322
/* PCFG base address */
323
#define HPM_PCFG_BASE (0xF4104000UL)
324
/* PCFG base pointer */
325
#define HPM_PCFG ((PCFG_Type *) HPM_PCFG_BASE)
326
327
#include "hpm_pgpr_regs.h"
328
/* Address of PGPR instances */
329
/* PGPR0 base address */
330
#define HPM_PGPR0_BASE (0xF4110000UL)
331
/* PGPR0 base pointer */
332
#define HPM_PGPR0 ((PGPR_Type *) HPM_PGPR0_BASE)
333
/* PGPR1 base address */
334
#define HPM_PGPR1_BASE (0xF4114000UL)
335
/* PGPR1 base pointer */
336
#define HPM_PGPR1 ((PGPR_Type *) HPM_PGPR1_BASE)
337
338
#include "hpm_pdgo_regs.h"
339
/* Address of PDGO instances */
340
/* PDGO base address */
341
#define HPM_PDGO_BASE (0xF4134000UL)
342
/* PDGO base pointer */
343
#define HPM_PDGO ((PDGO_Type *) HPM_PDGO_BASE)
344
345
346
#include "
riscv/riscv_core.h
"
347
#include "
hpm_csr_regs.h
"
348
#include "
hpm_interrupt.h
"
349
#include "
hpm_misc.h
"
350
#include "
hpm_otp_table.h
"
351
#include "
hpm_dmamux_src.h
"
352
#include "
hpm_iomux.h
"
353
#include "
hpm_pmic_iomux.h
"
354
#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_pmic_iomux.h
hpm_common.h
riscv_core.h
soc
HPM5300
HPM5301
hpm_soc.h
Generated on Tue Oct 8 2024 00:59:02 for HPM SDK by
1.9.1