hpm_soc.h 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643
  1. /*
  2. * Copyright (c) 2021-2023 HPMicro
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. *
  6. */
  7. #ifndef HPM_SOC_H
  8. #define HPM_SOC_H
  9. /* List of external IRQs */
  10. #define IRQn_GPIO0_A 1 /* GPIO0_A IRQ */
  11. #define IRQn_GPIO0_B 2 /* GPIO0_B IRQ */
  12. #define IRQn_GPIO0_C 3 /* GPIO0_C IRQ */
  13. #define IRQn_GPIO0_D 4 /* GPIO0_D IRQ */
  14. #define IRQn_GPIO0_X 5 /* GPIO0_X IRQ */
  15. #define IRQn_GPIO0_Y 6 /* GPIO0_Y IRQ */
  16. #define IRQn_GPIO0_Z 7 /* GPIO0_Z IRQ */
  17. #define IRQn_ADC0 8 /* ADC0 IRQ */
  18. #define IRQn_ADC1 9 /* ADC1 IRQ */
  19. #define IRQn_ADC2 10 /* ADC2 IRQ */
  20. #define IRQn_DAC 11 /* DAC IRQ */
  21. #define IRQn_ACMP_0 12 /* ACMP[0] IRQ */
  22. #define IRQn_ACMP_1 13 /* ACMP[1] IRQ */
  23. #define IRQn_SPI0 14 /* SPI0 IRQ */
  24. #define IRQn_SPI1 15 /* SPI1 IRQ */
  25. #define IRQn_SPI2 16 /* SPI2 IRQ */
  26. #define IRQn_SPI3 17 /* SPI3 IRQ */
  27. #define IRQn_UART0 18 /* UART0 IRQ */
  28. #define IRQn_UART1 19 /* UART1 IRQ */
  29. #define IRQn_UART2 20 /* UART2 IRQ */
  30. #define IRQn_UART3 21 /* UART3 IRQ */
  31. #define IRQn_UART4 22 /* UART4 IRQ */
  32. #define IRQn_UART5 23 /* UART5 IRQ */
  33. #define IRQn_UART6 24 /* UART6 IRQ */
  34. #define IRQn_UART7 25 /* UART7 IRQ */
  35. #define IRQn_CAN0 26 /* CAN0 IRQ */
  36. #define IRQn_CAN1 27 /* CAN1 IRQ */
  37. #define IRQn_PTPC 28 /* PTPC IRQ */
  38. #define IRQn_WDG0 29 /* WDG0 IRQ */
  39. #define IRQn_WDG1 30 /* WDG1 IRQ */
  40. #define IRQn_TSNS 31 /* TSNS IRQ */
  41. #define IRQn_MBX0A 32 /* MBX0A IRQ */
  42. #define IRQn_MBX0B 33 /* MBX0B IRQ */
  43. #define IRQn_GPTMR0 34 /* GPTMR0 IRQ */
  44. #define IRQn_GPTMR1 35 /* GPTMR1 IRQ */
  45. #define IRQn_GPTMR2 36 /* GPTMR2 IRQ */
  46. #define IRQn_GPTMR3 37 /* GPTMR3 IRQ */
  47. #define IRQn_I2C0 38 /* I2C0 IRQ */
  48. #define IRQn_I2C1 39 /* I2C1 IRQ */
  49. #define IRQn_I2C2 40 /* I2C2 IRQ */
  50. #define IRQn_I2C3 41 /* I2C3 IRQ */
  51. #define IRQn_PWM0 42 /* PWM0 IRQ */
  52. #define IRQn_HALL0 43 /* HALL0 IRQ */
  53. #define IRQn_QEI0 44 /* QEI0 IRQ */
  54. #define IRQn_PWM1 45 /* PWM1 IRQ */
  55. #define IRQn_HALL1 46 /* HALL1 IRQ */
  56. #define IRQn_QEI1 47 /* QEI1 IRQ */
  57. #define IRQn_SDP 48 /* SDP IRQ */
  58. #define IRQn_XPI0 49 /* XPI0 IRQ */
  59. #define IRQn_XPI1 50 /* XPI1 IRQ */
  60. #define IRQn_XDMA 51 /* XDMA IRQ */
  61. #define IRQn_HDMA 52 /* HDMA IRQ */
  62. #define IRQn_FEMC 53 /* FEMC IRQ */
  63. #define IRQn_RNG 54 /* RNG IRQ */
  64. #define IRQn_I2S0 55 /* I2S0 IRQ */
  65. #define IRQn_I2S1 56 /* I2S1 IRQ */
  66. #define IRQn_DAO 57 /* DAO IRQ */
  67. #define IRQn_PDM 58 /* PDM IRQ */
  68. #define IRQn_FFA 59 /* FFA IRQ */
  69. #define IRQn_NTMR0 60 /* NTMR0 IRQ */
  70. #define IRQn_USB0 61 /* USB0 IRQ */
  71. #define IRQn_ENET0 62 /* ENET0 IRQ */
  72. #define IRQn_SDXC0 63 /* SDXC0 IRQ */
  73. #define IRQn_PSEC 64 /* PSEC IRQ */
  74. #define IRQn_PGPIO 65 /* PGPIO IRQ */
  75. #define IRQn_PWDG 66 /* PWDG IRQ */
  76. #define IRQn_PTMR 67 /* PTMR IRQ */
  77. #define IRQn_PUART 68 /* PUART IRQ */
  78. #define IRQn_FUSE 69 /* FUSE IRQ */
  79. #define IRQn_SECMON 70 /* SECMON IRQ */
  80. #define IRQn_RTC 71 /* RTC IRQ */
  81. #define IRQn_BUTN 72 /* BUTN IRQ */
  82. #define IRQn_BGPIO 73 /* BGPIO IRQ */
  83. #define IRQn_BVIO 74 /* BVIO IRQ */
  84. #define IRQn_BROWNOUT 75 /* BROWNOUT IRQ */
  85. #define IRQn_SYSCTL 76 /* SYSCTL IRQ */
  86. #define IRQn_DEBUG_0 77 /* DEBUG[0] IRQ */
  87. #define IRQn_DEBUG_1 78 /* DEBUG[1] IRQ */
  88. #include "hpm_common.h"
  89. #include "hpm_gpio_regs.h"
  90. /* Address of GPIO instances */
  91. /* FGPIO base address */
  92. #define HPM_FGPIO_BASE (0xC0000UL)
  93. /* FGPIO base pointer */
  94. #define HPM_FGPIO ((GPIO_Type *) HPM_FGPIO_BASE)
  95. /* GPIO0 base address */
  96. #define HPM_GPIO0_BASE (0xF0000000UL)
  97. /* GPIO0 base pointer */
  98. #define HPM_GPIO0 ((GPIO_Type *) HPM_GPIO0_BASE)
  99. /* PGPIO base address */
  100. #define HPM_PGPIO_BASE (0xF40DC000UL)
  101. /* PGPIO base pointer */
  102. #define HPM_PGPIO ((GPIO_Type *) HPM_PGPIO_BASE)
  103. /* BGPIO base address */
  104. #define HPM_BGPIO_BASE (0xF5014000UL)
  105. /* BGPIO base pointer */
  106. #define HPM_BGPIO ((GPIO_Type *) HPM_BGPIO_BASE)
  107. /* Address of DM instances */
  108. /* DM base address */
  109. #define HPM_DM_BASE (0x30000000UL)
  110. #include "hpm_plic_regs.h"
  111. /* Address of PLIC instances */
  112. /* PLIC base address */
  113. #define HPM_PLIC_BASE (0xE4000000UL)
  114. /* PLIC base pointer */
  115. #define HPM_PLIC ((PLIC_Type *) HPM_PLIC_BASE)
  116. #include "hpm_mchtmr_regs.h"
  117. /* Address of MCHTMR instances */
  118. /* MCHTMR base address */
  119. #define HPM_MCHTMR_BASE (0xE6000000UL)
  120. /* MCHTMR base pointer */
  121. #define HPM_MCHTMR ((MCHTMR_Type *) HPM_MCHTMR_BASE)
  122. #include "hpm_plic_sw_regs.h"
  123. /* Address of PLICSW instances */
  124. /* PLICSW base address */
  125. #define HPM_PLICSW_BASE (0xE6400000UL)
  126. /* PLICSW base pointer */
  127. #define HPM_PLICSW ((PLIC_SW_Type *) HPM_PLICSW_BASE)
  128. #include "hpm_gpiom_regs.h"
  129. /* Address of GPIOM instances */
  130. /* GPIOM base address */
  131. #define HPM_GPIOM_BASE (0xF0008000UL)
  132. /* GPIOM base pointer */
  133. #define HPM_GPIOM ((GPIOM_Type *) HPM_GPIOM_BASE)
  134. #include "hpm_adc16_regs.h"
  135. /* Address of ADC16 instances */
  136. /* ADC0 base address */
  137. #define HPM_ADC0_BASE (0xF0010000UL)
  138. /* ADC0 base pointer */
  139. #define HPM_ADC0 ((ADC16_Type *) HPM_ADC0_BASE)
  140. /* ADC1 base address */
  141. #define HPM_ADC1_BASE (0xF0014000UL)
  142. /* ADC1 base pointer */
  143. #define HPM_ADC1 ((ADC16_Type *) HPM_ADC1_BASE)
  144. /* ADC2 base address */
  145. #define HPM_ADC2_BASE (0xF0018000UL)
  146. /* ADC2 base pointer */
  147. #define HPM_ADC2 ((ADC16_Type *) HPM_ADC2_BASE)
  148. #include "hpm_acmp_regs.h"
  149. /* Address of ACMP instances */
  150. /* ACMP base address */
  151. #define HPM_ACMP_BASE (0xF0020000UL)
  152. /* ACMP base pointer */
  153. #define HPM_ACMP ((ACMP_Type *) HPM_ACMP_BASE)
  154. #include "hpm_dac_regs.h"
  155. /* Address of DAC instances */
  156. /* DAC base address */
  157. #define HPM_DAC_BASE (0xF0024000UL)
  158. /* DAC base pointer */
  159. #define HPM_DAC ((DAC_Type *) HPM_DAC_BASE)
  160. #include "hpm_spi_regs.h"
  161. /* Address of SPI instances */
  162. /* SPI0 base address */
  163. #define HPM_SPI0_BASE (0xF0030000UL)
  164. /* SPI0 base pointer */
  165. #define HPM_SPI0 ((SPI_Type *) HPM_SPI0_BASE)
  166. /* SPI1 base address */
  167. #define HPM_SPI1_BASE (0xF0034000UL)
  168. /* SPI1 base pointer */
  169. #define HPM_SPI1 ((SPI_Type *) HPM_SPI1_BASE)
  170. /* SPI2 base address */
  171. #define HPM_SPI2_BASE (0xF0038000UL)
  172. /* SPI2 base pointer */
  173. #define HPM_SPI2 ((SPI_Type *) HPM_SPI2_BASE)
  174. /* SPI3 base address */
  175. #define HPM_SPI3_BASE (0xF003C000UL)
  176. /* SPI3 base pointer */
  177. #define HPM_SPI3 ((SPI_Type *) HPM_SPI3_BASE)
  178. #include "hpm_uart_regs.h"
  179. /* Address of UART instances */
  180. /* UART0 base address */
  181. #define HPM_UART0_BASE (0xF0040000UL)
  182. /* UART0 base pointer */
  183. #define HPM_UART0 ((UART_Type *) HPM_UART0_BASE)
  184. /* UART1 base address */
  185. #define HPM_UART1_BASE (0xF0044000UL)
  186. /* UART1 base pointer */
  187. #define HPM_UART1 ((UART_Type *) HPM_UART1_BASE)
  188. /* UART2 base address */
  189. #define HPM_UART2_BASE (0xF0048000UL)
  190. /* UART2 base pointer */
  191. #define HPM_UART2 ((UART_Type *) HPM_UART2_BASE)
  192. /* UART3 base address */
  193. #define HPM_UART3_BASE (0xF004C000UL)
  194. /* UART3 base pointer */
  195. #define HPM_UART3 ((UART_Type *) HPM_UART3_BASE)
  196. /* UART4 base address */
  197. #define HPM_UART4_BASE (0xF0050000UL)
  198. /* UART4 base pointer */
  199. #define HPM_UART4 ((UART_Type *) HPM_UART4_BASE)
  200. /* UART5 base address */
  201. #define HPM_UART5_BASE (0xF0054000UL)
  202. /* UART5 base pointer */
  203. #define HPM_UART5 ((UART_Type *) HPM_UART5_BASE)
  204. /* UART6 base address */
  205. #define HPM_UART6_BASE (0xF0058000UL)
  206. /* UART6 base pointer */
  207. #define HPM_UART6 ((UART_Type *) HPM_UART6_BASE)
  208. /* UART7 base address */
  209. #define HPM_UART7_BASE (0xF005C000UL)
  210. /* UART7 base pointer */
  211. #define HPM_UART7 ((UART_Type *) HPM_UART7_BASE)
  212. /* PUART base address */
  213. #define HPM_PUART_BASE (0xF40E4000UL)
  214. /* PUART base pointer */
  215. #define HPM_PUART ((UART_Type *) HPM_PUART_BASE)
  216. #include "hpm_can_regs.h"
  217. /* Address of CAN instances */
  218. /* CAN0 base address */
  219. #define HPM_CAN0_BASE (0xF0080000UL)
  220. /* CAN0 base pointer */
  221. #define HPM_CAN0 ((CAN_Type *) HPM_CAN0_BASE)
  222. /* CAN1 base address */
  223. #define HPM_CAN1_BASE (0xF0084000UL)
  224. /* CAN1 base pointer */
  225. #define HPM_CAN1 ((CAN_Type *) HPM_CAN1_BASE)
  226. #include "hpm_wdg_regs.h"
  227. /* Address of WDOG instances */
  228. /* WDG0 base address */
  229. #define HPM_WDG0_BASE (0xF0090000UL)
  230. /* WDG0 base pointer */
  231. #define HPM_WDG0 ((WDG_Type *) HPM_WDG0_BASE)
  232. /* WDG1 base address */
  233. #define HPM_WDG1_BASE (0xF0094000UL)
  234. /* WDG1 base pointer */
  235. #define HPM_WDG1 ((WDG_Type *) HPM_WDG1_BASE)
  236. /* PWDG base address */
  237. #define HPM_PWDG_BASE (0xF40E8000UL)
  238. /* PWDG base pointer */
  239. #define HPM_PWDG ((WDG_Type *) HPM_PWDG_BASE)
  240. #include "hpm_mbx_regs.h"
  241. /* Address of MBX instances */
  242. /* MBX0A base address */
  243. #define HPM_MBX0A_BASE (0xF00A0000UL)
  244. /* MBX0A base pointer */
  245. #define HPM_MBX0A ((MBX_Type *) HPM_MBX0A_BASE)
  246. /* MBX0B base address */
  247. #define HPM_MBX0B_BASE (0xF00A4000UL)
  248. /* MBX0B base pointer */
  249. #define HPM_MBX0B ((MBX_Type *) HPM_MBX0B_BASE)
  250. #include "hpm_ptpc_regs.h"
  251. /* Address of PTPC instances */
  252. /* PTPC base address */
  253. #define HPM_PTPC_BASE (0xF00B0000UL)
  254. /* PTPC base pointer */
  255. #define HPM_PTPC ((PTPC_Type *) HPM_PTPC_BASE)
  256. #include "hpm_dmamux_regs.h"
  257. /* Address of DMAMUX instances */
  258. /* DMAMUX base address */
  259. #define HPM_DMAMUX_BASE (0xF00C0000UL)
  260. /* DMAMUX base pointer */
  261. #define HPM_DMAMUX ((DMAMUX_Type *) HPM_DMAMUX_BASE)
  262. #include "hpm_dma_regs.h"
  263. /* Address of DMA instances */
  264. /* HDMA base address */
  265. #define HPM_HDMA_BASE (0xF00C4000UL)
  266. /* HDMA base pointer */
  267. #define HPM_HDMA ((DMA_Type *) HPM_HDMA_BASE)
  268. /* XDMA base address */
  269. #define HPM_XDMA_BASE (0xF3048000UL)
  270. /* XDMA base pointer */
  271. #define HPM_XDMA ((DMA_Type *) HPM_XDMA_BASE)
  272. #include "hpm_rng_regs.h"
  273. /* Address of RNG instances */
  274. /* RNG base address */
  275. #define HPM_RNG_BASE (0xF00C8000UL)
  276. /* RNG base pointer */
  277. #define HPM_RNG ((RNG_Type *) HPM_RNG_BASE)
  278. #include "hpm_keym_regs.h"
  279. /* Address of KEYM instances */
  280. /* KEYM base address */
  281. #define HPM_KEYM_BASE (0xF00CC000UL)
  282. /* KEYM base pointer */
  283. #define HPM_KEYM ((KEYM_Type *) HPM_KEYM_BASE)
  284. #include "hpm_i2s_regs.h"
  285. /* Address of I2S instances */
  286. /* I2S0 base address */
  287. #define HPM_I2S0_BASE (0xF0100000UL)
  288. /* I2S0 base pointer */
  289. #define HPM_I2S0 ((I2S_Type *) HPM_I2S0_BASE)
  290. /* I2S1 base address */
  291. #define HPM_I2S1_BASE (0xF0104000UL)
  292. /* I2S1 base pointer */
  293. #define HPM_I2S1 ((I2S_Type *) HPM_I2S1_BASE)
  294. #include "hpm_dao_regs.h"
  295. /* Address of DAO instances */
  296. /* DAO base address */
  297. #define HPM_DAO_BASE (0xF0110000UL)
  298. /* DAO base pointer */
  299. #define HPM_DAO ((DAO_Type *) HPM_DAO_BASE)
  300. #include "hpm_pdm_regs.h"
  301. /* Address of PDM instances */
  302. /* PDM base address */
  303. #define HPM_PDM_BASE (0xF0114000UL)
  304. /* PDM base pointer */
  305. #define HPM_PDM ((PDM_Type *) HPM_PDM_BASE)
  306. #include "hpm_pwm_regs.h"
  307. /* Address of PWM instances */
  308. /* PWM0 base address */
  309. #define HPM_PWM0_BASE (0xF0200000UL)
  310. /* PWM0 base pointer */
  311. #define HPM_PWM0 ((PWM_Type *) HPM_PWM0_BASE)
  312. /* PWM1 base address */
  313. #define HPM_PWM1_BASE (0xF0210000UL)
  314. /* PWM1 base pointer */
  315. #define HPM_PWM1 ((PWM_Type *) HPM_PWM1_BASE)
  316. #include "hpm_hall_regs.h"
  317. /* Address of HALL instances */
  318. /* HALL0 base address */
  319. #define HPM_HALL0_BASE (0xF0204000UL)
  320. /* HALL0 base pointer */
  321. #define HPM_HALL0 ((HALL_Type *) HPM_HALL0_BASE)
  322. /* HALL1 base address */
  323. #define HPM_HALL1_BASE (0xF0214000UL)
  324. /* HALL1 base pointer */
  325. #define HPM_HALL1 ((HALL_Type *) HPM_HALL1_BASE)
  326. #include "hpm_qei_regs.h"
  327. /* Address of QEI instances */
  328. /* QEI0 base address */
  329. #define HPM_QEI0_BASE (0xF0208000UL)
  330. /* QEI0 base pointer */
  331. #define HPM_QEI0 ((QEI_Type *) HPM_QEI0_BASE)
  332. /* QEI1 base address */
  333. #define HPM_QEI1_BASE (0xF0218000UL)
  334. /* QEI1 base pointer */
  335. #define HPM_QEI1 ((QEI_Type *) HPM_QEI1_BASE)
  336. #include "hpm_trgm_regs.h"
  337. /* Address of TRGM instances */
  338. /* TRGM0 base address */
  339. #define HPM_TRGM0_BASE (0xF020C000UL)
  340. /* TRGM0 base pointer */
  341. #define HPM_TRGM0 ((TRGM_Type *) HPM_TRGM0_BASE)
  342. /* TRGM1 base address */
  343. #define HPM_TRGM1_BASE (0xF021C000UL)
  344. /* TRGM1 base pointer */
  345. #define HPM_TRGM1 ((TRGM_Type *) HPM_TRGM1_BASE)
  346. #include "hpm_synt_regs.h"
  347. /* Address of SYNT instances */
  348. /* SYNT base address */
  349. #define HPM_SYNT_BASE (0xF0240000UL)
  350. /* SYNT base pointer */
  351. #define HPM_SYNT ((SYNT_Type *) HPM_SYNT_BASE)
  352. #include "hpm_enet_regs.h"
  353. /* Address of ENET instances */
  354. /* ENET0 base address */
  355. #define HPM_ENET0_BASE (0xF2000000UL)
  356. /* ENET0 base pointer */
  357. #define HPM_ENET0 ((ENET_Type *) HPM_ENET0_BASE)
  358. #include "hpm_gptmr_regs.h"
  359. /* Address of TMR instances */
  360. /* NTMR0 base address */
  361. #define HPM_NTMR0_BASE (0xF2010000UL)
  362. /* NTMR0 base pointer */
  363. #define HPM_NTMR0 ((GPTMR_Type *) HPM_NTMR0_BASE)
  364. /* GPTMR0 base address */
  365. #define HPM_GPTMR0_BASE (0xF3000000UL)
  366. /* GPTMR0 base pointer */
  367. #define HPM_GPTMR0 ((GPTMR_Type *) HPM_GPTMR0_BASE)
  368. /* GPTMR1 base address */
  369. #define HPM_GPTMR1_BASE (0xF3004000UL)
  370. /* GPTMR1 base pointer */
  371. #define HPM_GPTMR1 ((GPTMR_Type *) HPM_GPTMR1_BASE)
  372. /* GPTMR2 base address */
  373. #define HPM_GPTMR2_BASE (0xF3008000UL)
  374. /* GPTMR2 base pointer */
  375. #define HPM_GPTMR2 ((GPTMR_Type *) HPM_GPTMR2_BASE)
  376. /* GPTMR3 base address */
  377. #define HPM_GPTMR3_BASE (0xF300C000UL)
  378. /* GPTMR3 base pointer */
  379. #define HPM_GPTMR3 ((GPTMR_Type *) HPM_GPTMR3_BASE)
  380. /* PTMR base address */
  381. #define HPM_PTMR_BASE (0xF40E0000UL)
  382. /* PTMR base pointer */
  383. #define HPM_PTMR ((GPTMR_Type *) HPM_PTMR_BASE)
  384. #include "hpm_usb_regs.h"
  385. /* Address of USB instances */
  386. /* USB0 base address */
  387. #define HPM_USB0_BASE (0xF2020000UL)
  388. /* USB0 base pointer */
  389. #define HPM_USB0 ((USB_Type *) HPM_USB0_BASE)
  390. #include "hpm_sdxc_regs.h"
  391. /* Address of SDXC instances */
  392. /* SDXC0 base address */
  393. #define HPM_SDXC0_BASE (0xF2030000UL)
  394. /* SDXC0 base pointer */
  395. #define HPM_SDXC0 ((SDXC_Type *) HPM_SDXC0_BASE)
  396. #include "hpm_i2c_regs.h"
  397. /* Address of I2C instances */
  398. /* I2C0 base address */
  399. #define HPM_I2C0_BASE (0xF3020000UL)
  400. /* I2C0 base pointer */
  401. #define HPM_I2C0 ((I2C_Type *) HPM_I2C0_BASE)
  402. /* I2C1 base address */
  403. #define HPM_I2C1_BASE (0xF3024000UL)
  404. /* I2C1 base pointer */
  405. #define HPM_I2C1 ((I2C_Type *) HPM_I2C1_BASE)
  406. /* I2C2 base address */
  407. #define HPM_I2C2_BASE (0xF3028000UL)
  408. /* I2C2 base pointer */
  409. #define HPM_I2C2 ((I2C_Type *) HPM_I2C2_BASE)
  410. /* I2C3 base address */
  411. #define HPM_I2C3_BASE (0xF302C000UL)
  412. /* I2C3 base pointer */
  413. #define HPM_I2C3 ((I2C_Type *) HPM_I2C3_BASE)
  414. #include "hpm_sdp_regs.h"
  415. /* Address of SDP instances */
  416. /* SDP base address */
  417. #define HPM_SDP_BASE (0xF304C000UL)
  418. /* SDP base pointer */
  419. #define HPM_SDP ((SDP_Type *) HPM_SDP_BASE)
  420. #include "hpm_femc_regs.h"
  421. /* Address of FEMC instances */
  422. /* FEMC base address */
  423. #define HPM_FEMC_BASE (0xF3050000UL)
  424. /* FEMC base pointer */
  425. #define HPM_FEMC ((FEMC_Type *) HPM_FEMC_BASE)
  426. /* Address of ROMC instances */
  427. /* ROMC base address */
  428. #define HPM_ROMC_BASE (0xF3054000UL)
  429. #include "hpm_ffa_regs.h"
  430. /* Address of FFA instances */
  431. /* FFA base address */
  432. #define HPM_FFA_BASE (0xF3058000UL)
  433. /* FFA base pointer */
  434. #define HPM_FFA ((FFA_Type *) HPM_FFA_BASE)
  435. #include "hpm_sysctl_regs.h"
  436. /* Address of SYSCTL instances */
  437. /* SYSCTL base address */
  438. #define HPM_SYSCTL_BASE (0xF4000000UL)
  439. /* SYSCTL base pointer */
  440. #define HPM_SYSCTL ((SYSCTL_Type *) HPM_SYSCTL_BASE)
  441. #include "hpm_ioc_regs.h"
  442. /* Address of IOC instances */
  443. /* IOC base address */
  444. #define HPM_IOC_BASE (0xF4040000UL)
  445. /* IOC base pointer */
  446. #define HPM_IOC ((IOC_Type *) HPM_IOC_BASE)
  447. /* PIOC base address */
  448. #define HPM_PIOC_BASE (0xF40D8000UL)
  449. /* PIOC base pointer */
  450. #define HPM_PIOC ((IOC_Type *) HPM_PIOC_BASE)
  451. /* BIOC base address */
  452. #define HPM_BIOC_BASE (0xF5010000UL)
  453. /* BIOC base pointer */
  454. #define HPM_BIOC ((IOC_Type *) HPM_BIOC_BASE)
  455. #include "hpm_otp_regs.h"
  456. /* Address of OTP instances */
  457. /* OTPSHW base address */
  458. #define HPM_OTPSHW_BASE (0xF4080000UL)
  459. /* OTPSHW base pointer */
  460. #define HPM_OTPSHW ((OTP_Type *) HPM_OTPSHW_BASE)
  461. /* OTP base address */
  462. #define HPM_OTP_BASE (0xF40C8000UL)
  463. /* OTP base pointer */
  464. #define HPM_OTP ((OTP_Type *) HPM_OTP_BASE)
  465. #include "hpm_ppor_regs.h"
  466. /* Address of PPOR instances */
  467. /* PPOR base address */
  468. #define HPM_PPOR_BASE (0xF40C0000UL)
  469. /* PPOR base pointer */
  470. #define HPM_PPOR ((PPOR_Type *) HPM_PPOR_BASE)
  471. #include "hpm_pcfg_regs.h"
  472. /* Address of PCFG instances */
  473. /* PCFG base address */
  474. #define HPM_PCFG_BASE (0xF40C4000UL)
  475. /* PCFG base pointer */
  476. #define HPM_PCFG ((PCFG_Type *) HPM_PCFG_BASE)
  477. #include "hpm_psec_regs.h"
  478. /* Address of PSEC instances */
  479. /* PSEC base address */
  480. #define HPM_PSEC_BASE (0xF40CC000UL)
  481. /* PSEC base pointer */
  482. #define HPM_PSEC ((PSEC_Type *) HPM_PSEC_BASE)
  483. #include "hpm_pmon_regs.h"
  484. /* Address of PMON instances */
  485. /* PMON base address */
  486. #define HPM_PMON_BASE (0xF40D0000UL)
  487. /* PMON base pointer */
  488. #define HPM_PMON ((PMON_Type *) HPM_PMON_BASE)
  489. #include "hpm_pgpr_regs.h"
  490. /* Address of PGPR instances */
  491. /* PGPR base address */
  492. #define HPM_PGPR_BASE (0xF40D4000UL)
  493. /* PGPR base pointer */
  494. #define HPM_PGPR ((PGPR_Type *) HPM_PGPR_BASE)
  495. #include "hpm_pllctlv2_regs.h"
  496. /* Address of PLLCTLV2 instances */
  497. /* PLLCTLV2 base address */
  498. #define HPM_PLLCTLV2_BASE (0xF4100000UL)
  499. /* PLLCTLV2 base pointer */
  500. #define HPM_PLLCTLV2 ((PLLCTLV2_Type *) HPM_PLLCTLV2_BASE)
  501. #include "hpm_tsns_regs.h"
  502. /* Address of TSNS instances */
  503. /* TSNS base address */
  504. #define HPM_TSNS_BASE (0xF4104000UL)
  505. /* TSNS base pointer */
  506. #define HPM_TSNS ((TSNS_Type *) HPM_TSNS_BASE)
  507. /* Address of BACC instances */
  508. /* BACC base address */
  509. #define HPM_BACC_BASE (0xF5000000UL)
  510. #include "hpm_bpor_regs.h"
  511. /* Address of BPOR instances */
  512. /* BPOR base address */
  513. #define HPM_BPOR_BASE (0xF5004000UL)
  514. /* BPOR base pointer */
  515. #define HPM_BPOR ((BPOR_Type *) HPM_BPOR_BASE)
  516. #include "hpm_bcfg_regs.h"
  517. /* Address of BCFG instances */
  518. /* BCFG base address */
  519. #define HPM_BCFG_BASE (0xF5008000UL)
  520. /* BCFG base pointer */
  521. #define HPM_BCFG ((BCFG_Type *) HPM_BCFG_BASE)
  522. #include "hpm_butn_regs.h"
  523. /* Address of BUTN instances */
  524. /* BUTN base address */
  525. #define HPM_BUTN_BASE (0xF500C000UL)
  526. /* BUTN base pointer */
  527. #define HPM_BUTN ((BUTN_Type *) HPM_BUTN_BASE)
  528. #include "hpm_bgpr_regs.h"
  529. /* Address of BGPR instances */
  530. /* BGPR base address */
  531. #define HPM_BGPR_BASE (0xF5018000UL)
  532. /* BGPR base pointer */
  533. #define HPM_BGPR ((BGPR_Type *) HPM_BGPR_BASE)
  534. #include "hpm_bsec_regs.h"
  535. /* Address of BSEC instances */
  536. /* BSEC base address */
  537. #define HPM_BSEC_BASE (0xF5040000UL)
  538. /* BSEC base pointer */
  539. #define HPM_BSEC ((BSEC_Type *) HPM_BSEC_BASE)
  540. #include "hpm_rtc_regs.h"
  541. /* Address of RTC instances */
  542. /* RTC base address */
  543. #define HPM_RTC_BASE (0xF5044000UL)
  544. /* RTC base pointer */
  545. #define HPM_RTC ((RTC_Type *) HPM_RTC_BASE)
  546. #include "hpm_bkey_regs.h"
  547. /* Address of BKEY instances */
  548. /* BKEY base address */
  549. #define HPM_BKEY_BASE (0xF5048000UL)
  550. /* BKEY base pointer */
  551. #define HPM_BKEY ((BKEY_Type *) HPM_BKEY_BASE)
  552. #include "hpm_bmon_regs.h"
  553. /* Address of BMON instances */
  554. /* BMON base address */
  555. #define HPM_BMON_BASE (0xF504C000UL)
  556. /* BMON base pointer */
  557. #define HPM_BMON ((BMON_Type *) HPM_BMON_BASE)
  558. #include "hpm_tamp_regs.h"
  559. /* Address of TAMP instances */
  560. /* TAMP base address */
  561. #define HPM_TAMP_BASE (0xF5050000UL)
  562. /* TAMP base pointer */
  563. #define HPM_TAMP ((TAMP_Type *) HPM_TAMP_BASE)
  564. #include "hpm_mono_regs.h"
  565. /* Address of MONO instances */
  566. /* MONO base address */
  567. #define HPM_MONO_BASE (0xF5054000UL)
  568. /* MONO base pointer */
  569. #define HPM_MONO ((MONO_Type *) HPM_MONO_BASE)
  570. #include "riscv/riscv_core.h"
  571. #include "hpm_csr_regs.h"
  572. #include "hpm_interrupt.h"
  573. #include "hpm_misc.h"
  574. #include "hpm_dmamux_src.h"
  575. #include "hpm_trgmmux_src.h"
  576. #include "hpm_iomux.h"
  577. #include "hpm_pmic_iomux.h"
  578. #include "hpm_batt_iomux.h"
  579. #endif /* HPM_SOC_H */