hpm_soc.h 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852
  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_E 5 /* GPIO0_E IRQ */
  15. #define IRQn_GPIO0_F 6 /* GPIO0_F IRQ */
  16. #define IRQn_GPIO0_X 7 /* GPIO0_X IRQ */
  17. #define IRQn_GPIO0_Y 8 /* GPIO0_Y IRQ */
  18. #define IRQn_GPIO0_Z 9 /* GPIO0_Z IRQ */
  19. #define IRQn_GPIO1_A 10 /* GPIO1_A IRQ */
  20. #define IRQn_GPIO1_B 11 /* GPIO1_B IRQ */
  21. #define IRQn_GPIO1_C 12 /* GPIO1_C IRQ */
  22. #define IRQn_GPIO1_D 13 /* GPIO1_D IRQ */
  23. #define IRQn_GPIO1_E 14 /* GPIO1_E IRQ */
  24. #define IRQn_GPIO1_F 15 /* GPIO1_F IRQ */
  25. #define IRQn_GPIO1_X 16 /* GPIO1_X IRQ */
  26. #define IRQn_GPIO1_Y 17 /* GPIO1_Y IRQ */
  27. #define IRQn_GPIO1_Z 18 /* GPIO1_Z IRQ */
  28. #define IRQn_ADC0 19 /* ADC0 IRQ */
  29. #define IRQn_ADC1 20 /* ADC1 IRQ */
  30. #define IRQn_ADC2 21 /* ADC2 IRQ */
  31. #define IRQn_ADC3 22 /* ADC3 IRQ */
  32. #define IRQn_ACMP_0 23 /* ACMP[0] IRQ */
  33. #define IRQn_ACMP_1 24 /* ACMP[1] IRQ */
  34. #define IRQn_ACMP_2 25 /* ACMP[2] IRQ */
  35. #define IRQn_ACMP_3 26 /* ACMP[3] IRQ */
  36. #define IRQn_SPI0 27 /* SPI0 IRQ */
  37. #define IRQn_SPI1 28 /* SPI1 IRQ */
  38. #define IRQn_SPI2 29 /* SPI2 IRQ */
  39. #define IRQn_SPI3 30 /* SPI3 IRQ */
  40. #define IRQn_UART0 31 /* UART0 IRQ */
  41. #define IRQn_UART1 32 /* UART1 IRQ */
  42. #define IRQn_UART2 33 /* UART2 IRQ */
  43. #define IRQn_UART3 34 /* UART3 IRQ */
  44. #define IRQn_UART4 35 /* UART4 IRQ */
  45. #define IRQn_UART5 36 /* UART5 IRQ */
  46. #define IRQn_UART6 37 /* UART6 IRQ */
  47. #define IRQn_UART7 38 /* UART7 IRQ */
  48. #define IRQn_UART8 39 /* UART8 IRQ */
  49. #define IRQn_UART9 40 /* UART9 IRQ */
  50. #define IRQn_UART10 41 /* UART10 IRQ */
  51. #define IRQn_UART11 42 /* UART11 IRQ */
  52. #define IRQn_UART12 43 /* UART12 IRQ */
  53. #define IRQn_UART13 44 /* UART13 IRQ */
  54. #define IRQn_UART14 45 /* UART14 IRQ */
  55. #define IRQn_UART15 46 /* UART15 IRQ */
  56. #define IRQn_CAN0 47 /* CAN0 IRQ */
  57. #define IRQn_CAN1 48 /* CAN1 IRQ */
  58. #define IRQn_CAN2 49 /* CAN2 IRQ */
  59. #define IRQn_CAN3 50 /* CAN3 IRQ */
  60. #define IRQn_PTPC 51 /* PTPC IRQ */
  61. #define IRQn_WDG0 52 /* WDG0 IRQ */
  62. #define IRQn_WDG1 53 /* WDG1 IRQ */
  63. #define IRQn_WDG2 54 /* WDG2 IRQ */
  64. #define IRQn_WDG3 55 /* WDG3 IRQ */
  65. #define IRQn_MBX0A 56 /* MBX0A IRQ */
  66. #define IRQn_MBX0B 57 /* MBX0B IRQ */
  67. #define IRQn_MBX1A 58 /* MBX1A IRQ */
  68. #define IRQn_MBX1B 59 /* MBX1B IRQ */
  69. #define IRQn_GPTMR0 60 /* GPTMR0 IRQ */
  70. #define IRQn_GPTMR1 61 /* GPTMR1 IRQ */
  71. #define IRQn_GPTMR2 62 /* GPTMR2 IRQ */
  72. #define IRQn_GPTMR3 63 /* GPTMR3 IRQ */
  73. #define IRQn_GPTMR4 64 /* GPTMR4 IRQ */
  74. #define IRQn_GPTMR5 65 /* GPTMR5 IRQ */
  75. #define IRQn_GPTMR6 66 /* GPTMR6 IRQ */
  76. #define IRQn_GPTMR7 67 /* GPTMR7 IRQ */
  77. #define IRQn_I2C0 68 /* I2C0 IRQ */
  78. #define IRQn_I2C1 69 /* I2C1 IRQ */
  79. #define IRQn_I2C2 70 /* I2C2 IRQ */
  80. #define IRQn_I2C3 71 /* I2C3 IRQ */
  81. #define IRQn_PWM0 72 /* PWM0 IRQ */
  82. #define IRQn_HALL0 73 /* HALL0 IRQ */
  83. #define IRQn_QEI0 74 /* QEI0 IRQ */
  84. #define IRQn_PWM1 75 /* PWM1 IRQ */
  85. #define IRQn_HALL1 76 /* HALL1 IRQ */
  86. #define IRQn_QEI1 77 /* QEI1 IRQ */
  87. #define IRQn_PWM2 78 /* PWM2 IRQ */
  88. #define IRQn_HALL2 79 /* HALL2 IRQ */
  89. #define IRQn_QEI2 80 /* QEI2 IRQ */
  90. #define IRQn_PWM3 81 /* PWM3 IRQ */
  91. #define IRQn_HALL3 82 /* HALL3 IRQ */
  92. #define IRQn_QEI3 83 /* QEI3 IRQ */
  93. #define IRQn_SDP 84 /* SDP IRQ */
  94. #define IRQn_XPI0 85 /* XPI0 IRQ */
  95. #define IRQn_XPI1 86 /* XPI1 IRQ */
  96. #define IRQn_XDMA 87 /* XDMA IRQ */
  97. #define IRQn_HDMA 88 /* HDMA IRQ */
  98. #define IRQn_FEMC 89 /* FEMC IRQ */
  99. #define IRQn_RNG 90 /* RNG IRQ */
  100. #define IRQn_I2S0 91 /* I2S0 IRQ */
  101. #define IRQn_I2S1 92 /* I2S1 IRQ */
  102. #define IRQn_I2S2 93 /* I2S2 IRQ */
  103. #define IRQn_I2S3 94 /* I2S3 IRQ */
  104. #define IRQn_DAO 95 /* DAO IRQ */
  105. #define IRQn_PDM 96 /* PDM IRQ */
  106. #define IRQn_CAM0 97 /* CAM0 IRQ */
  107. #define IRQn_CAM1 98 /* CAM1 IRQ */
  108. #define IRQn_LCDC_D0 99 /* LCDC_D0 IRQ */
  109. #define IRQn_LCDC_D1 100 /* LCDC_D1 IRQ */
  110. #define IRQn_PDMA_D0 101 /* PDMA_D0 IRQ */
  111. #define IRQn_PDMA_D1 102 /* PDMA_D1 IRQ */
  112. #define IRQn_JPEG 103 /* JPEG IRQ */
  113. #define IRQn_NTMR0 104 /* NTMR0 IRQ */
  114. #define IRQn_NTMR1 105 /* NTMR1 IRQ */
  115. #define IRQn_USB0 106 /* USB0 IRQ */
  116. #define IRQn_USB1 107 /* USB1 IRQ */
  117. #define IRQn_ENET0 108 /* ENET0 IRQ */
  118. #define IRQn_ENET1 109 /* ENET1 IRQ */
  119. #define IRQn_SDXC0 110 /* SDXC0 IRQ */
  120. #define IRQn_SDXC1 111 /* SDXC1 IRQ */
  121. #define IRQn_PSEC 112 /* PSEC IRQ */
  122. #define IRQn_PGPIO 113 /* PGPIO IRQ */
  123. #define IRQn_PWDG 114 /* PWDG IRQ */
  124. #define IRQn_PTMR 115 /* PTMR IRQ */
  125. #define IRQn_PUART 116 /* PUART IRQ */
  126. #define IRQn_VAD 117 /* VAD IRQ */
  127. #define IRQn_FUSE 118 /* FUSE IRQ */
  128. #define IRQn_SECMON 119 /* SECMON IRQ */
  129. #define IRQn_RTC 120 /* RTC IRQ */
  130. #define IRQn_BUTN 121 /* BUTN IRQ */
  131. #define IRQn_BGPIO 122 /* BGPIO IRQ */
  132. #define IRQn_BVIO 123 /* BVIO IRQ */
  133. #define IRQn_BROWNOUT 124 /* BROWNOUT IRQ */
  134. #define IRQn_SYSCTL 125 /* SYSCTL IRQ */
  135. #define IRQn_DEBUG_0 126 /* DEBUG[0] IRQ */
  136. #define IRQn_DEBUG_1 127 /* DEBUG[1] IRQ */
  137. #include "hpm_common.h"
  138. #include "hpm_gpio_regs.h"
  139. /* Address of GPIO instances */
  140. /* FGPIO base address */
  141. #define HPM_FGPIO_BASE (0xC0000UL)
  142. /* FGPIO base pointer */
  143. #define HPM_FGPIO ((GPIO_Type *) HPM_FGPIO_BASE)
  144. /* GPIO0 base address */
  145. #define HPM_GPIO0_BASE (0xF0000000UL)
  146. /* GPIO0 base pointer */
  147. #define HPM_GPIO0 ((GPIO_Type *) HPM_GPIO0_BASE)
  148. /* GPIO1 base address */
  149. #define HPM_GPIO1_BASE (0xF0004000UL)
  150. /* GPIO1 base pointer */
  151. #define HPM_GPIO1 ((GPIO_Type *) HPM_GPIO1_BASE)
  152. /* PGPIO base address */
  153. #define HPM_PGPIO_BASE (0xF40DC000UL)
  154. /* PGPIO base pointer */
  155. #define HPM_PGPIO ((GPIO_Type *) HPM_PGPIO_BASE)
  156. /* BGPIO base address */
  157. #define HPM_BGPIO_BASE (0xF5014000UL)
  158. /* BGPIO base pointer */
  159. #define HPM_BGPIO ((GPIO_Type *) HPM_BGPIO_BASE)
  160. /* Address of DM instances */
  161. /* DM base address */
  162. #define HPM_DM_BASE (0x30000000UL)
  163. #include "hpm_plic_regs.h"
  164. /* Address of PLIC instances */
  165. /* PLIC base address */
  166. #define HPM_PLIC_BASE (0xE4000000UL)
  167. /* PLIC base pointer */
  168. #define HPM_PLIC ((PLIC_Type *) HPM_PLIC_BASE)
  169. #include "hpm_mchtmr_regs.h"
  170. /* Address of MCHTMR instances */
  171. /* MCHTMR base address */
  172. #define HPM_MCHTMR_BASE (0xE6000000UL)
  173. /* MCHTMR base pointer */
  174. #define HPM_MCHTMR ((MCHTMR_Type *) HPM_MCHTMR_BASE)
  175. #include "hpm_plic_sw_regs.h"
  176. /* Address of PLICSW instances */
  177. /* PLICSW base address */
  178. #define HPM_PLICSW_BASE (0xE6400000UL)
  179. /* PLICSW base pointer */
  180. #define HPM_PLICSW ((PLIC_SW_Type *) HPM_PLICSW_BASE)
  181. #include "hpm_gpiom_regs.h"
  182. /* Address of GPIOM instances */
  183. /* GPIOM base address */
  184. #define HPM_GPIOM_BASE (0xF0008000UL)
  185. /* GPIOM base pointer */
  186. #define HPM_GPIOM ((GPIOM_Type *) HPM_GPIOM_BASE)
  187. #include "hpm_adc12_regs.h"
  188. /* Address of ADC12 instances */
  189. /* ADC0 base address */
  190. #define HPM_ADC0_BASE (0xF0010000UL)
  191. /* ADC0 base pointer */
  192. #define HPM_ADC0 ((ADC12_Type *) HPM_ADC0_BASE)
  193. /* ADC1 base address */
  194. #define HPM_ADC1_BASE (0xF0014000UL)
  195. /* ADC1 base pointer */
  196. #define HPM_ADC1 ((ADC12_Type *) HPM_ADC1_BASE)
  197. /* ADC2 base address */
  198. #define HPM_ADC2_BASE (0xF0018000UL)
  199. /* ADC2 base pointer */
  200. #define HPM_ADC2 ((ADC12_Type *) HPM_ADC2_BASE)
  201. #include "hpm_adc16_regs.h"
  202. /* Address of ADC16 instances */
  203. /* ADC3 base address */
  204. #define HPM_ADC3_BASE (0xF001C000UL)
  205. /* ADC3 base pointer */
  206. #define HPM_ADC3 ((ADC16_Type *) HPM_ADC3_BASE)
  207. #include "hpm_acmp_regs.h"
  208. /* Address of ACMP instances */
  209. /* ACMP base address */
  210. #define HPM_ACMP_BASE (0xF0020000UL)
  211. /* ACMP base pointer */
  212. #define HPM_ACMP ((ACMP_Type *) HPM_ACMP_BASE)
  213. #include "hpm_spi_regs.h"
  214. /* Address of SPI instances */
  215. /* SPI0 base address */
  216. #define HPM_SPI0_BASE (0xF0030000UL)
  217. /* SPI0 base pointer */
  218. #define HPM_SPI0 ((SPI_Type *) HPM_SPI0_BASE)
  219. /* SPI1 base address */
  220. #define HPM_SPI1_BASE (0xF0034000UL)
  221. /* SPI1 base pointer */
  222. #define HPM_SPI1 ((SPI_Type *) HPM_SPI1_BASE)
  223. /* SPI2 base address */
  224. #define HPM_SPI2_BASE (0xF0038000UL)
  225. /* SPI2 base pointer */
  226. #define HPM_SPI2 ((SPI_Type *) HPM_SPI2_BASE)
  227. /* SPI3 base address */
  228. #define HPM_SPI3_BASE (0xF003C000UL)
  229. /* SPI3 base pointer */
  230. #define HPM_SPI3 ((SPI_Type *) HPM_SPI3_BASE)
  231. #include "hpm_uart_regs.h"
  232. /* Address of UART instances */
  233. /* UART0 base address */
  234. #define HPM_UART0_BASE (0xF0040000UL)
  235. /* UART0 base pointer */
  236. #define HPM_UART0 ((UART_Type *) HPM_UART0_BASE)
  237. /* UART1 base address */
  238. #define HPM_UART1_BASE (0xF0044000UL)
  239. /* UART1 base pointer */
  240. #define HPM_UART1 ((UART_Type *) HPM_UART1_BASE)
  241. /* UART2 base address */
  242. #define HPM_UART2_BASE (0xF0048000UL)
  243. /* UART2 base pointer */
  244. #define HPM_UART2 ((UART_Type *) HPM_UART2_BASE)
  245. /* UART3 base address */
  246. #define HPM_UART3_BASE (0xF004C000UL)
  247. /* UART3 base pointer */
  248. #define HPM_UART3 ((UART_Type *) HPM_UART3_BASE)
  249. /* UART4 base address */
  250. #define HPM_UART4_BASE (0xF0050000UL)
  251. /* UART4 base pointer */
  252. #define HPM_UART4 ((UART_Type *) HPM_UART4_BASE)
  253. /* UART5 base address */
  254. #define HPM_UART5_BASE (0xF0054000UL)
  255. /* UART5 base pointer */
  256. #define HPM_UART5 ((UART_Type *) HPM_UART5_BASE)
  257. /* UART6 base address */
  258. #define HPM_UART6_BASE (0xF0058000UL)
  259. /* UART6 base pointer */
  260. #define HPM_UART6 ((UART_Type *) HPM_UART6_BASE)
  261. /* UART7 base address */
  262. #define HPM_UART7_BASE (0xF005C000UL)
  263. /* UART7 base pointer */
  264. #define HPM_UART7 ((UART_Type *) HPM_UART7_BASE)
  265. /* UART8 base address */
  266. #define HPM_UART8_BASE (0xF0060000UL)
  267. /* UART8 base pointer */
  268. #define HPM_UART8 ((UART_Type *) HPM_UART8_BASE)
  269. /* UART9 base address */
  270. #define HPM_UART9_BASE (0xF0064000UL)
  271. /* UART9 base pointer */
  272. #define HPM_UART9 ((UART_Type *) HPM_UART9_BASE)
  273. /* UART10 base address */
  274. #define HPM_UART10_BASE (0xF0068000UL)
  275. /* UART10 base pointer */
  276. #define HPM_UART10 ((UART_Type *) HPM_UART10_BASE)
  277. /* UART11 base address */
  278. #define HPM_UART11_BASE (0xF006C000UL)
  279. /* UART11 base pointer */
  280. #define HPM_UART11 ((UART_Type *) HPM_UART11_BASE)
  281. /* UART12 base address */
  282. #define HPM_UART12_BASE (0xF0070000UL)
  283. /* UART12 base pointer */
  284. #define HPM_UART12 ((UART_Type *) HPM_UART12_BASE)
  285. /* UART13 base address */
  286. #define HPM_UART13_BASE (0xF0074000UL)
  287. /* UART13 base pointer */
  288. #define HPM_UART13 ((UART_Type *) HPM_UART13_BASE)
  289. /* UART14 base address */
  290. #define HPM_UART14_BASE (0xF0078000UL)
  291. /* UART14 base pointer */
  292. #define HPM_UART14 ((UART_Type *) HPM_UART14_BASE)
  293. /* UART15 base address */
  294. #define HPM_UART15_BASE (0xF007C000UL)
  295. /* UART15 base pointer */
  296. #define HPM_UART15 ((UART_Type *) HPM_UART15_BASE)
  297. /* PUART base address */
  298. #define HPM_PUART_BASE (0xF40E4000UL)
  299. /* PUART base pointer */
  300. #define HPM_PUART ((UART_Type *) HPM_PUART_BASE)
  301. #include "hpm_can_regs.h"
  302. /* Address of CAN instances */
  303. /* CAN0 base address */
  304. #define HPM_CAN0_BASE (0xF0080000UL)
  305. /* CAN0 base pointer */
  306. #define HPM_CAN0 ((CAN_Type *) HPM_CAN0_BASE)
  307. /* CAN1 base address */
  308. #define HPM_CAN1_BASE (0xF0084000UL)
  309. /* CAN1 base pointer */
  310. #define HPM_CAN1 ((CAN_Type *) HPM_CAN1_BASE)
  311. /* CAN2 base address */
  312. #define HPM_CAN2_BASE (0xF0088000UL)
  313. /* CAN2 base pointer */
  314. #define HPM_CAN2 ((CAN_Type *) HPM_CAN2_BASE)
  315. /* CAN3 base address */
  316. #define HPM_CAN3_BASE (0xF008C000UL)
  317. /* CAN3 base pointer */
  318. #define HPM_CAN3 ((CAN_Type *) HPM_CAN3_BASE)
  319. #include "hpm_wdg_regs.h"
  320. /* Address of WDOG instances */
  321. /* WDG0 base address */
  322. #define HPM_WDG0_BASE (0xF0090000UL)
  323. /* WDG0 base pointer */
  324. #define HPM_WDG0 ((WDG_Type *) HPM_WDG0_BASE)
  325. /* WDG1 base address */
  326. #define HPM_WDG1_BASE (0xF0094000UL)
  327. /* WDG1 base pointer */
  328. #define HPM_WDG1 ((WDG_Type *) HPM_WDG1_BASE)
  329. /* WDG2 base address */
  330. #define HPM_WDG2_BASE (0xF0098000UL)
  331. /* WDG2 base pointer */
  332. #define HPM_WDG2 ((WDG_Type *) HPM_WDG2_BASE)
  333. /* WDG3 base address */
  334. #define HPM_WDG3_BASE (0xF009C000UL)
  335. /* WDG3 base pointer */
  336. #define HPM_WDG3 ((WDG_Type *) HPM_WDG3_BASE)
  337. /* PWDG base address */
  338. #define HPM_PWDG_BASE (0xF40E8000UL)
  339. /* PWDG base pointer */
  340. #define HPM_PWDG ((WDG_Type *) HPM_PWDG_BASE)
  341. #include "hpm_mbx_regs.h"
  342. /* Address of MBX instances */
  343. /* MBX0A base address */
  344. #define HPM_MBX0A_BASE (0xF00A0000UL)
  345. /* MBX0A base pointer */
  346. #define HPM_MBX0A ((MBX_Type *) HPM_MBX0A_BASE)
  347. /* MBX0B base address */
  348. #define HPM_MBX0B_BASE (0xF00A4000UL)
  349. /* MBX0B base pointer */
  350. #define HPM_MBX0B ((MBX_Type *) HPM_MBX0B_BASE)
  351. /* MBX1A base address */
  352. #define HPM_MBX1A_BASE (0xF00A8000UL)
  353. /* MBX1A base pointer */
  354. #define HPM_MBX1A ((MBX_Type *) HPM_MBX1A_BASE)
  355. /* MBX1B base address */
  356. #define HPM_MBX1B_BASE (0xF00AC000UL)
  357. /* MBX1B base pointer */
  358. #define HPM_MBX1B ((MBX_Type *) HPM_MBX1B_BASE)
  359. #include "hpm_ptpc_regs.h"
  360. /* Address of PTPC instances */
  361. /* PTPC base address */
  362. #define HPM_PTPC_BASE (0xF00B0000UL)
  363. /* PTPC base pointer */
  364. #define HPM_PTPC ((PTPC_Type *) HPM_PTPC_BASE)
  365. #include "hpm_dmamux_regs.h"
  366. /* Address of DMAMUX instances */
  367. /* DMAMUX base address */
  368. #define HPM_DMAMUX_BASE (0xF00C0000UL)
  369. /* DMAMUX base pointer */
  370. #define HPM_DMAMUX ((DMAMUX_Type *) HPM_DMAMUX_BASE)
  371. #include "hpm_dma_regs.h"
  372. /* Address of DMA instances */
  373. /* HDMA base address */
  374. #define HPM_HDMA_BASE (0xF00C4000UL)
  375. /* HDMA base pointer */
  376. #define HPM_HDMA ((DMA_Type *) HPM_HDMA_BASE)
  377. /* XDMA base address */
  378. #define HPM_XDMA_BASE (0xF3048000UL)
  379. /* XDMA base pointer */
  380. #define HPM_XDMA ((DMA_Type *) HPM_XDMA_BASE)
  381. #include "hpm_rng_regs.h"
  382. /* Address of RNG instances */
  383. /* RNG base address */
  384. #define HPM_RNG_BASE (0xF00C8000UL)
  385. /* RNG base pointer */
  386. #define HPM_RNG ((RNG_Type *) HPM_RNG_BASE)
  387. #include "hpm_keym_regs.h"
  388. /* Address of KEYM instances */
  389. /* KEYM base address */
  390. #define HPM_KEYM_BASE (0xF00CC000UL)
  391. /* KEYM base pointer */
  392. #define HPM_KEYM ((KEYM_Type *) HPM_KEYM_BASE)
  393. #include "hpm_i2s_regs.h"
  394. /* Address of I2S instances */
  395. /* I2S0 base address */
  396. #define HPM_I2S0_BASE (0xF0100000UL)
  397. /* I2S0 base pointer */
  398. #define HPM_I2S0 ((I2S_Type *) HPM_I2S0_BASE)
  399. /* I2S1 base address */
  400. #define HPM_I2S1_BASE (0xF0104000UL)
  401. /* I2S1 base pointer */
  402. #define HPM_I2S1 ((I2S_Type *) HPM_I2S1_BASE)
  403. /* I2S2 base address */
  404. #define HPM_I2S2_BASE (0xF0108000UL)
  405. /* I2S2 base pointer */
  406. #define HPM_I2S2 ((I2S_Type *) HPM_I2S2_BASE)
  407. /* I2S3 base address */
  408. #define HPM_I2S3_BASE (0xF010C000UL)
  409. /* I2S3 base pointer */
  410. #define HPM_I2S3 ((I2S_Type *) HPM_I2S3_BASE)
  411. #include "hpm_dao_regs.h"
  412. /* Address of DAO instances */
  413. /* DAO base address */
  414. #define HPM_DAO_BASE (0xF0110000UL)
  415. /* DAO base pointer */
  416. #define HPM_DAO ((DAO_Type *) HPM_DAO_BASE)
  417. #include "hpm_pdm_regs.h"
  418. /* Address of PDM instances */
  419. /* PDM base address */
  420. #define HPM_PDM_BASE (0xF0114000UL)
  421. /* PDM base pointer */
  422. #define HPM_PDM ((PDM_Type *) HPM_PDM_BASE)
  423. #include "hpm_pwm_regs.h"
  424. /* Address of PWM instances */
  425. /* PWM0 base address */
  426. #define HPM_PWM0_BASE (0xF0200000UL)
  427. /* PWM0 base pointer */
  428. #define HPM_PWM0 ((PWM_Type *) HPM_PWM0_BASE)
  429. /* PWM1 base address */
  430. #define HPM_PWM1_BASE (0xF0210000UL)
  431. /* PWM1 base pointer */
  432. #define HPM_PWM1 ((PWM_Type *) HPM_PWM1_BASE)
  433. /* PWM2 base address */
  434. #define HPM_PWM2_BASE (0xF0220000UL)
  435. /* PWM2 base pointer */
  436. #define HPM_PWM2 ((PWM_Type *) HPM_PWM2_BASE)
  437. /* PWM3 base address */
  438. #define HPM_PWM3_BASE (0xF0230000UL)
  439. /* PWM3 base pointer */
  440. #define HPM_PWM3 ((PWM_Type *) HPM_PWM3_BASE)
  441. #include "hpm_hall_regs.h"
  442. /* Address of HALL instances */
  443. /* HALL0 base address */
  444. #define HPM_HALL0_BASE (0xF0204000UL)
  445. /* HALL0 base pointer */
  446. #define HPM_HALL0 ((HALL_Type *) HPM_HALL0_BASE)
  447. /* HALL1 base address */
  448. #define HPM_HALL1_BASE (0xF0214000UL)
  449. /* HALL1 base pointer */
  450. #define HPM_HALL1 ((HALL_Type *) HPM_HALL1_BASE)
  451. /* HALL2 base address */
  452. #define HPM_HALL2_BASE (0xF0224000UL)
  453. /* HALL2 base pointer */
  454. #define HPM_HALL2 ((HALL_Type *) HPM_HALL2_BASE)
  455. /* HALL3 base address */
  456. #define HPM_HALL3_BASE (0xF0234000UL)
  457. /* HALL3 base pointer */
  458. #define HPM_HALL3 ((HALL_Type *) HPM_HALL3_BASE)
  459. #include "hpm_qei_regs.h"
  460. /* Address of QEI instances */
  461. /* QEI0 base address */
  462. #define HPM_QEI0_BASE (0xF0208000UL)
  463. /* QEI0 base pointer */
  464. #define HPM_QEI0 ((QEI_Type *) HPM_QEI0_BASE)
  465. /* QEI1 base address */
  466. #define HPM_QEI1_BASE (0xF0218000UL)
  467. /* QEI1 base pointer */
  468. #define HPM_QEI1 ((QEI_Type *) HPM_QEI1_BASE)
  469. /* QEI2 base address */
  470. #define HPM_QEI2_BASE (0xF0228000UL)
  471. /* QEI2 base pointer */
  472. #define HPM_QEI2 ((QEI_Type *) HPM_QEI2_BASE)
  473. /* QEI3 base address */
  474. #define HPM_QEI3_BASE (0xF0238000UL)
  475. /* QEI3 base pointer */
  476. #define HPM_QEI3 ((QEI_Type *) HPM_QEI3_BASE)
  477. #include "hpm_trgm_regs.h"
  478. /* Address of TRGM instances */
  479. /* TRGM0 base address */
  480. #define HPM_TRGM0_BASE (0xF020C000UL)
  481. /* TRGM0 base pointer */
  482. #define HPM_TRGM0 ((TRGM_Type *) HPM_TRGM0_BASE)
  483. /* TRGM1 base address */
  484. #define HPM_TRGM1_BASE (0xF021C000UL)
  485. /* TRGM1 base pointer */
  486. #define HPM_TRGM1 ((TRGM_Type *) HPM_TRGM1_BASE)
  487. /* TRGM2 base address */
  488. #define HPM_TRGM2_BASE (0xF022C000UL)
  489. /* TRGM2 base pointer */
  490. #define HPM_TRGM2 ((TRGM_Type *) HPM_TRGM2_BASE)
  491. /* TRGM3 base address */
  492. #define HPM_TRGM3_BASE (0xF023C000UL)
  493. /* TRGM3 base pointer */
  494. #define HPM_TRGM3 ((TRGM_Type *) HPM_TRGM3_BASE)
  495. #include "hpm_synt_regs.h"
  496. /* Address of SYNT instances */
  497. /* SYNT base address */
  498. #define HPM_SYNT_BASE (0xF0240000UL)
  499. /* SYNT base pointer */
  500. #define HPM_SYNT ((SYNT_Type *) HPM_SYNT_BASE)
  501. #include "hpm_lcdc_regs.h"
  502. /* Address of LCDC instances */
  503. /* LCDC base address */
  504. #define HPM_LCDC_BASE (0xF1000000UL)
  505. /* LCDC base pointer */
  506. #define HPM_LCDC ((LCDC_Type *) HPM_LCDC_BASE)
  507. #include "hpm_cam_regs.h"
  508. /* Address of CAM instances */
  509. /* CAM0 base address */
  510. #define HPM_CAM0_BASE (0xF1008000UL)
  511. /* CAM0 base pointer */
  512. #define HPM_CAM0 ((CAM_Type *) HPM_CAM0_BASE)
  513. /* CAM1 base address */
  514. #define HPM_CAM1_BASE (0xF100C000UL)
  515. /* CAM1 base pointer */
  516. #define HPM_CAM1 ((CAM_Type *) HPM_CAM1_BASE)
  517. #include "hpm_pdma_regs.h"
  518. /* Address of PDMA instances */
  519. /* PDMA base address */
  520. #define HPM_PDMA_BASE (0xF1010000UL)
  521. /* PDMA base pointer */
  522. #define HPM_PDMA ((PDMA_Type *) HPM_PDMA_BASE)
  523. #include "hpm_jpeg_regs.h"
  524. /* Address of JPEG instances */
  525. /* JPEG base address */
  526. #define HPM_JPEG_BASE (0xF1014000UL)
  527. /* JPEG base pointer */
  528. #define HPM_JPEG ((JPEG_Type *) HPM_JPEG_BASE)
  529. #include "hpm_enet_regs.h"
  530. /* Address of ENET instances */
  531. /* ENET0 base address */
  532. #define HPM_ENET0_BASE (0xF2000000UL)
  533. /* ENET0 base pointer */
  534. #define HPM_ENET0 ((ENET_Type *) HPM_ENET0_BASE)
  535. /* ENET1 base address */
  536. #define HPM_ENET1_BASE (0xF2004000UL)
  537. /* ENET1 base pointer */
  538. #define HPM_ENET1 ((ENET_Type *) HPM_ENET1_BASE)
  539. #include "hpm_gptmr_regs.h"
  540. /* Address of TMR instances */
  541. /* NTMR0 base address */
  542. #define HPM_NTMR0_BASE (0xF2010000UL)
  543. /* NTMR0 base pointer */
  544. #define HPM_NTMR0 ((GPTMR_Type *) HPM_NTMR0_BASE)
  545. /* NTMR1 base address */
  546. #define HPM_NTMR1_BASE (0xF2014000UL)
  547. /* NTMR1 base pointer */
  548. #define HPM_NTMR1 ((GPTMR_Type *) HPM_NTMR1_BASE)
  549. /* GPTMR0 base address */
  550. #define HPM_GPTMR0_BASE (0xF3000000UL)
  551. /* GPTMR0 base pointer */
  552. #define HPM_GPTMR0 ((GPTMR_Type *) HPM_GPTMR0_BASE)
  553. /* GPTMR1 base address */
  554. #define HPM_GPTMR1_BASE (0xF3004000UL)
  555. /* GPTMR1 base pointer */
  556. #define HPM_GPTMR1 ((GPTMR_Type *) HPM_GPTMR1_BASE)
  557. /* GPTMR2 base address */
  558. #define HPM_GPTMR2_BASE (0xF3008000UL)
  559. /* GPTMR2 base pointer */
  560. #define HPM_GPTMR2 ((GPTMR_Type *) HPM_GPTMR2_BASE)
  561. /* GPTMR3 base address */
  562. #define HPM_GPTMR3_BASE (0xF300C000UL)
  563. /* GPTMR3 base pointer */
  564. #define HPM_GPTMR3 ((GPTMR_Type *) HPM_GPTMR3_BASE)
  565. /* GPTMR4 base address */
  566. #define HPM_GPTMR4_BASE (0xF3010000UL)
  567. /* GPTMR4 base pointer */
  568. #define HPM_GPTMR4 ((GPTMR_Type *) HPM_GPTMR4_BASE)
  569. /* GPTMR5 base address */
  570. #define HPM_GPTMR5_BASE (0xF3014000UL)
  571. /* GPTMR5 base pointer */
  572. #define HPM_GPTMR5 ((GPTMR_Type *) HPM_GPTMR5_BASE)
  573. /* GPTMR6 base address */
  574. #define HPM_GPTMR6_BASE (0xF3018000UL)
  575. /* GPTMR6 base pointer */
  576. #define HPM_GPTMR6 ((GPTMR_Type *) HPM_GPTMR6_BASE)
  577. /* GPTMR7 base address */
  578. #define HPM_GPTMR7_BASE (0xF301C000UL)
  579. /* GPTMR7 base pointer */
  580. #define HPM_GPTMR7 ((GPTMR_Type *) HPM_GPTMR7_BASE)
  581. /* PTMR base address */
  582. #define HPM_PTMR_BASE (0xF40E0000UL)
  583. /* PTMR base pointer */
  584. #define HPM_PTMR ((GPTMR_Type *) HPM_PTMR_BASE)
  585. #include "hpm_usb_regs.h"
  586. /* Address of USB instances */
  587. /* USB0 base address */
  588. #define HPM_USB0_BASE (0xF2020000UL)
  589. /* USB0 base pointer */
  590. #define HPM_USB0 ((USB_Type *) HPM_USB0_BASE)
  591. /* USB1 base address */
  592. #define HPM_USB1_BASE (0xF2024000UL)
  593. /* USB1 base pointer */
  594. #define HPM_USB1 ((USB_Type *) HPM_USB1_BASE)
  595. #include "hpm_sdxc_regs.h"
  596. /* Address of SDXC instances */
  597. /* SDXC0 base address */
  598. #define HPM_SDXC0_BASE (0xF2030000UL)
  599. /* SDXC0 base pointer */
  600. #define HPM_SDXC0 ((SDXC_Type *) HPM_SDXC0_BASE)
  601. /* SDXC1 base address */
  602. #define HPM_SDXC1_BASE (0xF2034000UL)
  603. /* SDXC1 base pointer */
  604. #define HPM_SDXC1 ((SDXC_Type *) HPM_SDXC1_BASE)
  605. #include "hpm_conctl_regs.h"
  606. /* Address of CONCTL instances */
  607. /* CONCTL base address */
  608. #define HPM_CONCTL_BASE (0xF2040000UL)
  609. /* CONCTL base pointer */
  610. #define HPM_CONCTL ((CONCTL_Type *) HPM_CONCTL_BASE)
  611. #include "hpm_i2c_regs.h"
  612. /* Address of I2C instances */
  613. /* I2C0 base address */
  614. #define HPM_I2C0_BASE (0xF3020000UL)
  615. /* I2C0 base pointer */
  616. #define HPM_I2C0 ((I2C_Type *) HPM_I2C0_BASE)
  617. /* I2C1 base address */
  618. #define HPM_I2C1_BASE (0xF3024000UL)
  619. /* I2C1 base pointer */
  620. #define HPM_I2C1 ((I2C_Type *) HPM_I2C1_BASE)
  621. /* I2C2 base address */
  622. #define HPM_I2C2_BASE (0xF3028000UL)
  623. /* I2C2 base pointer */
  624. #define HPM_I2C2 ((I2C_Type *) HPM_I2C2_BASE)
  625. /* I2C3 base address */
  626. #define HPM_I2C3_BASE (0xF302C000UL)
  627. /* I2C3 base pointer */
  628. #define HPM_I2C3 ((I2C_Type *) HPM_I2C3_BASE)
  629. #include "hpm_sdp_regs.h"
  630. /* Address of SDP instances */
  631. /* SDP base address */
  632. #define HPM_SDP_BASE (0xF304C000UL)
  633. /* SDP base pointer */
  634. #define HPM_SDP ((SDP_Type *) HPM_SDP_BASE)
  635. #include "hpm_femc_regs.h"
  636. /* Address of FEMC instances */
  637. /* FEMC base address */
  638. #define HPM_FEMC_BASE (0xF3050000UL)
  639. /* FEMC base pointer */
  640. #define HPM_FEMC ((FEMC_Type *) HPM_FEMC_BASE)
  641. #include "hpm_sysctl_regs.h"
  642. /* Address of SYSCTL instances */
  643. /* SYSCTL base address */
  644. #define HPM_SYSCTL_BASE (0xF4000000UL)
  645. /* SYSCTL base pointer */
  646. #define HPM_SYSCTL ((SYSCTL_Type *) HPM_SYSCTL_BASE)
  647. #include "hpm_ioc_regs.h"
  648. /* Address of IOC instances */
  649. /* IOC base address */
  650. #define HPM_IOC_BASE (0xF4040000UL)
  651. /* IOC base pointer */
  652. #define HPM_IOC ((IOC_Type *) HPM_IOC_BASE)
  653. /* PIOC base address */
  654. #define HPM_PIOC_BASE (0xF40D8000UL)
  655. /* PIOC base pointer */
  656. #define HPM_PIOC ((IOC_Type *) HPM_PIOC_BASE)
  657. /* BIOC base address */
  658. #define HPM_BIOC_BASE (0xF5010000UL)
  659. /* BIOC base pointer */
  660. #define HPM_BIOC ((IOC_Type *) HPM_BIOC_BASE)
  661. #include "hpm_otp_regs.h"
  662. /* Address of OTP instances */
  663. /* OTPSHW base address */
  664. #define HPM_OTPSHW_BASE (0xF4080000UL)
  665. /* OTPSHW base pointer */
  666. #define HPM_OTPSHW ((OTP_Type *) HPM_OTPSHW_BASE)
  667. /* OTP base address */
  668. #define HPM_OTP_BASE (0xF40C8000UL)
  669. /* OTP base pointer */
  670. #define HPM_OTP ((OTP_Type *) HPM_OTP_BASE)
  671. #include "hpm_ppor_regs.h"
  672. /* Address of PPOR instances */
  673. /* PPOR base address */
  674. #define HPM_PPOR_BASE (0xF40C0000UL)
  675. /* PPOR base pointer */
  676. #define HPM_PPOR ((PPOR_Type *) HPM_PPOR_BASE)
  677. #include "hpm_pcfg_regs.h"
  678. /* Address of PCFG instances */
  679. /* PCFG base address */
  680. #define HPM_PCFG_BASE (0xF40C4000UL)
  681. /* PCFG base pointer */
  682. #define HPM_PCFG ((PCFG_Type *) HPM_PCFG_BASE)
  683. #include "hpm_psec_regs.h"
  684. /* Address of PSEC instances */
  685. /* PSEC base address */
  686. #define HPM_PSEC_BASE (0xF40CC000UL)
  687. /* PSEC base pointer */
  688. #define HPM_PSEC ((PSEC_Type *) HPM_PSEC_BASE)
  689. #include "hpm_pmon_regs.h"
  690. /* Address of PMON instances */
  691. /* PMON base address */
  692. #define HPM_PMON_BASE (0xF40D0000UL)
  693. /* PMON base pointer */
  694. #define HPM_PMON ((PMON_Type *) HPM_PMON_BASE)
  695. #include "hpm_pgpr_regs.h"
  696. /* Address of PGPR instances */
  697. /* PGPR base address */
  698. #define HPM_PGPR_BASE (0xF40D4000UL)
  699. /* PGPR base pointer */
  700. #define HPM_PGPR ((PGPR_Type *) HPM_PGPR_BASE)
  701. #include "hpm_vad_regs.h"
  702. /* Address of VAD instances */
  703. /* VAD base address */
  704. #define HPM_VAD_BASE (0xF40EC000UL)
  705. /* VAD base pointer */
  706. #define HPM_VAD ((VAD_Type *) HPM_VAD_BASE)
  707. #include "hpm_pllctl_regs.h"
  708. /* Address of PLLCTL instances */
  709. /* PLLCTL base address */
  710. #define HPM_PLLCTL_BASE (0xF4100000UL)
  711. /* PLLCTL base pointer */
  712. #define HPM_PLLCTL ((PLLCTL_Type *) HPM_PLLCTL_BASE)
  713. #include "hpm_bpor_regs.h"
  714. /* Address of BPOR instances */
  715. /* BPOR base address */
  716. #define HPM_BPOR_BASE (0xF5004000UL)
  717. /* BPOR base pointer */
  718. #define HPM_BPOR ((BPOR_Type *) HPM_BPOR_BASE)
  719. #include "hpm_bcfg_regs.h"
  720. /* Address of BCFG instances */
  721. /* BCFG base address */
  722. #define HPM_BCFG_BASE (0xF5008000UL)
  723. /* BCFG base pointer */
  724. #define HPM_BCFG ((BCFG_Type *) HPM_BCFG_BASE)
  725. #include "hpm_butn_regs.h"
  726. /* Address of BUTN instances */
  727. /* BUTN base address */
  728. #define HPM_BUTN_BASE (0xF500C000UL)
  729. /* BUTN base pointer */
  730. #define HPM_BUTN ((BUTN_Type *) HPM_BUTN_BASE)
  731. #include "hpm_bgpr_regs.h"
  732. /* Address of BGPR instances */
  733. /* BGPR base address */
  734. #define HPM_BGPR_BASE (0xF5018000UL)
  735. /* BGPR base pointer */
  736. #define HPM_BGPR ((BGPR_Type *) HPM_BGPR_BASE)
  737. #include "hpm_rtc_regs.h"
  738. /* Address of RTC instances */
  739. /* RTCSHW base address */
  740. #define HPM_RTCSHW_BASE (0xF501C000UL)
  741. /* RTCSHW base pointer */
  742. #define HPM_RTCSHW ((RTC_Type *) HPM_RTCSHW_BASE)
  743. /* RTC base address */
  744. #define HPM_RTC_BASE (0xF5044000UL)
  745. /* RTC base pointer */
  746. #define HPM_RTC ((RTC_Type *) HPM_RTC_BASE)
  747. #include "hpm_bsec_regs.h"
  748. /* Address of BSEC instances */
  749. /* BSEC base address */
  750. #define HPM_BSEC_BASE (0xF5040000UL)
  751. /* BSEC base pointer */
  752. #define HPM_BSEC ((BSEC_Type *) HPM_BSEC_BASE)
  753. #include "hpm_bkey_regs.h"
  754. /* Address of BKEY instances */
  755. /* BKEY base address */
  756. #define HPM_BKEY_BASE (0xF5048000UL)
  757. /* BKEY base pointer */
  758. #define HPM_BKEY ((BKEY_Type *) HPM_BKEY_BASE)
  759. #include "hpm_bmon_regs.h"
  760. /* Address of BMON instances */
  761. /* BMON base address */
  762. #define HPM_BMON_BASE (0xF504C000UL)
  763. /* BMON base pointer */
  764. #define HPM_BMON ((BMON_Type *) HPM_BMON_BASE)
  765. #include "hpm_tamp_regs.h"
  766. /* Address of TAMP instances */
  767. /* TAMP base address */
  768. #define HPM_TAMP_BASE (0xF5050000UL)
  769. /* TAMP base pointer */
  770. #define HPM_TAMP ((TAMP_Type *) HPM_TAMP_BASE)
  771. #include "hpm_mono_regs.h"
  772. /* Address of MONO instances */
  773. /* MONO base address */
  774. #define HPM_MONO_BASE (0xF5054000UL)
  775. /* MONO base pointer */
  776. #define HPM_MONO ((MONO_Type *) HPM_MONO_BASE)
  777. #include "riscv/riscv_core.h"
  778. #include "hpm_csr_regs.h"
  779. #include "hpm_interrupt.h"
  780. #include "hpm_misc.h"
  781. #include "hpm_dmamux_src.h"
  782. #include "hpm_trgmmux_src.h"
  783. #include "hpm_iomux.h"
  784. #include "hpm_pmic_iomux.h"
  785. #include "hpm_batt_iomux.h"
  786. #endif /* HPM_SOC_H */