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 #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 (0xC0000UL)
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 DM instances */
32 /* DM base address */
33 #define HPM_DM_BASE (0x30000000UL)
34 
35 #include "hpm_plic_regs.h"
36 /* Address of PLIC instances */
37 /* PLIC base address */
38 #define HPM_PLIC_BASE (0xE4000000UL)
39 /* PLIC base pointer */
40 #define HPM_PLIC ((PLIC_Type *) HPM_PLIC_BASE)
41 
42 #include "hpm_mchtmr_regs.h"
43 /* Address of MCHTMR instances */
44 /* MCHTMR base address */
45 #define HPM_MCHTMR_BASE (0xE6000000UL)
46 /* MCHTMR base pointer */
47 #define HPM_MCHTMR ((MCHTMR_Type *) HPM_MCHTMR_BASE)
48 
49 #include "hpm_plic_sw_regs.h"
50 /* Address of PLICSW instances */
51 /* PLICSW base address */
52 #define HPM_PLICSW_BASE (0xE6400000UL)
53 /* PLICSW base pointer */
54 #define HPM_PLICSW ((PLIC_SW_Type *) HPM_PLICSW_BASE)
55 
56 #include "hpm_gptmr_regs.h"
57 /* Address of GPTMR instances */
58 /* GPTMR0 base address */
59 #define HPM_GPTMR0_BASE (0xF0000000UL)
60 /* GPTMR0 base pointer */
61 #define HPM_GPTMR0 ((GPTMR_Type *) HPM_GPTMR0_BASE)
62 /* GPTMR1 base address */
63 #define HPM_GPTMR1_BASE (0xF0004000UL)
64 /* GPTMR1 base pointer */
65 #define HPM_GPTMR1 ((GPTMR_Type *) HPM_GPTMR1_BASE)
66 /* PTMR base address */
67 #define HPM_PTMR_BASE (0xF4120000UL)
68 /* PTMR base pointer */
69 #define HPM_PTMR ((GPTMR_Type *) HPM_PTMR_BASE)
70 
71 #include "hpm_uart_regs.h"
72 /* Address of UART instances */
73 /* UART0 base address */
74 #define HPM_UART0_BASE (0xF0040000UL)
75 /* UART0 base pointer */
76 #define HPM_UART0 ((UART_Type *) HPM_UART0_BASE)
77 /* UART1 base address */
78 #define HPM_UART1_BASE (0xF0044000UL)
79 /* UART1 base pointer */
80 #define HPM_UART1 ((UART_Type *) HPM_UART1_BASE)
81 /* UART2 base address */
82 #define HPM_UART2_BASE (0xF0048000UL)
83 /* UART2 base pointer */
84 #define HPM_UART2 ((UART_Type *) HPM_UART2_BASE)
85 /* UART3 base address */
86 #define HPM_UART3_BASE (0xF004C000UL)
87 /* UART3 base pointer */
88 #define HPM_UART3 ((UART_Type *) HPM_UART3_BASE)
89 /* PUART base address */
90 #define HPM_PUART_BASE (0xF4124000UL)
91 /* PUART base pointer */
92 #define HPM_PUART ((UART_Type *) HPM_PUART_BASE)
93 
94 #include "hpm_i2c_regs.h"
95 /* Address of I2C instances */
96 /* I2C0 base address */
97 #define HPM_I2C0_BASE (0xF0060000UL)
98 /* I2C0 base pointer */
99 #define HPM_I2C0 ((I2C_Type *) HPM_I2C0_BASE)
100 /* I2C1 base address */
101 #define HPM_I2C1_BASE (0xF0064000UL)
102 /* I2C1 base pointer */
103 #define HPM_I2C1 ((I2C_Type *) HPM_I2C1_BASE)
104 /* I2C2 base address */
105 #define HPM_I2C2_BASE (0xF0068000UL)
106 /* I2C2 base pointer */
107 #define HPM_I2C2 ((I2C_Type *) HPM_I2C2_BASE)
108 /* I2C3 base address */
109 #define HPM_I2C3_BASE (0xF006C000UL)
110 /* I2C3 base pointer */
111 #define HPM_I2C3 ((I2C_Type *) HPM_I2C3_BASE)
112 
113 #include "hpm_spi_regs.h"
114 /* Address of SPI instances */
115 /* SPI0 base address */
116 #define HPM_SPI0_BASE (0xF0070000UL)
117 /* SPI0 base pointer */
118 #define HPM_SPI0 ((SPI_Type *) HPM_SPI0_BASE)
119 /* SPI1 base address */
120 #define HPM_SPI1_BASE (0xF0074000UL)
121 /* SPI1 base pointer */
122 #define HPM_SPI1 ((SPI_Type *) HPM_SPI1_BASE)
123 /* SPI2 base address */
124 #define HPM_SPI2_BASE (0xF0078000UL)
125 /* SPI2 base pointer */
126 #define HPM_SPI2 ((SPI_Type *) HPM_SPI2_BASE)
127 /* SPI3 base address */
128 #define HPM_SPI3_BASE (0xF007C000UL)
129 /* SPI3 base pointer */
130 #define HPM_SPI3 ((SPI_Type *) HPM_SPI3_BASE)
131 
132 #include "hpm_crc_regs.h"
133 /* Address of CRC instances */
134 /* CRC base address */
135 #define HPM_CRC_BASE (0xF0080000UL)
136 /* CRC base pointer */
137 #define HPM_CRC ((CRC_Type *) HPM_CRC_BASE)
138 
139 #include "hpm_tsns_regs.h"
140 /* Address of TSNS instances */
141 /* TSNS base address */
142 #define HPM_TSNS_BASE (0xF0090000UL)
143 /* TSNS base pointer */
144 #define HPM_TSNS ((TSNS_Type *) HPM_TSNS_BASE)
145 
146 #include "hpm_mbx_regs.h"
147 /* Address of MBX instances */
148 /* MBX0A base address */
149 #define HPM_MBX0A_BASE (0xF00A0000UL)
150 /* MBX0A base pointer */
151 #define HPM_MBX0A ((MBX_Type *) HPM_MBX0A_BASE)
152 /* MBX0B base address */
153 #define HPM_MBX0B_BASE (0xF00A4000UL)
154 /* MBX0B base pointer */
155 #define HPM_MBX0B ((MBX_Type *) HPM_MBX0B_BASE)
156 
157 #include "hpm_ewdg_regs.h"
158 /* Address of EWDG instances */
159 /* EWDG0 base address */
160 #define HPM_EWDG0_BASE (0xF00B0000UL)
161 /* EWDG0 base pointer */
162 #define HPM_EWDG0 ((EWDG_Type *) HPM_EWDG0_BASE)
163 /* EWDG1 base address */
164 #define HPM_EWDG1_BASE (0xF00B4000UL)
165 /* EWDG1 base pointer */
166 #define HPM_EWDG1 ((EWDG_Type *) HPM_EWDG1_BASE)
167 /* PEWDG base address */
168 #define HPM_PEWDG_BASE (0xF4128000UL)
169 /* PEWDG base pointer */
170 #define HPM_PEWDG ((EWDG_Type *) HPM_PEWDG_BASE)
171 
172 #include "hpm_dmamux_regs.h"
173 /* Address of DMAMUX instances */
174 /* DMAMUX base address */
175 #define HPM_DMAMUX_BASE (0xF00C4000UL)
176 /* DMAMUX base pointer */
177 #define HPM_DMAMUX ((DMAMUX_Type *) HPM_DMAMUX_BASE)
178 
179 #include "hpm_dmav2_regs.h"
180 /* Address of DMAV2 instances */
181 /* HDMA base address */
182 #define HPM_HDMA_BASE (0xF00C8000UL)
183 /* HDMA base pointer */
184 #define HPM_HDMA ((DMAV2_Type *) HPM_HDMA_BASE)
185 
186 #include "hpm_gpiom_regs.h"
187 /* Address of GPIOM instances */
188 /* GPIOM base address */
189 #define HPM_GPIOM_BASE (0xF00D8000UL)
190 /* GPIOM base pointer */
191 #define HPM_GPIOM ((GPIOM_Type *) HPM_GPIOM_BASE)
192 
193 #include "hpm_usb_regs.h"
194 /* Address of USB instances */
195 /* USB0 base address */
196 #define HPM_USB0_BASE (0xF300C000UL)
197 /* USB0 base pointer */
198 #define HPM_USB0 ((USB_Type *) HPM_USB0_BASE)
199 
200 /* Address of ROMC instances */
201 /* ROMC base address */
202 #define HPM_ROMC_BASE (0xF3014000UL)
203 
204 #include "hpm_sec_regs.h"
205 /* Address of SEC instances */
206 /* SEC base address */
207 #define HPM_SEC_BASE (0xF3044000UL)
208 /* SEC base pointer */
209 #define HPM_SEC ((SEC_Type *) HPM_SEC_BASE)
210 
211 #include "hpm_mon_regs.h"
212 /* Address of MON instances */
213 /* MON base address */
214 #define HPM_MON_BASE (0xF3048000UL)
215 /* MON base pointer */
216 #define HPM_MON ((MON_Type *) HPM_MON_BASE)
217 
218 #include "hpm_otp_regs.h"
219 /* Address of OTP instances */
220 /* OTP base address */
221 #define HPM_OTP_BASE (0xF3050000UL)
222 /* OTP base pointer */
223 #define HPM_OTP ((OTP_Type *) HPM_OTP_BASE)
224 
225 #include "hpm_keym_regs.h"
226 /* Address of KEYM instances */
227 /* KEYM base address */
228 #define HPM_KEYM_BASE (0xF3054000UL)
229 /* KEYM base pointer */
230 #define HPM_KEYM ((KEYM_Type *) HPM_KEYM_BASE)
231 
232 #include "hpm_adc16_regs.h"
233 /* Address of ADC16 instances */
234 /* ADC0 base address */
235 #define HPM_ADC0_BASE (0xF3080000UL)
236 /* ADC0 base pointer */
237 #define HPM_ADC0 ((ADC16_Type *) HPM_ADC0_BASE)
238 
239 #include "hpm_acmp_regs.h"
240 /* Address of ACMP instances */
241 /* ACMP base address */
242 #define HPM_ACMP_BASE (0xF30B0000UL)
243 /* ACMP base pointer */
244 #define HPM_ACMP ((ACMP_Type *) HPM_ACMP_BASE)
245 
246 #include "hpm_sysctl_regs.h"
247 /* Address of SYSCTL instances */
248 /* SYSCTL base address */
249 #define HPM_SYSCTL_BASE (0xF4000000UL)
250 /* SYSCTL base pointer */
251 #define HPM_SYSCTL ((SYSCTL_Type *) HPM_SYSCTL_BASE)
252 
253 #include "hpm_ioc_regs.h"
254 /* Address of IOC instances */
255 /* IOC base address */
256 #define HPM_IOC_BASE (0xF4040000UL)
257 /* IOC base pointer */
258 #define HPM_IOC ((IOC_Type *) HPM_IOC_BASE)
259 /* PIOC base address */
260 #define HPM_PIOC_BASE (0xF4118000UL)
261 /* PIOC base pointer */
262 #define HPM_PIOC ((IOC_Type *) HPM_PIOC_BASE)
263 
264 #include "hpm_pllctlv2_regs.h"
265 /* Address of PLLCTLV2 instances */
266 /* PLLCTLV2 base address */
267 #define HPM_PLLCTLV2_BASE (0xF40C0000UL)
268 /* PLLCTLV2 base pointer */
269 #define HPM_PLLCTLV2 ((PLLCTLV2_Type *) HPM_PLLCTLV2_BASE)
270 
271 #include "hpm_ppor_regs.h"
272 /* Address of PPOR instances */
273 /* PPOR base address */
274 #define HPM_PPOR_BASE (0xF4100000UL)
275 /* PPOR base pointer */
276 #define HPM_PPOR ((PPOR_Type *) HPM_PPOR_BASE)
277 
278 #include "hpm_pcfg_regs.h"
279 /* Address of PCFG instances */
280 /* PCFG base address */
281 #define HPM_PCFG_BASE (0xF4104000UL)
282 /* PCFG base pointer */
283 #define HPM_PCFG ((PCFG_Type *) HPM_PCFG_BASE)
284 
285 #include "hpm_pgpr_regs.h"
286 /* Address of PGPR instances */
287 /* PGPR0 base address */
288 #define HPM_PGPR0_BASE (0xF4110000UL)
289 /* PGPR0 base pointer */
290 #define HPM_PGPR0 ((PGPR_Type *) HPM_PGPR0_BASE)
291 /* PGPR1 base address */
292 #define HPM_PGPR1_BASE (0xF4114000UL)
293 /* PGPR1 base pointer */
294 #define HPM_PGPR1 ((PGPR_Type *) HPM_PGPR1_BASE)
295 
296 #include "hpm_pdgo_regs.h"
297 /* Address of PDGO instances */
298 /* PDGO base address */
299 #define HPM_PDGO_BASE (0xF4134000UL)
300 /* PDGO base pointer */
301 #define HPM_PDGO ((PDGO_Type *) HPM_PDGO_BASE)
302 
303 
304 #include "riscv/riscv_core.h"
305 #include "hpm_csr_regs.h"
306 #include "hpm_interrupt.h"
307 #include "hpm_misc.h"
308 #include "hpm_otp_table.h"
309 #include "hpm_dmamux_src.h"
310 #include "hpm_iomux.h"
311 #include "hpm_pmic_iomux.h"
312 #endif /* HPM_SOC_H */